{"workflow":{"id":14409,"name":"Route IAM events with GPT-4o-mini, forgeLLM, Slack, email, and audit logs","views":8,"recentViews":1,"totalViews":8,"createdAt":"2026-03-28T08:13:29.954Z","description":"## How It Works\nThis workflow automates Identity and Access Management (IAM) event governance using an AI agent, targeting security operations teams, compliance officers, and IT governance teams managing cloud or enterprise IAM systems. The core problem it solves is the manual, error-prone review of IAM events, such as permission grants, role changes, and access revocations, which are high-risk and require rapid, consistent decision-making at scale. When an IAM event is received via webhook (POST), a Governance Agent powered by an LLM evaluates it using contextual memory, an Access Signal Agent, and a forgeLLM API. It cross-references compliance rules via a Compliance Query Tool and logs findings through an Audit Log Tool. Notifications are dispatched via Email and Slack. Based on the agent's decision, a Rules-based Router directs the event into one of three branches, namely: Approved, Revoked, or Escalated, where event data is prepared and stored accordingly. A unified response is then returned to the caller, ensuring every IAM event is audited, classified, and actioned without human bottlenecks.\n\n## Setup Steps\n1. Configure the Webhook node with your IAM event source endpoint.\n2. Add LLM credentials to the forgeLLM API Tool node.\n3. Set up Governance Model with your policy prompt and connect Conversation Memory.\n4. Configure Access Signal Agent with your access data source credentials.\n5. Connect Compliance Query Tool to your compliance database or API.\n6. Add Gmail/SMTP credentials to the Email Notification Tool.\n7. Add Slack Bot token to the Slack Notification Tool.\n \n## Prerequisites\n- forgeLLM or compatible LLM API key\n- Slack Bot token\n- Gmail/SMTP credentials\n## Use Cases\n- Automatically approve or revoke IAM role assignments based on policy.\n## Customization\n- Swap forgeLLM for OpenAI or Anthropic models.\n## Benefits\n- Eliminates manual IAM review bottlenecks.\n","workflow":{"id":"S0DqTtF7QQsluFfM","meta":{"instanceId":"b91e510ebae4127f953fd2f5f8d40d58ca1e71c746d4500c12ae86aad04c1502"},"name":"AI agent for IAM event governance with compliance routing and audit","tags":[],"nodes":[{"id":"f7e0a39e-40b2-432f-b801-423513af3b0e","name":"Receive IAM Event","type":"n8n-nodes-base.webhook","position":[240,576],"webhookId":"1c9759f6-3671-4056-859a-fd755a4e3547","parameters":{"path":"iam-events","options":{},"httpMethod":"POST","responseMode":"responseNode"},"typeVersion":2.1},{"id":"26355701-d643-4d5c-855d-2550f928ab8d","name":"Governance Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[1024,576],"parameters":{"text":"={{ $json.body }}","options":{"systemMessage":"You are a Governance Agent responsible for orchestrating IAM access approvals, revocations, and compliance reporting. You coordinate with the Access Signal Agent to validate events, then make decisions on approvals or revocations based on risk level, compliance policies, and organizational rules. For high-risk events, escalate for human approval. For routine events, auto-approve or auto-revoke. Generate compliance reports summarizing all actions taken."},"promptType":"define","hasOutputParser":true},"typeVersion":3.1},{"id":"1affc496-cb3e-452e-92fb-5f22687675ba","name":"Governance Model","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[464,800],"parameters":{"model":{"__rl":true,"mode":"id","value":"gpt-4o-mini"},"options":{"temperature":0.2},"builtInTools":{}},"credentials":{"openAiApi":{"id":"mv2ECvRtbAK63G2g","name":"OpenAi account"}},"typeVersion":1.3},{"id":"ba81b3a7-266c-4b0f-a6ab-809c4760e3db","name":"Conversation Memory","type":"@n8n/n8n-nodes-langchain.memoryBufferWindow","position":[592,800],"parameters":{},"typeVersion":1.3},{"id":"fc93a4b4-3603-42ed-b055-18357384a1bf","name":"Access Signal Agent","type":"@n8n/n8n-nodes-langchain.agentTool","position":[720,800],"parameters":{"text":"={{ $fromAI('iam_event', 'The IAM event data to validate') }}","options":{"systemMessage":"You are an Access Signal Agent specialized in validating IAM events. Analyze the event structure, verify required fields (user_id, resource, action, timestamp), assess risk level (low/medium/high/critical), detect anomalies (unusual access patterns, privilege escalation, off-hours requests), and check compliance requirements. Return structured validation results."},"hasOutputParser":true,"toolDescription":"Validates structured IAM events including user identity, resource access requests, permission changes, and security signals. Returns validation status, risk level, anomaly detection, and compliance flags."},"typeVersion":3},{"id":"0fba0275-4e87-46de-8f1d-2699f0ee08e8","name":"Access Signal Model","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[672,1008],"parameters":{"model":{"__rl":true,"mode":"id","value":"gpt-4o-mini"},"options":{"temperature":0.1},"builtInTools":{}},"credentials":{"openAiApi":{"id":"mv2ECvRtbAK63G2g","name":"OpenAi account"}},"typeVersion":1.3},{"id":"91ef5ab1-b9a5-4fbd-8918-c99ae37b1c72","name":"Governance Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[1744,800],"parameters":{"schemaType":"manual","inputSchema":"{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"decision\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"enum\": [\"approved\", \"revoked\", \"escalated\", \"pending\"]\n\t\t},\n\t\t\"risk_level\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"enum\": [\"low\", \"medium\", \"high\", \"critical\"]\n\t\t},\n\t\t\"action_taken\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"compliance_status\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"reasoning\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"requires_human_review\": {\n\t\t\t\"type\": \"boolean\"\n\t\t}\n\t},\n\t\"required\": [\"decision\", \"risk_level\", \"action_taken\", \"reasoning\"]\n}"},"typeVersion":1.3},{"id":"ef038eaa-e54f-486e-9be3-60bc8953c5a7","name":"Validation Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[864,1008],"parameters":{"schemaType":"manual","inputSchema":"{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"is_valid\": {\n\t\t\t\"type\": \"boolean\"\n\t\t},\n\t\t\"risk_level\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"enum\": [\"low\", \"medium\", \"high\", \"critical\"]\n\t\t},\n\t\t\"anomalies_detected\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"items\": {\n\t\t\t\t\"type\": \"string\"\n\t\t\t}\n\t\t},\n\t\t\"compliance_flags\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"items\": {\n\t\t\t\t\"type\": \"string\"\n\t\t\t}\n\t\t},\n\t\t\"missing_fields\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"items\": {\n\t\t\t\t\"type\": \"string\"\n\t\t\t}\n\t\t},\n\t\t\"validation_message\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"required\": [\"is_valid\", \"risk_level\", \"validation_message\"]\n}"},"typeVersion":1.3},{"id":"676c7cd7-dd20-447e-b715-065c094c930f","name":"forgeLLM API Tool","type":"n8n-nodes-base.httpRequestTool","position":[1040,768],"parameters":{"url":"https://api.runpod.ai/v2/l39v5drmx0q5sc/runsync","method":"POST","options":{},"jsonBody":"={\n  \"input\": {\n    \"prompt\": \"={{ $fromAI('prompt', 'The prompt to send to the fine-tuned LLM') }}\",\n    \"client\": \"iam_governance_system\"\n  }\n}","sendBody":true,"sendHeaders":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth","toolDescription":"Calls forgeLLM fine-tuned model API for specialized IAM analysis and cost-efficient inference on domain-specific tasks","headerParameters":{"parameters":[{"name":"Content-Type","value":"application/json"}]}},"credentials":{"httpHeaderAuth":{"id":"jC9xst7tsOVmQFG0","name":"runway_video"}},"typeVersion":4.4},{"id":"ec6f3988-e4d2-4652-aa4c-ed4e2f5798f7","name":"Slack Notification Tool","type":"n8n-nodes-base.slackTool","position":[1136,896],"webhookId":"5bbef7f8-dc95-4347-ae51-c4552edbac52","parameters":{"text":"={{ $fromAI('message', 'The notification message to send') }}","select":"channel","channelId":{"__rl":true,"mode":"id","value":"={{ $fromAI('channel', 'Slack channel name or ID', 'string', '#iam-approvals') }}"},"otherOptions":{},"authentication":"oAuth2","descriptionType":"manual","toolDescription":"Sends approval requests, escalation alerts, and compliance notifications to Slack channels for high-risk IAM events requiring human review"},"credentials":{"slackOAuth2Api":{"id":"d34b1ayEBbvZm2lT","name":"Slack account"}},"typeVersion":2.4},{"id":"94e72945-3dcd-4f02-8973-02a2eb806c36","name":"Email Notification Tool","type":"n8n-nodes-base.gmailTool","position":[1280,800],"webhookId":"21754034-695c-48c8-bcd7-6f5e6a3d52a2","parameters":{"sendTo":"={{ $fromAI('recipient', 'Email recipient address', 'string') }}","message":"={{ $fromAI('body', 'Email message body') }}","options":{},"subject":"={{ $fromAI('subject', 'Email subject line', 'string') }}","descriptionType":"manual","toolDescription":"Sends email notifications for approvals, revocations, and compliance reports to stakeholders and security teams"},"credentials":{"gmailOAuth2":{"id":"u1N5nBDvQ0AWhNnV","name":"Gmail account"}},"typeVersion":2.2},{"id":"a0bd5b97-ec29-423d-99f5-da1b637f9684","name":"Audit Log Tool","type":"n8n-nodes-base.dataTableTool","position":[1408,800],"parameters":{"columns":{"value":null,"mappingMode":"autoMapInputData"},"options":{},"dataTableId":{"__rl":true,"mode":"id","value":"<__PLACEHOLDER_VALUE__iam_audit_log__>"},"descriptionType":"manual","toolDescription":"Stores IAM events, validation results, approval decisions, and actions taken in the audit log table for compliance tracking"},"typeVersion":1.1},{"id":"aca59098-e567-4736-84fe-22e3ef35952e","name":"Compliance Query Tool","type":"n8n-nodes-base.dataTableTool","position":[1568,800],"parameters":{"operation":"get","dataTableId":{"__rl":true,"mode":"id","value":"<__PLACEHOLDER_VALUE__iam_audit_log__>"},"descriptionType":"manual","toolDescription":"Queries historical IAM audit data for compliance reporting, trend analysis, and anomaly detection across time periods"},"typeVersion":1.1},{"id":"82137ccf-8b47-4c5d-a0b9-3ceae3eacc7c","name":"Route by Decision","type":"n8n-nodes-base.switch","position":[1936,640],"parameters":{"rules":{"values":[{"conditions":{"options":{"leftValue":"","caseSensitive":true},"combinator":"and","conditions":[{"operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.output.decision }}","rightValue":"approved"}]}},{"conditions":{"options":{"leftValue":"","caseSensitive":true},"combinator":"and","conditions":[{"operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.output.decision }}","rightValue":"revoked"}]}},{"conditions":{"options":{"leftValue":"","caseSensitive":true},"combinator":"and","conditions":[{"operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.output.decision }}","rightValue":"escalated"}]}},{"conditions":{"options":{"leftValue":"","caseSensitive":true},"combinator":"and","conditions":[{"operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.output.decision }}","rightValue":"pending"}]}}]},"options":{}},"typeVersion":3.4},{"id":"d4c10a49-f3dc-47eb-a167-865624a3015d","name":"Store Approved Events","type":"n8n-nodes-base.dataTable","position":[2448,528],"parameters":{"columns":{"value":null,"mappingMode":"autoMapInputData"},"options":{},"dataTableId":{"__rl":true,"mode":"id","value":"<__PLACEHOLDER_VALUE__approved_events__>"}},"typeVersion":1.1},{"id":"12ae62c9-1891-408c-9c79-a6080c29190e","name":"Store Revoked Events","type":"n8n-nodes-base.dataTable","position":[2448,800],"parameters":{"columns":{"value":null,"mappingMode":"autoMapInputData"},"options":{},"dataTableId":{"__rl":true,"mode":"id","value":"<__PLACEHOLDER_VALUE__revoked_events__>"}},"typeVersion":1.1},{"id":"7bd206cd-53c0-476d-8aa4-22a1ebe344ee","name":"Store Escalated Events","type":"n8n-nodes-base.dataTable","position":[2448,1088],"parameters":{"columns":{"value":null,"mappingMode":"autoMapInputData"},"options":{},"dataTableId":{"__rl":true,"mode":"id","value":"<__PLACEHOLDER_VALUE__escalated_events__>"}},"typeVersion":1.1},{"id":"3c971b20-48d2-4aca-839d-d1dd457747b8","name":"Return Response","type":"n8n-nodes-base.respondToWebhook","position":[2672,800],"parameters":{"options":{},"respondWith":"json","responseBody":"={{ $json }}"},"typeVersion":1.5},{"id":"3adeae89-c376-4082-877e-dbd70105183f","name":"Prepare Approved Data","type":"n8n-nodes-base.set","position":[2224,560],"parameters":{"options":{},"assignments":{"assignments":[{"id":"id-1","name":"event_id","type":"string","value":"={{ $json.body.event_id }}"},{"id":"id-2","name":"user_id","type":"string","value":"={{ $json.body.user_id }}"},{"id":"id-3","name":"resource","type":"string","value":"={{ $json.body.resource }}"},{"id":"id-4","name":"action","type":"string","value":"={{ $json.body.action }}"},{"id":"id-5","name":"decision","type":"string","value":"={{ $json.output.decision }}"},{"id":"id-6","name":"risk_level","type":"string","value":"={{ $json.output.risk_level }}"},{"id":"id-7","name":"action_taken","type":"string","value":"={{ $json.output.action_taken }}"},{"id":"id-8","name":"reasoning","type":"string","value":"={{ $json.output.reasoning }}"},{"id":"id-9","name":"timestamp","type":"string","value":"={{ $now }}"}]}},"typeVersion":3.4},{"id":"215d2c50-dbb1-4682-ac23-1d6be5f9e96b","name":"Prepare Revoked Data","type":"n8n-nodes-base.set","position":[2224,720],"parameters":{"options":{},"assignments":{"assignments":[{"id":"id-1","name":"event_id","type":"string","value":"={{ $json.body.event_id }}"},{"id":"id-2","name":"user_id","type":"string","value":"={{ $json.body.user_id }}"},{"id":"id-3","name":"resource","type":"string","value":"={{ $json.body.resource }}"},{"id":"id-4","name":"action","type":"string","value":"={{ $json.body.action }}"},{"id":"id-5","name":"decision","type":"string","value":"={{ $json.output.decision }}"},{"id":"id-6","name":"risk_level","type":"string","value":"={{ $json.output.risk_level }}"},{"id":"id-7","name":"action_taken","type":"string","value":"={{ $json.output.action_taken }}"},{"id":"id-8","name":"reasoning","type":"string","value":"={{ $json.output.reasoning }}"},{"id":"id-9","name":"timestamp","type":"string","value":"={{ $now }}"}]}},"typeVersion":3.4},{"id":"7203c53a-b326-48dd-82b4-8e3797131c95","name":"Prepare Escalated Data","type":"n8n-nodes-base.set","position":[2224,1008],"parameters":{"options":{},"assignments":{"assignments":[{"id":"id-1","name":"event_id","type":"string","value":"={{ $json.body.event_id }}"},{"id":"id-2","name":"user_id","type":"string","value":"={{ $json.body.user_id }}"},{"id":"id-3","name":"resource","type":"string","value":"={{ $json.body.resource }}"},{"id":"id-4","name":"action","type":"string","value":"={{ $json.body.action }}"},{"id":"id-5","name":"decision","type":"string","value":"={{ $json.output.decision }}"},{"id":"id-6","name":"risk_level","type":"string","value":"={{ $json.output.risk_level }}"},{"id":"id-7","name":"action_taken","type":"string","value":"={{ $json.output.action_taken }}"},{"id":"id-8","name":"reasoning","type":"string","value":"={{ $json.output.reasoning }}"},{"id":"id-9","name":"requires_human_review","type":"boolean","value":"={{ $json.output.requires_human_review }}"},{"id":"id-10","name":"timestamp","type":"string","value":"={{ $now }}"}]}},"typeVersion":3.4},{"id":"4fd6004b-aec7-49ca-8a25-60849cb9c12a","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[112,16],"parameters":{"width":592,"height":352,"content":"## How It Works\nThis workflow automates Identity and Access Management (IAM) event governance using an AI agent, targeting security operations teams, compliance officers, and IT governance teams managing cloud or enterprise IAM systems. The core problem it solves is the manual, error-prone review of IAM events, such as permission grants, role changes, and access revocations, which are high-risk and require rapid, consistent decision-making at scale. When an IAM event is received via webhook (POST), a Governance Agent powered by an LLM evaluates it using contextual memory, an Access Signal Agent, and a forgeLLM API. It cross-references compliance rules via a Compliance Query Tool and logs findings through an Audit Log Tool. Notifications are dispatched via Email and Slack. Based on the agent's decision, a Rules-based Router directs the event into one of three branches, namely: Approved, Revoked, or Escalated, where event data is prepared and stored accordingly. A unified response is then returned to the caller, ensuring every IAM event is audited, classified, and actioned without human bottlenecks.\n"},"typeVersion":1},{"id":"df496e71-cffa-4e0c-a3ca-93417b835229","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[816,0],"parameters":{"width":432,"height":336,"content":"## Setup Steps\n1. Configure the Webhook node with your IAM event source endpoint.\n2. Add LLM credentials to the forgeLLM API Tool node.\n3. Set up Governance Model with your policy prompt and connect Conversation Memory.\n4. Configure Access Signal Agent with your access data source credentials.\n5. Connect Compliance Query Tool to your compliance database or API.\n6. Add Gmail/SMTP credentials to the Email Notification Tool.\n7. Add Slack Bot token to the Slack Notification Tool."},"typeVersion":1},{"id":"58111447-a957-44a0-a0dc-4c0dad4f6968","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[1328,-64],"parameters":{"color":6,"width":400,"height":368,"content":"## Prerequisites\n- forgeLLM or compatible LLM API key\n- Slack Bot token\n- Gmail/SMTP credentials\n## Use Cases\n- Automatically approve or revoke IAM role assignments based on policy.\n## Customization\n- Swap forgeLLM for OpenAI or Anthropic models.\n## Benefits\n- Eliminates manual IAM review bottlenecks."},"typeVersion":1},{"id":"fe07e97f-41c4-4711-9142-45685aafb058","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[992,432],"parameters":{"color":7,"width":880,"height":704,"content":"## Compliance & Audit\n**What:** Queries compliance rules; logs event details to audit store.\n**Why:** Ensures regulatory traceability and policy alignment."},"typeVersion":1},{"id":"f39e60a8-945d-44b3-bfd5-f8db58060a83","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[1888,432],"parameters":{"color":7,"width":496,"height":848,"content":"\n## Route by Decision\n**What:** Rules engine splits events into Approved, Revoked, or Escalated paths.\n**Why:** Automates downstream handling based on AI verdict.\n"},"typeVersion":1},{"id":"c5cc2514-aa83-4fe9-bcca-f8f4e075854b","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[112,432],"parameters":{"color":7,"width":864,"height":832,"content":"## Receive & Evaluate IAM Event\n**What:** Webhook triggers on incoming IAM event payload; LLM agent immediately assesses it using memory.\n**Why:** Enables real-time, event-driven governance while applying consistent, context-aware policy judgement at scale without polling.\n"},"typeVersion":1},{"id":"c1d1a394-9256-4d37-95eb-eb6b82ce34ef","name":"Sticky Note6","type":"n8n-nodes-base.stickyNote","position":[2400,400],"parameters":{"color":7,"width":416,"height":864,"content":"\n## Store & Respond\n**What:** Prepares and stores classified event data; returns response.\n**Why:** Maintains a structured audit trail and closes the governance loop."},"typeVersion":1}],"active":false,"pinData":{},"settings":{"binaryMode":"separate","executionOrder":"v1"},"versionId":"8548c0e5-7470-4fa0-ba67-8947a09a818c","connections":{"Audit Log Tool":{"ai_tool":[[{"node":"Governance Agent","type":"ai_tool","index":0}]]},"Governance Agent":{"main":[[{"node":"Route by Decision","type":"main","index":0}]]},"Governance Model":{"ai_languageModel":[[{"node":"Governance Agent","type":"ai_languageModel","index":0}]]},"Receive IAM Event":{"main":[[{"node":"Governance Agent","type":"main","index":0}]]},"Route by Decision":{"main":[[{"node":"Prepare Approved Data","type":"main","index":0}],[{"node":"Store Revoked Events","type":"main","index":0},{"node":"Prepare Revoked Data","type":"main","index":0}],[{"node":"Store Escalated Events","type":"main","index":0},{"node":"Prepare Escalated Data","type":"main","index":0}]]},"forgeLLM API Tool":{"ai_tool":[[{"node":"Governance Agent","type":"ai_tool","index":0}]]},"Access Signal Agent":{"ai_tool":[[{"node":"Governance Agent","type":"ai_tool","index":0}]]},"Access Signal Model":{"ai_languageModel":[[{"node":"Access Signal Agent","type":"ai_languageModel","index":0}]]},"Conversation Memory":{"ai_memory":[[{"node":"Governance Agent","type":"ai_memory","index":0}]]},"Prepare Revoked Data":{"main":[[{"node":"Store Revoked Events","type":"main","index":0}]]},"Store Revoked Events":{"main":[[{"node":"Return Response","type":"main","index":0}]]},"Compliance Query Tool":{"ai_tool":[[{"node":"Governance Agent","type":"ai_tool","index":0}]]},"Prepare Approved Data":{"main":[[{"node":"Store Approved Events","type":"main","index":0}]]},"Store Approved Events":{"main":[[{"node":"Return Response","type":"main","index":0}]]},"Prepare Escalated Data":{"main":[[{"node":"Store Escalated Events","type":"main","index":0}]]},"Store Escalated Events":{"main":[[{"node":"Return Response","type":"main","index":0}]]},"Email Notification Tool":{"ai_tool":[[{"node":"Governance Agent","type":"ai_tool","index":0}]]},"Slack Notification Tool":{"ai_tool":[[{"node":"Governance Agent","type":"ai_tool","index":0}]]},"Governance Output Parser":{"ai_outputParser":[[{"node":"Governance Agent","type":"ai_outputParser","index":0}]]},"Validation Output Parser":{"ai_outputParser":[[{"node":"Access Signal Agent","type":"ai_outputParser","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":28,"nodeTypes":{"n8n-nodes-base.set":{"count":3},"n8n-nodes-base.switch":{"count":1},"n8n-nodes-base.webhook":{"count":1},"n8n-nodes-base.dataTable":{"count":3},"n8n-nodes-base.gmailTool":{"count":1},"n8n-nodes-base.slackTool":{"count":1},"n8n-nodes-base.stickyNote":{"count":7},"n8n-nodes-base.dataTableTool":{"count":2},"@n8n/n8n-nodes-langchain.agent":{"count":1},"n8n-nodes-base.httpRequestTool":{"count":1},"n8n-nodes-base.respondToWebhook":{"count":1},"@n8n/n8n-nodes-langchain.agentTool":{"count":1},"@n8n/n8n-nodes-langchain.lmChatOpenAi":{"count":2},"@n8n/n8n-nodes-langchain.memoryBufferWindow":{"count":1},"@n8n/n8n-nodes-langchain.outputParserStructured":{"count":2}}},"status":"published","readyToDemo":null,"user":{"name":"Cheng Siong Chin","username":"cschin","bio":"Dr. Cheng Siong CHIN is an n8n workflow creator specializing in AI-powered automation, agent orchestration, and intelligent system integrations. He designs and builds end-to-end workflows that combine LLMs, APIs, and data pipelines to streamline complex processes and deliver production-ready automation solutions. Contact me to discuss custom AI workflows and agent architectures.\n","verified":true,"links":["https://gravatar.com/mysticluminary9fa255f7f5"],"avatar":"https://gravatar.com/avatar/54544f98e839bb9dd9a764ad1e6823eeddb6db5138d201e42f291a7b0a73303f?r=pg&d=retro&size=200"},"nodes":[{"id":38,"icon":"fa:pen","name":"n8n-nodes-base.set","codex":{"data":{"alias":["Set","JS","JSON","Filter","Transform","Map"],"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/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/","icon":"📡","label":"Database Monitoring and Alerting with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"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/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/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"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/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/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"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/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"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.set/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"input\"]","defaults":{"name":"Edit Fields"},"iconData":{"icon":"pen","type":"icon"},"displayName":"Edit Fields (Set)","typeVersion":3,"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":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":1163,"icon":"fa:database","name":"@n8n/n8n-nodes-langchain.memoryBufferWindow","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memorybufferwindow/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Memory"],"Memory":["For beginners"]}}},"group":"[\"transform\"]","defaults":{"name":"Simple Memory"},"iconData":{"icon":"database","type":"icon"},"displayName":"Simple Memory","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1179,"icon":"fa:code","name":"@n8n/n8n-nodes-langchain.outputParserStructured","codex":{"data":{"alias":["json","zod"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserstructured/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Output Parsers"]}}},"group":"[\"transform\"]","defaults":{"name":"Structured Output Parser"},"iconData":{"icon":"code","type":"icon"},"displayName":"Structured Output Parser","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1310,"icon":"fa:robot","name":"@n8n/n8n-nodes-langchain.agentTool","codex":{"data":{"alias":["LangChain","Chat","Conversational","Plan and Execute","ReAct","Tools"],"categories":["AI","Langchain"],"subcategories":{"AI":["Tools"],"Tools":["Recommended Tools"]}}},"group":"[\"transform\"]","defaults":{"name":"AI Agent Tool","color":"#404040"},"iconData":{"icon":"robot","type":"icon"},"displayName":"AI Agent Tool","typeVersion":3,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1315,"icon":"fa:table","name":"n8n-nodes-base.dataTable","codex":{"data":{"alias":["data","table","knowledge","data table","table","sheet","database","data base","mysql","postgres","postgresql","airtable","supabase","noco","notion"],"details":"Data table","resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.datatable/"}]},"categories":["Core Nodes","Development"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\",\"transform\"]","defaults":{"name":"Data table"},"iconData":{"icon":"table","type":"icon"},"displayName":"Data table","typeVersion":1,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]}],"categories":[{"id":29,"name":"SecOps"},{"id":47,"name":"AI Chatbot"}],"image":[]}}