{"workflow":{"id":13852,"name":"Production AI Playbook: Deterministic Steps & AI Steps (3 of 5)","views":4,"recentViews":0,"totalViews":4,"createdAt":"2026-03-03T22:47:41.088Z","description":"Combine AI classification with confidence-based routing and category-based fan-out. This template classifies incoming support tickets, routes them by confidence level, and shows an example of how to fan high-confidence items out to the right team.\n\n**What you'll do**\n- Send a support ticket and watch the AI classify it by category and urgency.\n- See how a Confidence Threshold switch routes items to high, medium, or low confidence paths.\n- Watch high-confidence tickets fan out to Billing, Technical, Sales, or General teams.\n\n**What you'll learn**\n- How to combine AI classification with Switch nodes for multi-path routing\n- How to implement confidence thresholds that balance automation with human review\n\n**Why it matters**\nNot every AI classification deserves the same level of trust. High-confidence results can be auto-routed. Medium ones get flagged for review. Low ones go straight to a human. This lets you phase in automation gradually while keeping quality high.\n\nThis template is a learning companion to the Production AI Playbook, a series that explores strategies, shares best practices, and provides practical examples for building reliable AI systems in n8n.  \n\n[https://go.n8n.io/PAP-D&A-Blog](https://go.n8n.io/PAP-D&A-Blog)","workflow":{"meta":{"instanceId":"da13b80f35ed9d16adbf337111fadd798f3c80e989940f27089cab3947e57699","templateCredsSetupCompleted":true},"nodes":[{"id":"e50e2e16-32d9-4ce4-baea-ba25970bf3db","name":"Webhook - Incoming Ticket","type":"n8n-nodes-base.webhook","position":[-1440,576],"webhookId":"029c0932-7bdb-4bde-9955-3608f30e4e3a","parameters":{"path":"route-ticket","options":{},"httpMethod":"POST","responseMode":"responseNode"},"typeVersion":2},{"id":"172223ae-9832-47b1-9731-b0ca55123e32","name":"Normalize Ticket","type":"n8n-nodes-base.code","position":[-1216,576],"parameters":{"jsCode":"const raw = $input.first().json.body;\nreturn {\n  json: {\n    ticketId: raw.ticketId || 'TKT-' + Date.now(),\n    subject: (raw.subject || '').trim(),\n    body: (raw.body || raw.message || '').trim().substring(0, 2000),\n    email: (raw.email || '').toLowerCase().trim(),\n    timestamp: new Date().toISOString()\n  }\n};"},"typeVersion":2},{"id":"8a1ff0c3-f97c-442e-a762-7aa4177ed961","name":"AI - Classify","type":"@n8n/n8n-nodes-langchain.agent","position":[-992,576],"parameters":{"text":"=Classify this support ticket.\n\nSubject: {{ $json.subject }}\nBody: {{ $json.body }}\n\nReturn ONLY valid JSON:\n{\"category\": \"billing|technical|sales|general\", \"urgency\": \"low|normal|urgent\", \"confidence\": 0.0 to 1.0}","options":{},"promptType":"define"},"typeVersion":1.7},{"id":"262ba98c-e0cc-4c55-9abb-f92522260b5b","name":"Parse + Validate","type":"n8n-nodes-base.code","position":[-640,576],"parameters":{"jsCode":"const raw = $input.first().json;\nlet parsed;\ntry { const text = typeof raw.output === 'string' ? raw.output : JSON.stringify(raw.output); const jsonMatch = text.match(/\\{[\\s\\S]*\\}/); parsed = JSON.parse(jsonMatch ? jsonMatch[0] : text); } catch(e) { parsed = { category: 'general', urgency: 'normal', confidence: 0 }; }\nconst validCats = ['billing','technical','sales','general'];\nif (!validCats.includes(parsed.category)) parsed.category = 'general';\nif (typeof parsed.confidence !== 'number') parsed.confidence = 0;\nreturn { json: { ...parsed, ticketId: $('Normalize Ticket').first().json.ticketId, email: $('Normalize Ticket').first().json.email } };"},"typeVersion":2},{"id":"0a29b0e6-9759-43d4-bb97-822621b0ccd2","name":"Confidence Threshold","type":"n8n-nodes-base.switch","position":[-416,560],"parameters":{"rules":{"values":[{"outputKey":"High Confidence","conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"c1","operator":{"type":"number","operation":"gte"},"leftValue":"={{ $json.confidence }}","rightValue":0.85}]},"renameOutput":true},{"outputKey":"Medium Confidence","conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"c2","operator":{"type":"number","operation":"gte"},"leftValue":"={{ $json.confidence }}","rightValue":0.6}]},"renameOutput":true},{"outputKey":"Low Confidence","conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"c3","operator":{"type":"number","operation":"lt"},"leftValue":"={{ $json.confidence }}","rightValue":0.6}]},"renameOutput":true}]},"options":{}},"typeVersion":3.2},{"id":"ffb130a2-0ba6-43f2-be3c-7b3ee667a719","name":"Route by Category","type":"n8n-nodes-base.switch","position":[-192,176],"parameters":{"rules":{"values":[{"outputKey":"Billing","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"c4","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.category }}","rightValue":"billing"}]},"renameOutput":true},{"outputKey":"Technical","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"c5","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.category }}","rightValue":"technical"}]},"renameOutput":true},{"outputKey":"Sales","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"c6","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.category }}","rightValue":"sales"}]},"renameOutput":true}]},"options":{}},"typeVersion":3.2},{"id":"62b71a99-910d-4d1e-a8b6-a3298221688d","name":"Flag for Review","type":"n8n-nodes-base.code","position":[32,576],"parameters":{"jsCode":"return { json: { ...$input.first().json, action: 'flagged_for_review' } };"},"typeVersion":2},{"id":"3671dfc2-9862-4d96-9683-c97a9e32d88e","name":"Send to Human Queue","type":"n8n-nodes-base.code","position":[32,768],"parameters":{"jsCode":"return { json: { ...$input.first().json, action: 'sent_to_human' } };"},"typeVersion":2},{"id":"03766d0e-16c7-42a1-ab66-a0b6753fd93e","name":"Billing Team","type":"n8n-nodes-base.code","position":[32,0],"parameters":{"jsCode":"return { json: { ...$input.first().json, routed: 'billing_team' } };"},"typeVersion":2},{"id":"4ae34c34-7f16-4d2e-b2af-feeae04fbf5f","name":"Technical Team","type":"n8n-nodes-base.code","position":[32,192],"parameters":{"jsCode":"return { json: { ...$input.first().json, routed: 'technical_team' } };"},"typeVersion":2},{"id":"11a66db0-a365-408c-953f-2154675cbf50","name":"Sales Team","type":"n8n-nodes-base.code","position":[32,384],"parameters":{"jsCode":"return { json: { ...$input.first().json, routed: 'sales_team' } };"},"typeVersion":2},{"id":"e97e0dc7-340c-407e-b3e5-6ea74297e76a","name":"General Inbox","type":"n8n-nodes-base.code","position":[32,960],"parameters":{"jsCode":"return { json: { ...$input.first().json, routed: 'general_inbox' } };"},"typeVersion":2},{"id":"74e4b921-5177-4618-bd89-e6ee95408080","name":"Respond","type":"n8n-nodes-base.respondToWebhook","position":[256,480],"parameters":{"options":{},"respondWith":"json","responseBody":"={{ JSON.stringify({ ticketId: $json.ticketId, routed: $json.routed || $json.action, category: $json.category, confidence: $json.confidence }) }}"},"typeVersion":1.1},{"id":"dfe71ff5-1259-414a-9106-cc260b403556","name":"OpenRouter Chat Model","type":"@n8n/n8n-nodes-langchain.lmChatOpenRouter","position":[-928,800],"parameters":{"model":"google/gemini-3-flash-preview","options":{}},"credentials":{"openRouterApi":{"id":"m9IRh1pT1eHIdKoX","name":"OpenRouter account 2"}},"typeVersion":1},{"id":"1fb7d84f-5cc8-475b-8fbe-772b35a0183c","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-2128,128],"parameters":{"width":576,"height":864,"content":"## Classification-then-Routing\n\n### How it works\n1. **Webhook** receives an incoming support ticket.\n2. **Normalize Ticket** (Code node) cleans and standardizes the input.\n3. **AI - Classify** (AI Agent + OpenRouter) classifies the ticket by category and assigns a confidence score.\n4. **Parse + Validate** (Code node) checks that the AI output has valid categories and scores.\n5. **Confidence Threshold** (Switch node) routes by confidence level: high (>0.85) processes autonomously, medium (0.6-0.85) gets flagged for review, and low (<0.6) goes to a human queue.\n6. **Route by Category** (Switch node) fans high-confidence tickets to Billing, Technical, Sales, or General team handlers.\n\n### Setup\n- Connect your **LLM credentials** (e.g., OpenRouter, OpenAI) to the Chat Model node\n- Copy the Webhook test URL and send test tickets with varying complexity to see different confidence routing\n- Adjust confidence thresholds in the **Confidence Threshold** Switch node to match your risk tolerance\n\n### Customization\n- Replace the team handler Code nodes with real integrations (Slack, Jira, email)\n- Adjust thresholds over time as you validate AI accuracy: lower them to automate more\n\n\nThis template is a learning companion to the Production AI Playbook, a  series that explores strategies, shares best practices, and provides practical examples for building reliable AI systems in n8n.  \n\n\nThis template is a learning companion to the Production AI Playbook, a series that explores strategies, shares best practices, and provides practical examples for building reliable AI systems in n8n.  \n\nhttps://go.n8n.io/PAP-D&A-Blog"},"typeVersion":1},{"id":"18171911-4cd5-4971-9a86-c861475ea933","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-1504,288],"parameters":{"color":7,"width":432,"height":704,"content":"## Receive & Normalize"},"typeVersion":1},{"id":"ce73ad96-e96b-416c-9bab-9164af4bbc7a","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[-1024,288],"parameters":{"color":7,"width":304,"height":704,"content":"## AI Classification"},"typeVersion":1},{"id":"fd237475-e0b1-43d7-acd2-eeff54c72076","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[-688,288],"parameters":{"color":7,"width":416,"height":704,"content":"## Confidence Routing"},"typeVersion":1},{"id":"b2a3d9d5-9f58-44c3-a1cc-864f36c58d0a","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[-224,-64],"parameters":{"color":7,"width":656,"height":1184,"content":"## Category Routing"},"typeVersion":1}],"pinData":{},"connections":{"Sales Team":{"main":[[{"node":"Respond","type":"main","index":0}]]},"Billing Team":{"main":[[{"node":"Respond","type":"main","index":0}]]},"AI - Classify":{"main":[[{"node":"Parse + Validate","type":"main","index":0}]]},"General Inbox":{"main":[[{"node":"Respond","type":"main","index":0}]]},"Technical Team":{"main":[[{"node":"Respond","type":"main","index":0}]]},"Flag for Review":{"main":[[{"node":"Respond","type":"main","index":0}]]},"Normalize Ticket":{"main":[[{"node":"AI - Classify","type":"main","index":0}]]},"Parse + Validate":{"main":[[{"node":"Confidence Threshold","type":"main","index":0}]]},"Route by Category":{"main":[[{"node":"Billing Team","type":"main","index":0}],[{"node":"Technical Team","type":"main","index":0}],[{"node":"Sales Team","type":"main","index":0}]]},"Send to Human Queue":{"main":[[{"node":"Respond","type":"main","index":0}]]},"Confidence Threshold":{"main":[[{"node":"Route by Category","type":"main","index":0}],[{"node":"Flag for Review","type":"main","index":0}],[{"node":"Send to Human Queue","type":"main","index":0}]]},"OpenRouter Chat Model":{"ai_languageModel":[[{"node":"AI - Classify","type":"ai_languageModel","index":0}]]},"Webhook - Incoming Ticket":{"main":[[{"node":"Normalize Ticket","type":"main","index":0}]]}}},"lastUpdatedBy":29,"workflowInfo":{"nodeCount":19,"nodeTypes":{"n8n-nodes-base.code":{"count":8},"n8n-nodes-base.switch":{"count":2},"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.lmChatOpenRouter":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Elvis Sarvia","username":"elvissaravia","bio":"","verified":true,"links":[],"avatar":"https://gravatar.com/avatar/ea69c5850ff18c010244a46216d72964c80a8d752fafefe2be114bdf6d05ae8a?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":112,"icon":"fa:map-signs","name":"n8n-nodes-base.switch","codex":{"data":{"alias":["Router","If","Path","Filter","Condition","Logic","Branch","Case"],"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/","icon":"👦","label":"Build your own virtual assistant with n8n: A step by step guide"},{"url":"https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.switch/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"Switch","color":"#506000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"Switch","typeVersion":3,"nodeCategories":[{"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":1281,"icon":"file:openrouter.svg","name":"@n8n/n8n-nodes-langchain.lmChatOpenRouter","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenrouter/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]}}},"group":"[\"transform\"]","defaults":{"name":"OpenRouter Chat Model"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjOTRBM0I4IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjx0aXRsZT5PcGVuUm91dGVyPC90aXRsZT48cGF0aCBkPSJNMTYuODA0IDEuOTU3bDcuMjIgNC4xMDV2LjA4N0wxNi43MyAxMC4yMWwuMDE3LTIuMTE3LS44MjEtLjAzYy0xLjA1OS0uMDI4LTEuNjExLjAwMi0yLjI2OC4xMS0xLjA2NC4xNzUtMi4wMzguNTc3LTMuMTQ3IDEuMzUyTDguMzQ1IDExLjAzYy0uMjg0LjE5NS0uNDk1LjMzNi0uNjguNDU1bC0uNTE1LjMyMi0uMzk3LjIzNC4zODUuMjMuNTMuMzM4Yy40NzYuMzE0IDEuMTcuNzk2IDIuNzAxIDEuODY2IDEuMTEuNzc1IDIuMDgzIDEuMTc3IDMuMTQ3IDEuMzUybC4zLjA0NWMuNjk0LjA5MSAxLjM3NS4wOTQgMi44MjUuMDMzbC4wMjItMi4xNTkgNy4yMiA0LjEwNXYuMDg3TDE2LjU4OSAyMmwuMDE0LTEuODYyLS42MzUuMDIyYy0xLjM4Ni4wNDItMi4xMzcuMDAyLTMuMTM4LS4xNjItMS42OTQtLjI4LTMuMjYtLjkyNi00Ljg4MS0yLjA1OWwtMi4xNTgtMS41YTIxLjk5NyAyMS45OTcgMCAwMC0uNzU1LS40OThsLS40NjctLjI4YTU1LjkyNyA1NS45MjcgMCAwMC0uNzYtLjQzQzIuOTA4IDE0LjczLjU2MyAxNC4xMTYgMCAxNC4xMTZWOS44ODhsLjE0LjAwNGMuNTY0LS4wMDcgMi45MS0uNjIyIDMuODA5LTEuMTI0bDEuMDE2LS41OC40MzgtLjI3NGMuNDI4LS4yOCAxLjA3Mi0uNzI2IDIuNjg2LTEuODUzIDEuNjIxLTEuMTMzIDMuMTg2LTEuNzggNC44ODEtMi4wNTkgMS4xNTItLjE5IDEuOTc0LS4yMTMgMy44MTQtLjEzOGwuMDItMS45MDd6Ij48L3BhdGg+PC9zdmc+Cg=="},"displayName":"OpenRouter Chat Model","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]}],"categories":[{"id":41,"name":"Ticket Management"},{"id":49,"name":"AI Summarization"}],"image":[]}}