{"workflow":{"id":13855,"name":"Production AI Playbook: Deterministic Steps & AI Steps (5 of 5)","views":6,"recentViews":0,"totalViews":6,"createdAt":"2026-03-04T02:09:25.993Z","description":"The full end-to-end workflow that chains all patterns together. This template processes customer feedback from intake to team routing, with normalization, validation, native guardrails, AI classification, and confidence-based branching at every step.\n\n**What you'll do**\n- Send customer feedback through a webhook and watch it flow through every stage.\n- See the data get normalized, validated, and scanned by n8n's native Guardrails node for jailbreak attempts and PII.\n- Watch the AI classify feedback (bug report, feature request, praise, complaint, question) with a confidence score and generate a personalized response draft.\n- See AI-generated responses pass through output guardrails that check for NSFW content and secret keys before reaching users.\n- Watch high-confidence results route automatically: bug reports and feature requests to the product team, complaints to customer success, and praise to marketing as testimonial candidates.\n\n**What you'll learn**\n- How to chain normalization, validation, native guardrails, AI, and routing into a single pipeline\n- How to use n8n's Guardrails node for both input screening (jailbreak, PII, secret keys) and output screening (NSFW, secret keys)\n- How confidence-based branching separates high-confidence results from items that need human review\n- How Switch nodes route classified feedback to the right destination (product team, customer success, or marketing)\n- How every step between AI nodes is deterministic and inspectable\n- How all these patterns work together in a production-ready workflow\n\n**Why it matters**\nThis is the complete picture. Individual patterns are useful on their own, but the real power comes from combining them into a pipeline where AI handles the judgment calls and everything else follows explicit, testable rules. Import this template as your starting point and connect your own integrations.\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":"7a174902-d92d-4f7f-9cc1-c31bf03cdc9e","name":"Respond - Result","type":"n8n-nodes-base.respondToWebhook","position":[-160,1264],"parameters":{"options":{},"respondWith":"json","responseBody":"={{ JSON.stringify({ feedbackId: $json.feedbackId, category: $json.category, action: $json.action, destination: $json.destination, confidence: $json.confidence }) }}"},"typeVersion":1.1},{"id":"618c9dfe-6534-4540-8421-a61c0c0d3d13","name":"Queue for Human Review","type":"n8n-nodes-base.code","position":[-384,1648],"parameters":{"jsCode":"return { json: { ...$('Validate AI Output').first().json, action: 'needs_human_review', reason: 'low_confidence_or_validation_failure' } };"},"typeVersion":2},{"id":"c0344566-9966-4633-9fc1-3f14715f0ac9","name":"Flag as Testimonial","type":"n8n-nodes-base.code","position":[-384,1456],"parameters":{"jsCode":"return { json: { ...$('Validate AI Output').first().json, action: 'testimonial_candidate', destination: 'marketing' } };"},"typeVersion":2},{"id":"3d1670fb-5f75-4ca5-bd33-e2d710005e2c","name":"Escalate to CS","type":"n8n-nodes-base.code","position":[-384,1264],"parameters":{"jsCode":"return { json: { ...$('Validate AI Output').first().json, action: 'escalated_to_cs', destination: 'customer_success', priority: 'high' } };"},"typeVersion":2},{"id":"b537f155-c8f6-4b92-ae19-15cad4ce696e","name":"Add to Backlog","type":"n8n-nodes-base.code","position":[-384,1072],"parameters":{"jsCode":"return { json: { ...$('Validate AI Output').first().json, action: 'added_to_backlog', destination: 'product' } };"},"typeVersion":2},{"id":"4ef1f784-f94a-4479-aca2-a75cf7f5f024","name":"Create Jira Ticket","type":"n8n-nodes-base.code","position":[-384,880],"parameters":{"jsCode":"return { json: { ...$('Validate AI Output').first().json, action: 'jira_ticket_created', destination: 'engineering' } };"},"typeVersion":2},{"id":"52463424-564d-4b05-94e0-b08cd3408a8b","name":"Route by Type","type":"n8n-nodes-base.switch","position":[-608,1136],"parameters":{"rules":{"values":[{"outputKey":"Product Issue","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"d6","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $('Validate AI Output').item.json.category }}","rightValue":"product_issue"}]},"renameOutput":true},{"outputKey":"Feature Request","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"d7","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $('Validate AI Output').item.json.category }}","rightValue":"feature_request"}]},"renameOutput":true},{"outputKey":"Complaint","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"d8","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $('Validate AI Output').item.json.category }}","rightValue":"complaint"}]},"renameOutput":true},{"outputKey":"Praise","conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"ad5fb6da-9fe3-4938-afa0-1224711fe3e4","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $('Validate AI Output').item.json.category }}","rightValue":"praise"}]},"renameOutput":true}]},"options":{"fallbackOutput":2}},"typeVersion":3.2},{"id":"de3d0075-8164-49c0-9628-f5b16a6f4a30","name":"High Confidence + Valid?","type":"n8n-nodes-base.if","position":[-832,1264],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"d4","operator":{"type":"number","operation":"gte"},"leftValue":"={{ $('Validate AI Output').item.json.confidence }}","rightValue":0.7},{"id":"d5","operator":{"type":"boolean","operation":"true"},"leftValue":"={{ $('Validate AI Output').item.json.validationPassed }}","rightValue":true}]}},"typeVersion":2.2},{"id":"efd5f629-be98-49c7-a329-841aca4e53fb","name":"AI - Classify + Draft","type":"@n8n/n8n-nodes-langchain.agent","position":[-1760,1344],"parameters":{"text":"=Analyze this customer feedback and return ONLY valid JSON.\n\nCustomer: {{ $('Has Required Fields?').item.json.customerName }}\nProduct: {{ $('Has Required Fields?').item.json.product }}\nFeedback: {{ $('Has Required Fields?').item.json.feedbackText }}\n\nReturn exactly these fields: sentiment, category, priority, suggestedResponse, confidence\n\nUse only these categories: bug_report, feature_request, praise, complaint, question","options":{},"promptType":"define"},"typeVersion":1.7},{"id":"f43c9080-933e-4fd7-8920-f919cea636ed","name":"Respond - Missing Fields","type":"n8n-nodes-base.respondToWebhook","position":[-2048,1904],"parameters":{"options":{"responseCode":400},"respondWith":"json","responseBody":"={{ JSON.stringify({ status: 'error', message: 'Email and feedback text are required' }) }}"},"typeVersion":1.1},{"id":"c1be1b91-c98e-4c4c-bbab-5b9b6281b444","name":"Has Required Fields?","type":"n8n-nodes-base.if","position":[-2336,1760],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"req-check","operator":{"type":"boolean","operation":"true"},"leftValue":"={{ $json.hasRequiredFields }}","rightValue":true}]}},"typeVersion":2.2},{"id":"30628f38-dd8b-4990-b6f2-867317326951","name":"Normalize Feedback","type":"n8n-nodes-base.code","position":[-2560,1760],"parameters":{"jsCode":"// Stage 1: Normalize and clean feedback data\nconst raw = $input.first().json.body;\n\nconst normalized = {\n  feedbackId: 'FB-' + Date.now(),\n  customerName: (raw.name || raw.fullName || 'Anonymous').trim(),\n  customerEmail: (raw.email || '').toLowerCase().trim(),\n  feedbackText: (raw.feedback || raw.message || raw.body || '').trim(),\n  product: (raw.product || raw.service || 'general').toLowerCase().trim(),\n  source: (raw.source || 'web').toLowerCase(),\n  receivedAt: new Date().toISOString()\n};\n\nnormalized.hasRequiredFields = !!(normalized.customerEmail && normalized.feedbackText);\n\nreturn { json: normalized };"},"typeVersion":2},{"id":"a46e4d0c-7bce-4568-a516-5cec16564a44","name":"Webhook - Feedback Intake","type":"n8n-nodes-base.webhook","position":[-2784,1760],"webhookId":"6a2390fe-8fc9-49c8-acc7-76c056f6c2ef","parameters":{"path":"customer-feedback","options":{},"httpMethod":"POST","responseMode":"responseNode"},"typeVersion":2},{"id":"6ab78c6a-8b90-4030-948a-cbcd1df3e0fd","name":"Input Guardrails","type":"@n8n/n8n-nodes-langchain.guardrails","position":[-2112,1504],"parameters":{"text":"={{ $json.feedbackText }}","guardrails":{"pii":{"value":{"type":"all"}},"jailbreak":{"value":{"threshold":0.8}},"secretKeys":{"value":{"permissiveness":"balanced"}}}},"typeVersion":1},{"id":"ed87ab69-58d9-41df-844b-e8730ba2cdae","name":"Input Guardrails LLM","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[-2048,1728],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-4o","cachedResultName":"gpt-4o"},"options":{}},"credentials":{"openAiApi":{"id":"B67YxZwYEqGQkjNE","name":"OpenAi account 2"}},"typeVersion":1.2},{"id":"1e2c8e68-1c4e-4f08-96b5-b6788bf5c340","name":"Validate AI Output","type":"n8n-nodes-base.code","position":[-1408,1456],"parameters":{"mode":"runOnceForEachItem","jsCode":"const input = $json;\nlet parsed;\ntry {\n  let raw = typeof input.output === 'string' ? input.output : JSON.stringify(input.output);\n  raw = raw.replace(/```json\\n?/g, '').replace(/```\\n?/g, '').trim();\n  parsed = JSON.parse(raw);\n} catch (e) {\n  return { json: { ...input, validationPassed: false, validationError: 'Invalid JSON in AI output' } };\n}\nconst required = ['sentiment', 'category', 'priority', 'suggestedResponse'];\nconst missing = required.filter(f => !parsed[f]);\nif (missing.length > 0) {\n  return { json: { ...input, ...parsed, validationPassed: false, validationError: 'Missing fields: ' + missing.join(', ') } };\n}\nconst validSentiments = ['positive', 'negative', 'neutral', 'mixed'];\nconst validCategories = ['bug_report', 'feature_request', 'praise', 'complaint', 'question'];\nconst validPriorities = ['critical', 'high', 'medium', 'low'];\nconst errors = [];\nif (!validSentiments.includes(parsed.sentiment)) errors.push('Invalid sentiment');\nif (!validCategories.includes(parsed.category)) errors.push('Invalid category');\nif (!validPriorities.includes(parsed.priority)) errors.push('Invalid priority');\nif (errors.length > 0) {\n  return { json: { ...input, ...parsed, validationPassed: false, validationError: errors.join(', ') } };\n}\nreturn { json: { ...input, ...parsed, validationPassed: true } };"},"typeVersion":2},{"id":"2146e518-bbbf-4c05-bbb2-83fc7e9c5651","name":"Output Guardrails","type":"@n8n/n8n-nodes-langchain.guardrails","position":[-1184,1456],"parameters":{"text":"={{ $json.suggestedResponse }}","guardrails":{"nsfw":{"value":{"threshold":0.8}},"secretKeys":{"value":{"permissiveness":"balanced"}}}},"typeVersion":1},{"id":"3c0cf427-51c0-4895-ad7f-e324f51efef4","name":"Respond - Input Blocked","type":"n8n-nodes-base.respondToWebhook","position":[-1696,1744],"parameters":{"options":{"responseCode":400},"respondWith":"json","responseBody":"={{ JSON.stringify({ status: 'input_blocked', message: 'Your message could not be processed. Please rephrase and try again.' }) }}"},"typeVersion":1.1},{"id":"7b874469-8620-433a-8e16-f4449781a278","name":"OpenRouter Chat Model","type":"@n8n/n8n-nodes-langchain.lmChatOpenRouter","position":[-1120,1680],"parameters":{"model":"google/gemini-3-flash-preview","options":{}},"credentials":{"openRouterApi":{"id":"m9IRh1pT1eHIdKoX","name":"OpenRouter account 2"}},"typeVersion":1},{"id":"dae51f1b-2d3f-42fd-8a74-fc0bfeb9acb1","name":"OpenRouter Chat Model1","type":"@n8n/n8n-nodes-langchain.lmChatOpenRouter","position":[-1696,1568],"parameters":{"model":"google/gemini-3-flash-preview","options":{}},"credentials":{"openRouterApi":{"id":"m9IRh1pT1eHIdKoX","name":"OpenRouter account 2"}},"typeVersion":1},{"id":"2ebce685-2ada-4dd1-87f2-c89d7f5454b4","name":"Respond - Output Blocked","type":"n8n-nodes-base.respondToWebhook","position":[-832,1456],"parameters":{"options":{"responseCode":400},"respondWith":"json","responseBody":"={{ JSON.stringify({ status: 'input_blocked', message: 'Your message could not be processed. Please rephrase and try again.' }) }}"},"typeVersion":1.1},{"id":"b3c38b11-0c9a-4a6e-92f3-121c57f929eb","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-3536,1264],"parameters":{"width":624,"height":912,"content":"## Complete Customer Feedback Pipeline\n\n### How it works\nThis workflow chains all five stages of the hybrid deterministic + AI pattern:\n1. **Intake** (Deterministic): Webhook receives feedback, Code node normalizes it, IF node validates required fields.\n2. **Input Guardrails** (Deterministic): Guardrails node checks for PII, injection attempts, and blocked keywords. Flagged inputs are blocked.\n3. **AI Classification + Drafting** (AI): AI Agent classifies the feedback (product issue, feature request, complaint, praise) and drafts a personalized response.\n4. **Output Validation** (Deterministic): Code node validates the classification. Guardrails node checks the draft for policy violations.\n5. **Routing** (Deterministic): High-confidence, valid results route by type: product issues create Jira tickets, feature requests go to backlog, complaints escalate to CS, and praise is flagged for testimonials. Low-confidence results queue for human review.\n\n### Setup\n- Connect your **LLM credentials** to the Chat Model nodes (AI Agent + both Guardrails nodes)\n- Copy the Webhook test URL and send sample feedback with varying tone and content\n- Review the **Route by Type** Switch node to map categories to your actual team integrations\n\n### Customization\n- Replace placeholder Code nodes (Jira, Backlog, Escalate, Testimonial) with real integrations\n- Tune confidence thresholds in the **High Confidence + Valid?** node as you validate accuracy\n- Add more feedback categories by extending the AI prompt and the Route by Type switch\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":"1e649a11-e414-4b21-b833-ab85ea22cf6a","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-2864,1520],"parameters":{"color":7,"width":448,"height":544,"content":"## Intake & Normalize"},"typeVersion":1},{"id":"a733f629-82ac-4d5b-9d48-1dba94a415f7","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[-2384,1440],"parameters":{"color":7,"width":544,"height":624,"content":"## Input Guardrails"},"typeVersion":1},{"id":"8dd60983-46fb-46a4-a230-f223d6d5b5b7","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[-1808,1264],"parameters":{"color":7,"width":544,"height":640,"content":"## AI Classification & Drafting"},"typeVersion":1},{"id":"b1dadf6d-de05-4f9a-8de4-81d1816890b3","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[-1232,1184],"parameters":{"color":7,"width":544,"height":688,"content":"## Output Validation"},"typeVersion":1},{"id":"60fe62ba-e773-4bfc-8660-88ba2eead7bd","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[-656,800],"parameters":{"color":7,"width":704,"height":1072,"content":"## Route by Type"},"typeVersion":1}],"pinData":{},"connections":{"Route by Type":{"main":[[{"node":"Create Jira Ticket","type":"main","index":0}],[{"node":"Add to Backlog","type":"main","index":0}],[{"node":"Escalate to CS","type":"main","index":0}],[{"node":"Flag as Testimonial","type":"main","index":0}]]},"Add to Backlog":{"main":[[{"node":"Respond - Result","type":"main","index":0}]]},"Escalate to CS":{"main":[[{"node":"Respond - Result","type":"main","index":0}]]},"Input Guardrails":{"main":[[{"node":"AI - Classify + Draft","type":"main","index":0}],[{"node":"Respond - Input Blocked","type":"main","index":0}]]},"Output Guardrails":{"main":[[{"node":"High Confidence + Valid?","type":"main","index":0}],[{"node":"Respond - Output Blocked","type":"main","index":0}]]},"Create Jira Ticket":{"main":[[{"node":"Respond - Result","type":"main","index":0}]]},"Normalize Feedback":{"main":[[{"node":"Has Required Fields?","type":"main","index":0}]]},"Validate AI Output":{"main":[[{"node":"Output Guardrails","type":"main","index":0}]]},"Flag as Testimonial":{"main":[[{"node":"Respond - Result","type":"main","index":0}]]},"Has Required Fields?":{"main":[[{"node":"Input Guardrails","type":"main","index":0}],[{"node":"Respond - Missing Fields","type":"main","index":0}]]},"Input Guardrails LLM":{"ai_languageModel":[[{"node":"Input Guardrails","type":"ai_languageModel","index":0}]]},"AI - Classify + Draft":{"main":[[{"node":"Validate AI Output","type":"main","index":0}]]},"OpenRouter Chat Model":{"ai_languageModel":[[{"node":"Output Guardrails","type":"ai_languageModel","index":0}]]},"OpenRouter Chat Model1":{"ai_languageModel":[[{"node":"AI - Classify + Draft","type":"ai_languageModel","index":0}]]},"Queue for Human Review":{"main":[[{"node":"Respond - Result","type":"main","index":0}]]},"High Confidence + Valid?":{"main":[[{"node":"Route by Type","type":"main","index":0}],[{"node":"Queue for Human Review","type":"main","index":0}]]},"Webhook - Feedback Intake":{"main":[[{"node":"Normalize Feedback","type":"main","index":0}]]}}},"lastUpdatedBy":29,"workflowInfo":{"nodeCount":27,"nodeTypes":{"n8n-nodes-base.if":{"count":2},"n8n-nodes-base.code":{"count":7},"n8n-nodes-base.switch":{"count":1},"n8n-nodes-base.webhook":{"count":1},"n8n-nodes-base.stickyNote":{"count":6},"@n8n/n8n-nodes-langchain.agent":{"count":1},"n8n-nodes-base.respondToWebhook":{"count":4},"@n8n/n8n-nodes-langchain.guardrails":{"count":2},"@n8n/n8n-nodes-langchain.lmChatOpenAi":{"count":1},"@n8n/n8n-nodes-langchain.lmChatOpenRouter":{"count":2}}},"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":20,"icon":"fa:map-signs","name":"n8n-nodes-base.if","codex":{"data":{"alias":["Router","Filter","Condition","Logic","Boolean","Branch"],"details":"The IF node can be used to implement binary conditional logic in your workflow. You can set up one-to-many conditions to evaluate each item of data being inputted into the node. That data will either evaluate to TRUE or FALSE and route out of the node accordingly.\n\nThis node has multiple types of conditions: Bool, String, Number, and Date & Time.","resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"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/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/","icon":"🤬","label":"Create a toxic language detector for Telegram in 4 step"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"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/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"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/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/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"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/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.if/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"If","color":"#408000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"If","typeVersion":2,"nodeCategories":[{"id":9,"name":"Core 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":1153,"icon":"file:openAiLight.svg","name":"@n8n/n8n-nodes-langchain.lmChatOpenAi","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]}}},"group":"[\"transform\"]","defaults":{"name":"OpenAI Chat Model"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTM2Ljg2NzEgMTYuMzcxOEMzNy43NzQ2IDEzLjY0OCAzNy40NjIxIDEwLjY2NDIgMzYuMDEwOCA4LjE4NjYxQzMzLjgyODIgNC4zODY1MyAyOS40NDA3IDIuNDMxNDkgMjUuMTU1NiAzLjM1MTUxQzIzLjI0OTMgMS4yMDM5NiAyMC41MTA1IC0wLjAxNzMxNDggMTcuNjM5MiAwLjAwMDE4NTUzM0MxMy4yNTkxIC0wLjAwOTgxNDY4IDkuMzcyNzMgMi44MTAyNSA4LjAyNTIgNi45Nzc4M0M1LjIxMTM5IDcuNTU0MSAyLjc4MjU4IDkuMzE1MzggMS4zNjEzIDExLjgxMTdDLTAuODM3NDkzIDE1LjYwMTggLTAuMzM2MjMyIDIwLjM3OTQgMi42MDEzMyAyMy42Mjk0QzEuNjkzODEgMjYuMzUzMiAyLjAwNjMyIDI5LjMzNzEgMy40NTc2IDMxLjgxNDZDNS42NDAxNSAzNS42MTQ3IDEwLjAyNzcgMzcuNTY5NyAxNC4zMTI4IDM2LjY0OTdDMTYuMjE3OSAzOC43OTczIDE4Ljk1NzkgNDAuMDE4NSAyMS44MjkyIDM5Ljk5OThDMjYuMjExOCA0MC4wMTEgMzAuMDk5NCAzNy4xODg1IDMxLjQ0NjkgMzMuMDE3MUMzNC4yNjA4IDMyLjQ0MDkgMzYuNjg5NiAzMC42Nzk2IDM4LjExMDggMjguMTgzM0M0MC4zMDcxIDI0LjM5MzIgMzkuODA0NiAxOS42MTk0IDM2Ljg2ODMgMTYuMzY5M0wzNi44NjcxIDE2LjM3MThaTTIxLjgzMTcgMzcuMzg2QzIwLjA3OCAzNy4zODg1IDE4LjM3OTIgMzYuNzc0NyAxNy4wMzI5IDM1LjY1MDlDMTcuMDk0MSAzNS42MTg0IDE3LjIwMDQgMzUuNTU5NyAxNy4yNjkxIDM1LjUxNzJMMjUuMjM0MyAzMC45MTcxQzI1LjY0MTggMzAuNjg1OCAyNS44OTE4IDMwLjI1MjEgMjUuODg5MyAyOS43ODMzVjE4LjU1NDNMMjkuMjU1NyAyMC40OTgxQzI5LjI5MTkgMjAuNTE1NiAyOS4zMTU3IDIwLjU1MDYgMjkuMzIwNyAyMC41OTA2VjI5Ljg4OTZDMjkuMzE1NyAzNC4wMjQ3IDI1Ljk2NjggMzcuMzc3MiAyMS44MzE3IDM3LjM4NlpNNS43MjY0IDMwLjUwNzFDNC44NDc2MyAyOC45ODk2IDQuNTMxMzcgMjcuMjEwOCA0LjgzMjYzIDI1LjQ4NDVDNC44OTEzOCAyNS41MTk1IDQuOTk1MTMgMjUuNTgzMiA1LjA2ODg4IDI1LjYyNTdMMTMuMDM0MSAzMC4yMjU4QzEzLjQzNzggMzAuNDYyMSAxMy45Mzc4IDMwLjQ2MjEgMTQuMzQyOCAzMC4yMjU4TDI0LjA2NjggMjQuNjEwN1YyOC40OTgzQzI0LjA2OTMgMjguNTM4MyAyNC4wNTA1IDI4LjU3NyAyNC4wMTkzIDI4LjYwMkwxNS45Njc5IDMzLjI1MDlDMTIuMzgxNSAzNS4zMTU5IDcuODAxNDQgMzQuMDg4NCA1LjcyNzY1IDMwLjUwNzFINS43MjY0Wk0zLjYzMDEgMTMuMTIwNUM0LjUwNTEyIDExLjYwMDQgNS44ODY0IDEwLjQzNzkgNy41MzE0NCA5LjgzNDE1QzcuNTMxNDQgOS45MDI5IDcuNTI3NjkgMTAuMDI0MiA3LjUyNzY5IDEwLjEwOTJWMTkuMzEwNkM3LjUyNTE5IDE5Ljc3ODEgNy43NzUxOSAyMC4yMTE5IDguMTgxNDUgMjAuNDQzMUwxNy45MDU0IDI2LjA1N0wxNC41MzkxIDI4LjAwMDhDMTQuNTA1MyAyOC4wMjMzIDE0LjQ2MjggMjguMDI3IDE0LjQyNTMgMjguMDEwOEw2LjM3MjY2IDIzLjM1ODJDMi43OTM4MyAyMS4yODU2IDEuNTY2MzEgMTYuNzA2OCAzLjYyODg1IDEzLjEyMTdMMy42MzAxIDEzLjEyMDVaTTMxLjI4ODIgMTkuNTU2OUwyMS41NjQyIDEzLjk0MTdMMjQuOTMwNiAxMS45OTkyQzI0Ljk2NDMgMTEuOTc2NyAyNS4wMDY4IDExLjk3MjkgMjUuMDQ0MyAxMS45ODkyTDMzLjA5NyAxNi42MzhDMzYuNjgyMSAxOC43MDkzIDM3LjkxMDggMjMuMjk1NyAzNS44Mzk1IDI2Ljg4MDhDMzQuOTYzMyAyOC4zOTgzIDMzLjU4MzIgMjkuNTYwOCAzMS45Mzk1IDMwLjE2NThWMjAuNjg5NEMzMS45NDMyIDIwLjIyMTkgMzEuNjk0NSAxOS43ODk0IDMxLjI4OTQgMTkuNTU2OUgzMS4yODgyWk0zNC42MzgzIDE0LjUxNDJDMzQuNTc5NSAxNC40NzggMzQuNDc1OCAxNC40MTU1IDM0LjQwMiAxNC4zNzNMMjYuNDM2OCA5Ljc3Mjg5QzI2LjAzMzEgOS41MzY2NCAyNS41MzMxIDkuNTM2NjQgMjUuMTI4MSA5Ljc3Mjg5TDE1LjQwNDEgMTUuMzg4VjExLjUwMDRDMTUuNDAxNiAxMS40NjA0IDE1LjQyMDQgMTEuNDIxNyAxNS40NTE2IDExLjM5NjdMMjMuNTAzIDYuNzUxNThDMjcuMDg5NCA0LjY4Mjc5IDMxLjY3NDUgNS45MTQwNiAzMy43NDIgOS41MDE2NEMzNC42MTU4IDExLjAxNjcgMzQuOTMyIDEyLjc5MDUgMzQuNjM1OCAxNC41MTQySDM0LjYzODNaTTEzLjU3NDEgMjEuNDQzMUwxMC4yMDY1IDE5LjQ5OTRDMTAuMTcwMiAxOS40ODE5IDEwLjE0NjUgMTkuNDQ2OCAxMC4xNDE1IDE5LjQwNjhWMTAuMTA3OUMxMC4xNDQgNS45Njc4MSAxMy41MDI4IDIuNjEyNzQgMTcuNjQyOSAyLjYxNTI0QzE5LjM5NDIgMi42MTUyNCAyMS4wODkyIDMuMjMwMjUgMjIuNDM1NSA0LjM1MDI4QzIyLjM3NDMgNC4zODI3OCAyMi4yNjkzIDQuNDQxNTMgMjIuMTk5MiA0LjQ4NDAzTDE0LjIzNDEgOS4wODQxM0MxMy44MjY2IDkuMzE1MzggMTMuNTc2NiA5Ljc0Nzg5IDEzLjU3OTEgMTAuMjE2N0wxMy41NzQxIDIxLjQ0MDZWMjEuNDQzMVpNMTUuNDAyOSAxNy41MDA2TDE5LjczNDIgMTQuOTk5M0wyNC4wNjU1IDE3LjQ5OTNWMjIuNTAwN0wxOS43MzQyIDI1LjAwMDdMMTUuNDAyOSAyMi41MDA3VjE3LjUwMDZaIiBmaWxsPSIjN0Q3RDg3Ii8+Cjwvc3ZnPgo="},"displayName":"OpenAI Chat Model","typeVersion":1,"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"}]},{"id":1322,"icon":"file:guardrails.svg","name":"@n8n/n8n-nodes-langchain.guardrails","codex":{"data":{"alias":["LangChain","Guardrails","PII","Secret","Injection","Sanitize"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-langchain.guardrails/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Agents","Miscellaneous","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"Guardrails"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzc2Ml8xNjg4MCkiPgo8cGF0aCBkPSJNMzUgMjEuODk5NEMzNSAzMS4zOTc4IDI4LjQzNzUgMzYuMTQ3IDIwLjYzNzUgMzguOTAxNkMyMC4yMjkxIDM5LjA0MTggMTkuNzg1NCAzOS4wMzUxIDE5LjM4MTMgMzguODgyNkMxMS41NjI1IDM2LjE0NyA1IDMxLjM5NzggNSAyMS44OTk0VjguNjAxNjNDNSA4LjA5NzggNS4xOTc1NCA3LjYxNDYxIDUuNTQ5MTggNy4yNTgzNUM1LjkwMDgxIDYuOTAyMDkgNi4zNzc3MiA2LjcwMTk0IDYuODc1IDYuNzAxOTRDMTAuNjI1IDYuNzAxOTQgMTUuMzEyNSA0LjQyMjMzIDE4LjU3NSAxLjUzNDgxQzE4Ljk3MjIgMS4xOTA5NiAxOS40Nzc1IDEuMDAyMDQgMjAgMS4wMDIwNEMyMC41MjI1IDEuMDAyMDQgMjEuMDI3OCAxLjE5MDk2IDIxLjQyNSAxLjUzNDgxQzI0LjcwNjMgNC40NDEzMiAyOS4zNzUgNi43MDE5NCAzMy4xMjUgNi43MDE5NEMzMy42MjIzIDYuNzAxOTQgMzQuMDk5MiA2LjkwMjA5IDM0LjQ1MDggNy4yNTgzNUMzNC44MDI1IDcuNjE0NjEgMzUgOC4wOTc4IDM1IDguNjAxNjNWMjEuODk5NFoiIHN0cm9rZT0iIzU2OTlGRiIgc3Ryb2tlLXdpZHRoPSIzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTIwIDM5LjAwMlYxLjAwMjA0IiBzdHJva2U9IiM1Njk5RkYiIHN0cm9rZS13aWR0aD0iMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDBfNzYyXzE2ODgwIj4KPHJlY3Qgd2lkdGg9IjQwIiBoZWlnaHQ9IjQwIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Guardrails","typeVersion":2,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]}],"categories":[{"id":41,"name":"Ticket Management"},{"id":49,"name":"AI Summarization"}],"image":[]}}