{"workflow":{"id":13792,"name":"Decide multi‑agent vs simple workflows using Azure OpenAI GPT‑4o‑mini","views":88,"recentViews":1,"totalViews":88,"createdAt":"2026-03-02T06:38:23.037Z","description":"## 📘 Description\nThis workflow acts as an AI Multi-Agent Architecture Advisor for n8n. It receives a problem statement via webhook, uses Azure OpenAI (gpt-4o-mini) to decide whether the problem needs a multi-agent design or a simple workflow, then returns a styled HTML report showing the decision, recommended agents (if any), and the suggested step flow.\n\n## ⚙️ Step-by-Step Flow\n- Receive Problem Description via POST (Webhook)\n-  Accepts a POST payload containing a description field.\n- Extract Request Body (Code)\n-  Strips the wrapper and outputs only the body JSON to simplify downstream prompts.\n- Multi-Agent Architecture Decision Agent (AI Agent)\n-  Analyzes the problem description and outputs one of:\n- Decision: Multi-Agent Required + agent definitions + workflow steps\n- Decision: Not Required + minimal simplified workflow nodes\n- Parse Decision, Agents & Steps (Code)\n-  Extracts three structured fields from the \n\nAI output:\n\ndecision\n- agents[] (name, purpose, node, reason)\n- workflow_flow[] (ordered steps)\n- Build HTML Architecture Report (Code)\n-  Renders a clean card-based HTML dashboard:\n- Decision badge (multi vs simple)\n- Agent cards (if present)\n- Workflow flow chips (steps)\n- Return HTML Report to Caller (Respond to Webhook)\n-  Returns the HTML report directly as the webhook response.\n- \n\n## 🧩 Prerequisites\n-  • Azure OpenAI credential with an active gpt-4o-mini deployment\n-  • n8n webhook endpoint exposed to the caller (or via tunnel)\n- \n\n## 💡 Key Benefits\n✔ Fast “multi-agent vs simple” decisioning\n✔ Outputs an actionable architecture, not generic advice\n✔ HTML report is ready to embed in internal tools (Base44/UI)\n✔ Structured parsing makes it easy to store or extend later\n\n## 👥 Perfect For\n-  Automation agencies doing solution design calls\n-  Teams standardizing how they choose agent-based workflows\n-  Internal tooling that needs instant architecture recommendations","workflow":{"id":"S2fxW8jbFIetu8Vi","meta":{"instanceId":"8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177","templateCredsSetupCompleted":true},"name":"AI-Powered n8n Workflow Architecture Decision Engine","tags":[],"nodes":[{"id":"d5997a32-7d1a-404a-a6c2-83fc4ff3bdaa","name":"Receive Problem Description via POST","type":"n8n-nodes-base.webhook","position":[-384,544],"webhookId":"af08511e-f5d9-44e3-8a2f-2482b5c3e4a0","parameters":{"path":"af08511e-f5d9-44e3-8a2f-2482b5c3e4a0","options":{},"httpMethod":"POST","responseMode":"responseNode"},"typeVersion":2.1},{"id":"b709e130-d9f0-4542-974f-f1c65b43e116","name":"Extract Request Body","type":"n8n-nodes-base.code","position":[-176,544],"parameters":{"jsCode":"// Get the first incoming item\nconst inputData = $input.first().json;\n\n// Return only the body\nreturn [\n  {\n    json: inputData.body\n  }\n];"},"typeVersion":2},{"id":"8217efaf-8a7f-4e10-8f31-ca8415405eb6","name":"Multi-Agent Architecture Decision Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[32,544],"parameters":{"text":"=Analyze the following problem description and decide whether it requires a multi-agent workflow in n8n.\n\nIf it requires multi-agent architecture, design the agents with node types and reasons.\n\nIf it does not require multi-agent architecture, clearly state that and provide a simpler workflow instead.\n\nProblem Description:\n{{ $json.description }}","options":{"systemMessage":"=You are an n8n Multi-Agent Workflow Architect.\n\nYour job is to analyze a given problem description and decide whether it requires a multi-agent workflow or not.\n\nDecision Rules:\n1. If the problem involves multiple independent reasoning steps (classification, extraction, validation, risk scoring, decision making, routing, follow-ups), then design a multi-agent workflow.\n2. If the problem is simple (single-step logic, direct transformation, or basic automation), DO NOT design a multi-agent workflow.\n\nIf Multi-Agent is Required:\n- Clearly define:\n  - Agent Name\n  - Purpose\n  - n8n Node Type\n  - Why it is required\n- Keep explanations short and precise.\n- Provide logical flow order.\n\nIf Multi-Agent is NOT Required:\n- Clearly state: \"This does not require a multi-agent workflow.\"\n- Provide a simpler workflow logic.\n- List minimal required nodes.\n- Keep it concise.\n\nOutput Format:\n\nDecision: (Multi-Agent Required / Not Required)\n\nIf Required:\n1. Agent Name\n   - Purpose:\n   - Node:\n   - Reason:\n\nWorkflow Flow:\nStep 1 →\nStep 2 →\nStep 3 →\n\nIf Not Required:\nSimplified Workflow:\n- Node 1:\n- Node 2:\n- Node 3:\n\nBe precise. No long explanations."},"promptType":"define"},"typeVersion":3},{"id":"9b3114b1-6179-45de-9f0c-ac9ced81ed5c","name":"Azure OpenAI GPT-4o-mini","type":"@n8n/n8n-nodes-langchain.lmChatAzureOpenAi","position":[32,976],"parameters":{"model":"gpt-4o-mini","options":{}},"credentials":{"azureOpenAiApi":{"id":"C3WzT18XqF8OdVM6","name":"Azure Open AI account"}},"typeVersion":1},{"id":"f368874a-c30a-4a57-85ae-b66ccf877a0a","name":"Parse Decision, Agents & Steps","type":"n8n-nodes-base.code","position":[464,544],"parameters":{"jsCode":"const items = $input.all();\n\nreturn items.map(item => {\n\n  const rawText = item.json.output || \"\";\n\n  // Extract Decision\n  const decisionMatch = rawText.match(/Decision:\\s*(.*)/);\n  const decision = decisionMatch ? decisionMatch[1].trim() : null;\n\n  // Extract Agents\n  const agentRegex = /Agent Name:\\s*(.*?)\\n\\s*- Purpose:\\s*(.*?)\\n\\s*- Node:\\s*(.*?)\\n\\s*- Reason:\\s*(.*?)(?=\\n\\n|\\n\\d+\\. Agent Name:|$)/gs;\n\n  let agents = [];\n  let match;\n\n  while ((match = agentRegex.exec(rawText)) !== null) {\n    agents.push({\n      name: match[1]?.trim() || \"\",\n      purpose: match[2]?.trim() || \"\",\n      node: match[3]?.trim() || \"\",\n      reason: match[4]?.trim() || \"\",\n    });\n  }\n\n  // Extract Workflow Steps\n  const stepsRegex = /Step \\d+:\\s*(.*?)\\s*→/g;\n  let steps = [];\n  let stepMatch;\n\n  while ((stepMatch = stepsRegex.exec(rawText)) !== null) {\n    steps.push(stepMatch[1]?.trim() || \"\");\n  }\n\n  return {\n    json: {\n      decision,\n      agents,\n      workflow_flow: steps\n    }\n  };\n});"},"typeVersion":2},{"id":"7344bc04-e81b-47c1-8809-7563dad58a7b","name":"Build HTML Architecture Report","type":"n8n-nodes-base.code","position":[672,544],"parameters":{"jsCode":"const items = $input.all();\n\nreturn items.map(item => {\n\n  const data = item.json;\n\n  const decisionClass =\n    data.decision === \"Multi-Agent Required\"\n      ? \"multi\"\n      : \"simple\";\n\n  const agentsHTML = Array.isArray(data.agents)\n    ? data.agents.map(agent => `\n        <div class=\"agent-card\">\n          <div class=\"agent-name\">${agent.name || \"\"}</div>\n\n          <div class=\"label\">Purpose</div>\n          <div>${agent.purpose || \"\"}</div>\n\n          <div class=\"label\">Node</div>\n          <div>${agent.node || \"\"}</div>\n\n          <div class=\"label\">Reason</div>\n          <div>${agent.reason || \"\"}</div>\n        </div>\n      `).join(\"\")\n    : \"\";\n\n  const stepsHTML = Array.isArray(data.workflow_flow)\n    ? data.workflow_flow.map(step =>\n        `<div class=\"step\">${step}</div>`\n      ).join(\"\")\n    : \"\";\n\n  const html = `\n  <html>\n  <head>\n    <style>\n      body {\n        font-family: 'Segoe UI', sans-serif;\n        background: #f4f7fb;\n        padding: 40px;\n      }\n\n      .card {\n        background: white;\n        border-radius: 18px;\n        padding: 28px;\n        margin-bottom: 30px;\n        box-shadow: 0 15px 40px rgba(0,0,0,0.06);\n      }\n\n      .decision {\n        font-size: 22px;\n        font-weight: 600;\n        padding: 14px 22px;\n        border-radius: 12px;\n        display: inline-block;\n      }\n\n      .multi {\n        background: linear-gradient(135deg, #e8f5e9, #c8e6c9);\n        color: #1b5e20;\n      }\n\n      .simple {\n        background: linear-gradient(135deg, #fff3e0, #ffe0b2);\n        color: #e65100;\n      }\n\n      .title {\n        font-size: 24px;\n        font-weight: 600;\n        margin-bottom: 25px;\n      }\n\n      .agent-grid {\n        display: grid;\n        grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));\n        gap: 22px;\n      }\n\n      .agent-card {\n        background: #f9fbff;\n        border-radius: 16px;\n        padding: 22px;\n        border: 1px solid #e6ecf5;\n        transition: 0.3s ease;\n      }\n\n      .agent-card:hover {\n        transform: translateY(-6px);\n        box-shadow: 0 10px 25px rgba(0,0,0,0.08);\n      }\n\n      .agent-name {\n        font-size: 18px;\n        font-weight: 600;\n        margin-bottom: 12px;\n        color: #2c3e50;\n      }\n\n      .label {\n        font-size: 13px;\n        font-weight: 600;\n        margin-top: 12px;\n        color: #7b8ca8;\n      }\n\n      .steps {\n        display: flex;\n        flex-wrap: wrap;\n        gap: 14px;\n      }\n\n      .step {\n        background: #eef3ff;\n        padding: 12px 18px;\n        border-radius: 30px;\n        font-size: 14px;\n        color: #3f51b5;\n      }\n    </style>\n  </head>\n\n  <body>\n\n    <div class=\"card\">\n      <div class=\"decision ${decisionClass}\">\n        ${data.decision || \"No Decision\"}\n      </div>\n    </div>\n\n    ${agentsHTML ? `\n    <div class=\"card\">\n      <div class=\"title\">Agents</div>\n      <div class=\"agent-grid\">\n        ${agentsHTML}\n      </div>\n    </div>\n    ` : \"\"}\n\n    ${stepsHTML ? `\n    <div class=\"card\">\n      <div class=\"title\">Workflow Flow</div>\n      <div class=\"steps\">\n        ${stepsHTML}\n      </div>\n    </div>\n    ` : \"\"}\n\n  </body>\n  </html>\n  `;\n\n  return {\n    json: {\n      html\n    }\n  };\n});"},"typeVersion":2},{"id":"5f52eae8-6d9a-4be0-b2a2-6aeac4af1ba0","name":"Return HTML Report to Caller","type":"n8n-nodes-base.respondToWebhook","position":[880,544],"parameters":{"options":{},"respondWith":"text","responseBody":"={{$node['Build HTML Architecture Report'].json['html']}}"},"typeVersion":1.5},{"id":"26c1a118-683d-4cbd-a8b1-308b8b28312d","name":"Sticky Note - Overview","type":"n8n-nodes-base.stickyNote","position":[-1040,384],"parameters":{"width":540,"height":384,"content":"## 🟡 Workflow Overview\n\n### How it works\nThis workflow serves as an **AI-powered n8n Multi-Agent Architecture Advisor**. It accepts a plain-text problem description via a POST webhook and uses an Azure OpenAI-backed AI Agent to decide whether the problem warrants a multi-agent workflow or a simpler single-flow automation.\n\nThe AI Agent applies structured decision rules: if the problem involves multiple independent reasoning steps — such as classification, validation, routing, or risk scoring — it designs a full multi-agent architecture with named agents, n8n node types, and logical flow. If the problem is simple, it recommends a minimal node list instead.\n\nThe raw AI output is then parsed to extract the decision, agent definitions, and workflow steps. Finally, a styled HTML report is generated and returned directly in the webhook response as a visual card-based dashboard.\n\n### Setup steps\n1. **Activate the workflow** in n8n to register the Webhook URL.\n2. **Configure Azure OpenAI credentials** — ensure the `Azure Open AI account` credential is valid and the `gpt-4o-mini` deployment is active in your Azure resource.\n3. **Send a POST request** to the webhook URL with body: `{ \"description\": \"Your problem description here\" }`\n4. The response will be a styled HTML page with the architecture decision and agent breakdown.\n\n### Customization\n- Replace `gpt-4o-mini` with `gpt-4o` for higher reasoning accuracy on complex problems.\n- Modify the AI Agent system prompt to add new decision rules or output formats.\n- Update card styles in the **Build HTML Architecture Report** node to match your brand."},"typeVersion":1},{"id":"8fef77e7-2fd2-4ae8-9455-083f6bfe0588","name":"Sticky Note - Input Section","type":"n8n-nodes-base.stickyNote","position":[-448,384],"parameters":{"color":7,"width":388,"height":326,"content":"## 📥 Input & Extraction\nReceives a POST request with a `description` field and extracts the raw request body for downstream processing."},"typeVersion":1},{"id":"25685a95-fea8-49f1-8ccf-ff9d4130e7b1","name":"Sticky Note - AI Section","type":"n8n-nodes-base.stickyNote","position":[-32,384],"parameters":{"color":7,"width":432,"height":374,"content":"## 🤖 AI Architecture Decision\nThe AI Agent evaluates the problem description and decides if a multi-agent workflow is needed. It returns structured agent definitions, node types, and a logical workflow flow."},"typeVersion":1},{"id":"6e185fad-3128-41e4-9342-ba1a9dde7a87","name":"Sticky Note - Output Section","type":"n8n-nodes-base.stickyNote","position":[448,384],"parameters":{"color":7,"width":592,"height":374,"content":"## 📊 Parse, Build & Respond\nParses the AI output into structured decision, agents, and steps. Renders a styled HTML dashboard and returns it as the final webhook response."},"typeVersion":1},{"id":"6e67700a-9b33-4794-891a-1df42143db3b","name":"Sticky Note - Azure Warning","type":"n8n-nodes-base.stickyNote","position":[-192,816],"parameters":{"color":7,"width":360,"height":300,"content":"⚠️ **Azure OpenAI Credentials Required**\nThis node requires a valid `azureOpenAiApi` credential with an active `gpt-4o-mini` deployment. Missing or misconfigured credentials will cause all AI analysis to fail."},"typeVersion":1}],"active":false,"pinData":{},"settings":{"executionOrder":"v1"},"versionId":"8f430c84-ba4f-4cc6-a871-ded693d19507","connections":{"Extract Request Body":{"main":[[{"node":"Multi-Agent Architecture Decision Agent","type":"main","index":0}]]},"Azure OpenAI GPT-4o-mini":{"ai_languageModel":[[{"node":"Multi-Agent Architecture Decision Agent","type":"ai_languageModel","index":0}]]},"Build HTML Architecture Report":{"main":[[{"node":"Return HTML Report to Caller","type":"main","index":0}]]},"Parse Decision, Agents & Steps":{"main":[[{"node":"Build HTML Architecture Report","type":"main","index":0}]]},"Receive Problem Description via POST":{"main":[[{"node":"Extract Request Body","type":"main","index":0}]]},"Multi-Agent Architecture Decision Agent":{"main":[[{"node":"Parse Decision, Agents & Steps","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":12,"nodeTypes":{"n8n-nodes-base.code":{"count":3},"n8n-nodes-base.webhook":{"count":1},"n8n-nodes-base.stickyNote":{"count":5},"@n8n/n8n-nodes-langchain.agent":{"count":1},"n8n-nodes-base.respondToWebhook":{"count":1},"@n8n/n8n-nodes-langchain.lmChatAzureOpenAi":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Rahul Joshi","username":"rahul08","bio":"Rahul Joshi is a seasoned technology leader specializing in the n8n automation tool and AI-driven workflow automation. With deep expertise in building open-source workflow automation and self-hosted automation platforms, he helps organizations eliminate manual processes through intelligent n8n ai agent automation solutions.\n\n","verified":true,"links":["https://www.linkedin.com/in/callrahul/"],"avatar":"https://gravatar.com/avatar/b6cf57822463143589b36ada06fbf6cb1509223a740fae3160b28f1ce41ccc12?r=pg&d=retro&size=200"},"nodes":[{"id":47,"icon":"file:webhook.svg","name":"n8n-nodes-base.webhook","codex":{"data":{"alias":["HTTP","API","Build","WH"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"url":"https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/","icon":"💻","label":"How a digital strategist uses n8n for online marketing"},{"url":"https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/","icon":"📹","label":"The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"},{"url":"https://n8n.io/blog/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/","icon":"👏","label":"How to automatically give kudos to contributors with GitHub, Slack, and n8n"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/creating-custom-incident-response-workflows-with-n8n/","label":"How to automate every step of an incident response workflow"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"trigger\"]","defaults":{"name":"Webhook"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTM1IDM3Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDQiLz48cGF0aCBmaWxsPSIjMzc0NzRmIiBkPSJNMzUgNDNjLTMgMC01LjktMS40LTcuOC0zLjdsMy4xLTIuNWMxLjEgMS40IDIuOSAyLjMgNC43IDIuMyAzLjMgMCA2LTIuNyA2LTZzLTIuNy02LTYtNmMtMSAwLTIgLjMtMi45LjdsLTEuNyAxTDIzLjMgMTZsMy41LTEuOSA1LjMgOS40YzEtLjMgMi0uNSAzLS41IDUuNSAwIDEwIDQuNSAxMCAxMFM0MC41IDQzIDM1IDQzIi8+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTE0IDQzQzguNSA0MyA0IDM4LjUgNCAzM2MwLTQuNiAzLjEtOC41IDcuNS05LjdsMSAzLjlDOS45IDI3LjkgOCAzMC4zIDggMzNjMCAzLjMgMi43IDYgNiA2czYtMi43IDYtNnYtMmgxNXY0SDIzLjhjLS45IDQuNi01IDgtOS44IDgiLz48cGF0aCBmaWxsPSIjZTkxZTYzIiBkPSJNMTQgMzdjLTIuMiAwLTQtMS44LTQtNHMxLjgtNCA0LTQgNCAxLjggNCA0LTEuOCA0LTQgNCIvPjxwYXRoIGZpbGw9IiMzNzQ3NGYiIGQ9Ik0yNSAxOWMtMi4yIDAtNC0xLjgtNC00czEuOC00IDQtNCA0IDEuOCA0IDQtMS44IDQtNCA0Ii8+PHBhdGggZmlsbD0iI2U5MWU2MyIgZD0ibTE1LjcgMzQtMy40LTIgNS45LTkuN2MtMi0xLjktMy4yLTQuNS0zLjItNy4zIDAtNS41IDQuNS0xMCAxMC0xMHMxMCA0LjUgMTAgMTBjMCAuOS0uMSAxLjctLjMgMi41bC0zLjktMWMuMS0uNS4yLTEgLjItMS41IDAtMy4zLTIuNy02LTYtNnMtNiAyLjctNiA2YzAgMi4xIDEuMSA0IDIuOSA1LjFsMS43IDF6Ii8+PC9zdmc+"},"displayName":"Webhook","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":535,"icon":"file:webhook.svg","name":"n8n-nodes-base.respondToWebhook","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.respondtowebhook/"}]},"categories":["Core Nodes","Utility"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"transform\"]","defaults":{"name":"Respond to Webhook"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTM1IDM3Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDQiLz48cGF0aCBmaWxsPSIjMzc0NzRmIiBkPSJNMzUgNDNjLTMgMC01LjktMS40LTcuOC0zLjdsMy4xLTIuNWMxLjEgMS40IDIuOSAyLjMgNC43IDIuMyAzLjMgMCA2LTIuNyA2LTZzLTIuNy02LTYtNmMtMSAwLTIgLjMtMi45LjdsLTEuNyAxTDIzLjMgMTZsMy41LTEuOSA1LjMgOS40YzEtLjMgMi0uNSAzLS41IDUuNSAwIDEwIDQuNSAxMCAxMFM0MC41IDQzIDM1IDQzIi8+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTE0IDQzQzguNSA0MyA0IDM4LjUgNCAzM2MwLTQuNiAzLjEtOC41IDcuNS05LjdsMSAzLjlDOS45IDI3LjkgOCAzMC4zIDggMzNjMCAzLjMgMi43IDYgNiA2czYtMi43IDYtNnYtMmgxNXY0SDIzLjhjLS45IDQuNi01IDgtOS44IDgiLz48cGF0aCBmaWxsPSIjZTkxZTYzIiBkPSJNMTQgMzdjLTIuMiAwLTQtMS44LTQtNHMxLjgtNCA0LTQgNCAxLjggNCA0LTEuOCA0LTQgNCIvPjxwYXRoIGZpbGw9IiMzNzQ3NGYiIGQ9Ik0yNSAxOWMtMi4yIDAtNC0xLjgtNC00czEuOC00IDQtNCA0IDEuOCA0IDQtMS44IDQtNCA0Ii8+PHBhdGggZmlsbD0iI2U5MWU2MyIgZD0ibTE1LjcgMzQtMy40LTIgNS45LTkuN2MtMi0xLjktMy4yLTQuNS0zLjItNy4zIDAtNS41IDQuNS0xMCAxMC0xMHMxMCA0LjUgMTAgMTBjMCAuOS0uMSAxLjctLjMgMi41bC0zLjktMWMuMS0uNS4yLTEgLjItMS41IDAtMy4zLTIuNy02LTYtNnMtNiAyLjctNiA2YzAgMi4xIDEuMSA0IDIuOSA1LjFsMS43IDF6Ii8+PC9zdmc+"},"displayName":"Respond to Webhook","typeVersion":2,"nodeCategories":[{"id":7,"name":"Utility"},{"id":9,"name":"Core Nodes"}]},{"id":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":834,"icon":"file:code.svg","name":"n8n-nodes-base.code","codex":{"data":{"alias":["cpde","Javascript","JS","Python","Script","Custom Code","Function"],"details":"The Code node allows you to execute JavaScript in your workflow.","resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Code"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Code","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":1119,"icon":"fa:robot","name":"@n8n/n8n-nodes-langchain.agent","codex":{"data":{"alias":["LangChain","Chat","Conversational","Plan and Execute","ReAct","Tools"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Agents","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"AI Agent","color":"#404040"},"iconData":{"icon":"robot","type":"icon"},"displayName":"AI Agent","typeVersion":3,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1253,"icon":"file:azure.svg","name":"@n8n/n8n-nodes-langchain.lmChatAzureOpenAi","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatazureopenai/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]}}},"group":"[\"transform\"]","defaults":{"name":"Azure OpenAI Chat Model"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTYiIGhlaWdodD0iMjQyIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJhIiB4MT0iNTguOTcyJSIgeDI9IjM3LjE5MSUiIHkxPSI3LjQxMSUiIHkyPSIxMDMuNzYyJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzExNEE4QiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzA2NjlCQyIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJiIiB4MT0iNTkuNzE5JSIgeDI9IjUyLjY5MSUiIHkxPSI1Mi4zMTMlIiB5Mj0iNTQuODY0JSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1vcGFjaXR5PSIuMyIvPjxzdG9wIG9mZnNldD0iNy4xJSIgc3RvcC1vcGFjaXR5PSIuMiIvPjxzdG9wIG9mZnNldD0iMzIuMSUiIHN0b3Atb3BhY2l0eT0iLjEiLz48c3RvcCBvZmZzZXQ9IjYyLjMlIiBzdG9wLW9wYWNpdHk9Ii4wNSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1vcGFjaXR5PSIwIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9ImMiIHgxPSIzNy4yNzklIiB4Mj0iNjIuNDczJSIgeTE9IjQuNiUiIHkyPSI5OS45NzklIj48c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjM0NDQkY0Ii8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjMjg5MkRGIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHBhdGggZmlsbD0idXJsKCNhKSIgZD0iTTg1LjM0My4wMDNoNzUuNzUzTDgyLjQ1NyAyMzNhMTIuMDggMTIuMDggMCAwIDEtMTEuNDQyIDguMjE2SDEyLjA2QTEyLjA2IDEyLjA2IDAgMCAxIC42MzMgMjI1LjMwM0w3My44OTggOC4yMTlBMTIuMDggMTIuMDggMCAwIDEgODUuMzQzIDB6Ii8+PHBhdGggZmlsbD0iIzAwNzhENCIgZD0iTTE5NS40MjMgMTU2LjI4Mkg3NS4yOTdhNS41NiA1LjU2IDAgMCAwLTMuNzk2IDkuNjI3bDc3LjE5IDcyLjA0N2ExMi4xNCAxMi4xNCAwIDAgMCA4LjI4IDMuMjZoNjguMDJ6Ii8+PHBhdGggZmlsbD0idXJsKCNiKSIgZD0iTTg1LjM0My4wMDNhMTEuOTggMTEuOTggMCAwIDAtMTEuNDcxIDguMzc2TC43MjMgMjI1LjEwNWExMi4wNDUgMTIuMDQ1IDAgMCAwIDExLjM3IDE2LjExMmg2MC40NzVhMTIuOTMgMTIuOTMgMCAwIDAgOS45MjEtOC40MzdsMTQuNTg4LTQyLjk5MSA1Mi4xMDUgNDguNmExMi4zMyAxMi4zMyAwIDAgMCA3Ljc1NyAyLjgyOGg2Ny43NjZsLTI5LjcyMS04NC45MzUtODYuNjQzLjAyTDE2MS4zNy4wMDN6Ii8+PHBhdGggZmlsbD0idXJsKCNjKSIgZD0iTTE4Mi4wOTggOC4yMDdBMTIuMDYgMTIuMDYgMCAwIDAgMTcwLjY3LjAwM0g4Ni4yNDVjNS4xNzUgMCA5Ljc3MyAzLjMwMSAxMS40MjggOC4yMDRMMTcwLjk0IDIyNS4zYTEyLjA2MiAxMi4wNjIgMCAwIDEtMTEuNDI4IDE1LjkyaDg0LjQyOWExMi4wNjIgMTIuMDYyIDAgMCAwIDExLjQyNS0xNS45MnoiLz48L3N2Zz4="},"displayName":"Azure OpenAI Chat Model","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]}],"categories":[{"id":5,"name":"Engineering"},{"id":47,"name":"AI Chatbot"}],"image":[]}}