{"workflow":{"id":13330,"name":"Detect procurement fraud and monitor supplier compliance with GPT-4o and Slack","views":136,"recentViews":0,"totalViews":136,"createdAt":"2026-02-12T10:34:31.701Z","description":"## How It Works\nThis workflow automates procurement fraud detection and supplier compliance monitoring for organizations managing complex purchasing operations. Designed for procurement teams, audit departments, and compliance officers, it solves the challenge of identifying fraudulent transactions, contract violations, and supplier misconduct across thousands of purchase orders and vendor relationships. The system schedules continuous monitoring, generates sample transaction data, analyzes patterns through dual AI agents (Price Reasonableness validates pricing against market rates, Delivery Agent assesses fulfillment performance), orchestrates comprehensive risk evaluation through Orchestration Agent, routes findings by severity (critical/high/medium/low), and triggers multi-channel responses: critical issues activate immediate Slack/email alerts with detailed logging; high-priority cases receive escalation workflows; medium/low findings generate routine compliance reports. By combining AI-powered anomaly detection with intelligent routing and coordinated notifications, organizations prevent fraud losses by 75%, ensure vendor compliance, maintain audit trails, and enable procurement teams to focus on strategic sourcing rather than manual transaction reviews.\n\n## Setup Steps\n1. Connect **Schedule Trigger** for monitoring frequency\n2. Configure **procurement systems** with API credentials\n3. Add **AI model API keys** to Price Reasonableness, Delivery, and Orchestration Agent nodes\n4. Define **fraud indicators** and compliance thresholds in agent prompts based on company policies\n5. Link **Slack webhooks** for critical and high-priority fraud alerts to procurement and audit teams\n6. Connect **email credentials** for stakeholder notifications and escalation workflows\n\n## Prerequisites\nProcurement system API access, AI service accounts, market pricing databases for benchmarking\n## Use Cases\nInvoice fraud detection, bid rigging identification, duplicate payment prevention\n## Customization\nModify agent prompts for industry-specific fraud patterns, adjust risk scoring algorithms\n## Benefits\nPrevents fraud losses by 75%, automates compliance monitoring across unlimited transactions","workflow":{"id":"FB7OKsmUCMgwor-6FW4xp","meta":{"instanceId":"b91e510ebae4127f953fd2f5f8d40d58ca1e71c746d4500c12ae86aad04c1502"},"name":"AI-driven procurement fraud detection & supplier compliance system","tags":[],"nodes":[{"id":"752a202d-bffb-4c07-9e38-324f9f783007","name":"Schedule Trigger","type":"n8n-nodes-base.scheduleTrigger","position":[-1936,508],"parameters":{"rule":{"interval":[{"field":"minutes","minutesInterval":15}]}},"typeVersion":1.3},{"id":"0a741961-8286-49f5-aa7d-8e7b361734ed","name":"Workflow Configuration","type":"n8n-nodes-base.set","position":[-1712,508],"parameters":{"options":{},"assignments":{"assignments":[{"id":"id-1","name":"criticalSlackChannel","type":"string","value":"<__PLACEHOLDER_VALUE__Critical Events Slack Channel ID__>"},{"id":"id-2","name":"highPrioritySlackChannel","type":"string","value":"<__PLACEHOLDER_VALUE__High Priority Slack Channel ID__>"},{"id":"id-3","name":"escalationEmail","type":"string","value":"<__PLACEHOLDER_VALUE__Escalation Team Email Address__>"},{"id":"id-4","name":"criticalEmailRecipient","type":"string","value":"<__PLACEHOLDER_VALUE__Critical Events Email Recipient__>"},{"id":"id-5","name":"priorityThresholdCritical","type":"number","value":90},{"id":"id-6","name":"priorityThresholdHigh","type":"number","value":70},{"id":"id-7","name":"priorityThresholdMedium","type":"number","value":40}]},"includeOtherFields":true},"typeVersion":3.4},{"id":"efd381fb-b497-445c-8887-3c6f4d2f8cc4","name":"Generate Sample Events","type":"n8n-nodes-base.code","position":[-1488,508],"parameters":{"jsCode":"// Generate 5 sample events with varying severity levels and types\nconst events = [\n  {\n    event_id: \"EVT-001\",\n    event_type: \"system_alert\",\n    severity: \"critical\",\n    description: \"Database server CPU usage exceeded 95% threshold\",\n    timestamp: new Date().toISOString(),\n    source_system: \"monitoring-prod-db-01\",\n    metadata: {\n      affected_users: 1500,\n      impact_score: 9.2,\n      server_name: \"prod-db-primary\",\n      cpu_usage: 97.3\n    }\n  },\n  {\n    event_id: \"EVT-002\",\n    event_type: \"security_incident\",\n    severity: \"high\",\n    description: \"Multiple failed login attempts detected from unusual IP address\",\n    timestamp: new Date(Date.now() - 300000).toISOString(),\n    source_system: \"security-auth-service\",\n    metadata: {\n      affected_users: 1,\n      impact_score: 7.8,\n      ip_address: \"192.168.45.123\",\n      failed_attempts: 15\n    }\n  },\n  {\n    event_id: \"EVT-003\",\n    event_type: \"performance_degradation\",\n    severity: \"medium\",\n    description: \"API response time increased by 40% over baseline\",\n    timestamp: new Date(Date.now() - 600000).toISOString(),\n    source_system: \"api-gateway-prod\",\n    metadata: {\n      affected_users: 350,\n      impact_score: 5.5,\n      avg_response_time: \"850ms\",\n      baseline: \"600ms\"\n    }\n  },\n  {\n    event_id: \"EVT-004\",\n    event_type: \"user_complaint\",\n    severity: \"low\",\n    description: \"User reported slow page load times on dashboard\",\n    timestamp: new Date(Date.now() - 900000).toISOString(),\n    source_system: \"support-ticket-system\",\n    metadata: {\n      affected_users: 1,\n      impact_score: 2.3,\n      ticket_id: \"SUPP-4521\",\n      user_tier: \"free\"\n    }\n  },\n  {\n    event_id: \"EVT-005\",\n    event_type: \"data_anomaly\",\n    severity: \"high\",\n    description: \"Unusual spike in transaction failures detected\",\n    timestamp: new Date(Date.now() - 1200000).toISOString(),\n    source_system: \"payment-processing\",\n    metadata: {\n      affected_users: 450,\n      impact_score: 8.1,\n      failure_rate: \"12.5%\",\n      normal_rate: \"0.8%\"\n    }\n  }\n];\n\n// Return the events as separate items\nreturn events.map(event => ({ json: event }));"},"typeVersion":2},{"id":"3de724c0-a62f-4f8c-9da4-309f5081b870","name":"OpenAI Model - Prioritization Agent","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[-1360,752],"parameters":{"model":{"__rl":true,"mode":"id","value":"gpt-4o"},"options":{"temperature":0.2},"builtInTools":{}},"credentials":{"openAiApi":{"id":"mv2ECvRtbAK63G2g","name":"OpenAi account"}},"typeVersion":1.3},{"id":"f52b8d9f-324f-4aa3-b27c-aad714fc50f3","name":"Structured Output - Prioritization","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[-1136,732],"parameters":{"schemaType":"manual","inputSchema":"{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"priorityScore\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"minimum\": 0,\n\t\t\t\"maximum\": 100,\n\t\t\t\"description\": \"Numerical priority score from 0 to 100\"\n\t\t},\n\t\t\"priorityLevel\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"enum\": [\"critical\", \"high\", \"medium\", \"low\"],\n\t\t\t\"description\": \"Priority level classification\"\n\t\t},\n\t\t\"riskAssessment\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"description\": \"Assessment of risks associated with the signal\"\n\t\t},\n\t\t\"impactAnalysis\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"description\": \"Analysis of potential impact\"\n\t\t},\n\t\t\"recommendedActions\": {\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\t\"description\": \"List of recommended actions to take\"\n\t\t},\n\t\t\"requiresEscalation\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"description\": \"Whether this signal requires escalation\"\n\t\t},\n\t\t\"reasoning\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"description\": \"Reasoning behind the prioritization decision\"\n\t\t}\n\t},\n\t\"required\": [\"priorityScore\", \"priorityLevel\", \"riskAssessment\", \"impactAnalysis\", \"recommendedActions\", \"requiresEscalation\", \"reasoning\"]\n}"},"typeVersion":1.3},{"id":"95480795-d8f5-4b97-ab65-dd508e70db07","name":"Signal Prioritization Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[-1208,508],"parameters":{"text":"=Event Data: {{ JSON.stringify($json) }}","options":{"systemMessage":"You are a Signal Prioritization Agent specialized in evaluating structured events and assigning priority scores.\n\nYour task is to:\n1. Analyze incoming event data including type, severity, description, affected systems, and impact metrics\n2. Calculate a priority score (0-100) based on:\n   - Severity level and urgency\n   - Number of affected users/systems\n   - Business impact and financial implications\n   - Security and compliance risks\n   - Historical patterns and trends\n3. Assign priority level: critical (90-100), high (70-89), medium (40-69), low (0-39)\n4. Perform risk assessment identifying potential cascading failures\n5. Conduct impact analysis on business operations, user experience, and system stability\n6. Recommend specific actions with priority order\n7. Determine if escalation to senior management is required (critical events or high-risk situations)\n8. Use the Enrichment Agent Tool to gather additional context about affected systems, users, or historical incidents\n9. Provide detailed reasoning for all assessments\n\nConsider:\n- Time sensitivity and SLA requirements\n- Regulatory and compliance implications\n- Customer-facing vs internal impact\n- Resource availability for remediation\n- Potential for automation vs manual intervention"},"promptType":"define","hasOutputParser":true},"typeVersion":3.1},{"id":"47348986-8c0c-4727-99a5-744743ce4c7c","name":"OpenAI Model - Enrichment Agent","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[-1104,960],"parameters":{"model":{"__rl":true,"mode":"id","value":"gpt-4o"},"options":{"temperature":0.3},"builtInTools":{}},"credentials":{"openAiApi":{"id":"mv2ECvRtbAK63G2g","name":"OpenAi account"}},"typeVersion":1.3},{"id":"4e965551-3bb1-4492-a733-8838d792c197","name":"Structured Output - Enrichment","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[-840,940],"parameters":{"schemaType":"manual","inputSchema":"{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"enrichedData\": {\n\t\t\t\"type\": \"object\"\n\t\t},\n\t\t\"historicalContext\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"relatedIncidents\": {\n\t\t\t\"type\": \"array\"\n\t\t},\n\t\t\"systemHealth\": {\n\t\t\t\"type\": \"object\",\n\t\t\t\"properties\": {\n\t\t\t\t\"status\": {\n\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t},\n\t\t\t\t\"metrics\": {\n\t\t\t\t\t\"type\": \"object\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\"userImpactDetails\": {\n\t\t\t\"type\": \"object\"\n\t\t},\n\t\t\"recommendations\": {\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}\n}"},"typeVersion":1.3},{"id":"45e05022-2f58-4bf4-af5c-70726916d9e9","name":"Enrichment Agent Tool","type":"@n8n/n8n-nodes-langchain.agentTool","position":[-1008,732],"parameters":{"text":"={{ $fromAI(\"enrichmentQuery\", \"Query for enrichment including system name, user ID, or incident type\", \"string\") }}","options":{"systemMessage":"You are an Enrichment Agent Tool that provides additional context and historical data for event analysis.\n\nYour task is to:\n1. Process enrichment queries for systems, users, or incident types\n2. Retrieve historical incident data and patterns\n3. Provide system health metrics and status information\n4. Identify related incidents and correlations\n5. Calculate user impact details including affected user count and business criticality\n6. Return comprehensive enriched data with context\n\nProvide structured, actionable enrichment data to support prioritization decisions."},"hasOutputParser":true,"toolDescription":"Enriches event data with historical context, system health metrics, related incidents, and user impact analysis"},"typeVersion":3},{"id":"559108e8-680a-4227-a4fd-a22d301b0d02","name":"OpenAI Model - Delivery Agent","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[-592,732],"parameters":{"model":{"__rl":true,"mode":"id","value":"gpt-4o"},"options":{"temperature":0.2},"builtInTools":{}},"credentials":{"openAiApi":{"id":"mv2ECvRtbAK63G2g","name":"OpenAi account"}},"typeVersion":1.3},{"id":"68c681f0-4598-4011-afa1-51edeebda220","name":"Structured Output - Delivery","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[-464,732],"parameters":{"schemaType":"manual","inputSchema":"{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"deliveryChannels\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"items\": {\n\t\t\t\t\"type\": \"string\",\n\t\t\t\t\"enum\": [\"slack\", \"email\", \"both\"]\n\t\t\t}\n\t\t},\n\t\t\"notificationUrgency\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"enum\": [\"immediate\", \"scheduled\", \"batched\"]\n\t\t},\n\t\t\"messageContent\": {\n\t\t\t\"type\": \"object\",\n\t\t\t\"properties\": {\n\t\t\t\t\"subject\": {\n\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t},\n\t\t\t\t\"body\": {\n\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\"recipientGroups\": {\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\"deliveryTiming\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"escalationPath\": {\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}\n}"},"typeVersion":1.3},{"id":"1280d523-52a2-4928-b467-5006b16d2492","name":"Slack Tool","type":"n8n-nodes-base.slackTool","position":[-336,732],"webhookId":"248ee49e-56a2-4ed8-9526-727d0b5b89a8","parameters":{"text":"={{ $fromAI('slackMessage', 'Message content for Slack notification', 'string') }}","select":"channel","channelId":{"__rl":true,"mode":"id","value":"={{ $fromAI('slackChannel', 'Slack channel ID for notification', 'string') }}"},"otherOptions":{},"authentication":"oAuth2"},"credentials":{"slackOAuth2Api":{"id":"d34b1ayEBbvZm2lT","name":"Slack account"}},"typeVersion":2.4},{"id":"5d25ad79-6b61-4137-8917-b766900901a5","name":"Email Tool","type":"@n8n/n8n-nodes-langchain.toolCode","position":[-208,732],"parameters":{"jsCode":"// Simulate email sending by returning confirmation with recipient, subject, and body\nconst to = $fromAI('to', 'Email recipient address', 'string');\nconst subject = $fromAI('subject', 'Email subject line', 'string');\nconst messageBody = $fromAI('messageBody', 'Email message body content', 'string');\n\nreturn `Email sent successfully to ${to} with subject \"${subject}\". Message: ${messageBody}`;","description":"Sends email notifications with customizable recipients, subject, and body content"},"typeVersion":1.3},{"id":"bff1b9d9-1f2b-4dbd-8b73-fa559c4158cf","name":"Delivery Orchestration Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[-472,508],"parameters":{"text":"=Prioritized Event Data: {{ JSON.stringify($json) }}","options":{"systemMessage":"You are a Delivery Orchestration Agent responsible for intelligent routing and notification delivery.\n\nYour task is to:\n1. Analyze the prioritized event data including priority score, level, risk assessment, and impact analysis\n2. Determine optimal delivery channels (Slack, Email, or both) based on priority and urgency\n3. Decide notification urgency: immediate (critical/high), scheduled (medium), or batched (low)\n4. Craft appropriate message content for each channel with proper formatting\n5. Identify recipient groups based on event type and severity\n6. Determine delivery timing and escalation path\n7. Use Slack Tool for Slack notifications and Email Tool for email notifications\n8. Coordinate multi-channel delivery for critical events\n\nFor critical events (priority >= 90):\n- Use both Slack and Email\n- Immediate delivery\n- Include full risk assessment and recommended actions\n\nFor high priority events (70-89):\n- Use Slack primarily\n- Immediate delivery\n- Include impact analysis and actions\n\nFor medium/low priority:\n- Use scheduled or batched delivery\n- Consolidated notifications\n\nReturn structured delivery plan with all required fields."},"promptType":"define","hasOutputParser":true},"typeVersion":3.1},{"id":"f91ac73a-d3c7-4c83-aedb-3504a0077989","name":"Route by Priority","type":"n8n-nodes-base.switch","position":[112,656],"parameters":{"rules":{"values":[{"outputKey":"Critical","conditions":{"options":{"leftValue":"","caseSensitive":false,"typeValidation":"loose"},"combinator":"and","conditions":[{"operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.output.priorityLevel }}","rightValue":"critical"}]},"renameOutput":true},{"outputKey":"High","conditions":{"options":{"leftValue":"","caseSensitive":false,"typeValidation":"loose"},"combinator":"and","conditions":[{"operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.output.priorityLevel }}","rightValue":"high"}]},"renameOutput":true},{"outputKey":"Medium","conditions":{"options":{"leftValue":"","caseSensitive":false,"typeValidation":"loose"},"combinator":"and","conditions":[{"operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.output.priorityLevel }}","rightValue":"medium"}]},"renameOutput":true},{"outputKey":"Low","conditions":{"options":{"leftValue":"","caseSensitive":false,"typeValidation":"loose"},"combinator":"and","conditions":[{"operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.output.priorityLevel }}","rightValue":"low"}]},"renameOutput":true}]},"options":{"fallbackOutput":"extra","renameFallbackOutput":"Unclassified"}},"typeVersion":3.4},{"id":"8824f18b-d686-40de-b7b0-3098542bc1c7","name":"Store Critical Events","type":"n8n-nodes-base.dataTable","position":[352,416],"parameters":{"columns":{"value":null,"mappingMode":"autoMapInputData"},"options":{},"dataTableId":{"__rl":true,"mode":"name","value":"critical_events"}},"typeVersion":1.1},{"id":"0b8851d5-fc8f-47ef-b541-8e51ae766150","name":"Store High Priority Events","type":"n8n-nodes-base.dataTable","position":[640,608],"parameters":{"columns":{"value":null,"mappingMode":"autoMapInputData"},"options":{},"dataTableId":{"__rl":true,"mode":"name","value":"high_priority_events"}},"typeVersion":1.1},{"id":"a1ac83df-2755-4ff7-b7ce-b80f089a2e41","name":"Store Medium Priority Events","type":"n8n-nodes-base.dataTable","position":[864,800],"parameters":{"columns":{"value":null,"mappingMode":"autoMapInputData"},"options":{},"dataTableId":{"__rl":true,"mode":"name","value":"medium_priority_events"}},"typeVersion":1.1},{"id":"5f7acebd-9be2-4baa-9f5b-14ed4745c0f6","name":"Store Low Priority Events","type":"n8n-nodes-base.dataTable","position":[864,992],"parameters":{"columns":{"value":null,"mappingMode":"autoMapInputData"},"options":{},"dataTableId":{"__rl":true,"mode":"name","value":"low_priority_events"}},"typeVersion":1.1},{"id":"8bfef42b-2f34-4867-ad19-a5949fe9510f","name":"Notify Critical - Slack","type":"n8n-nodes-base.slack","position":[640,416],"webhookId":"39a006a8-89be-4e9a-8959-d633aca5166c","parameters":{"text":"=🚨 CRITICAL EVENT ALERT 🚨\n\nPriority Score: {{ $json.output.priorityScore }}/100\nEvent Type: {{ $json.eventType }}\nSource: {{ $json.sourceSystem }}\n\n📋 Description:\n{{ $json.description }}\n\n⚠️ Risk Assessment:\n{{ $json.output.riskAssessment }}\n\n📊 Impact Analysis:\n{{ $json.output.impactAnalysis }}\n\n✅ Recommended Actions:\n{{ $json.output.recommendedActions.map((action, i) => `${i + 1}. ${action}`).join(\"\\n\") }}\n\n{{ $json.output.requiresEscalation ? \"⬆️ ESCALATION REQUIRED\" : \"\" }}\n\nTimestamp: {{ $json.timestamp }}","select":"channel","channelId":{"__rl":true,"mode":"id","value":"={{ $('Workflow Configuration').first().json.criticalSlackChannel }}"},"otherOptions":{},"authentication":"oAuth2"},"credentials":{"slackOAuth2Api":{"id":"d34b1ayEBbvZm2lT","name":"Slack account"}},"typeVersion":2.4},{"id":"04f25208-cc97-4aff-bb12-ade2805d46e3","name":"Notify Critical - Email","type":"n8n-nodes-base.emailSend","position":[864,416],"webhookId":"d99d2e67-27ac-4768-89a4-315bb84d365e","parameters":{"html":"=<html><body><h2 style=\"color: #d32f2f;\">🚨 CRITICAL EVENT ALERT</h2><p><strong>Priority Score:</strong> {{ $json.output.priorityScore }}/100</p><p><strong>Event Type:</strong> {{ $json.eventType }}</p><p><strong>Source System:</strong> {{ $json.sourceSystem }}</p><h3>Description:</h3><p>{{ $json.description }}</p><h3>Risk Assessment:</h3><p>{{ $json.output.riskAssessment }}</p><h3>Impact Analysis:</h3><p>{{ $json.output.impactAnalysis }}</p><h3>Recommended Actions:</h3><ol>{{ $json.output.recommendedActions.map(action => `<li>${action}</li>`).join(\"\") }}</ol>{{ $json.output.requiresEscalation ? \"<p style=\\\"color: #d32f2f; font-weight: bold;\\\">⬆️ ESCALATION REQUIRED</p>\" : \"\" }}<p><strong>Timestamp:</strong> {{ $json.timestamp }}</p></body></html>","options":{},"subject":"=CRITICAL: {{ $json.eventType }} - Priority {{ $json.output.priorityScore }}/100","toEmail":"={{ $('Workflow Configuration').first().json.criticalEmailRecipient }}","fromEmail":"<__PLACEHOLDER_VALUE__Sender Email Address__>"},"typeVersion":2.1},{"id":"b46af0d8-29a1-49b3-ba12-53e3668616f4","name":"Notify High - Slack","type":"n8n-nodes-base.slack","position":[864,608],"webhookId":"ae4cd9af-fd0d-4f30-b0c8-75dfeaf368f3","parameters":{"text":"=⚠️ HIGH PRIORITY EVENT\n\nPriority Score: {{ $json.output.priorityScore }}/100\nEvent Type: {{ $json.eventType }}\nSource: {{ $json.sourceSystem }}\n\n📋 Description:\n{{ $json.description }}\n\n📊 Impact Analysis:\n{{ $json.output.impactAnalysis }}\n\n✅ Recommended Actions:\n{{ $json.output.recommendedActions.map((action, i) => `${i + 1}. ${action}`).join(\"\\n\") }}\n\nTimestamp: {{ $json.timestamp }}","select":"channel","channelId":{"__rl":true,"mode":"id","value":"={{ $('Workflow Configuration').first().json.highPrioritySlackChannel }}"},"otherOptions":{},"authentication":"oAuth2"},"credentials":{"slackOAuth2Api":{"id":"d34b1ayEBbvZm2lT","name":"Slack account"}},"typeVersion":2.4},{"id":"320990d1-15e7-49a4-a27b-f5ed13ea2969","name":"Merge All Notifications","type":"n8n-nodes-base.merge","position":[1088,672],"parameters":{"mode":"combine","options":{},"combineBy":"combineByPosition","numberInputs":4},"typeVersion":3.2},{"id":"214bb8f2-248c-4241-9161-6bcd6c58c797","name":"Audit Log","type":"n8n-nodes-base.dataTable","position":[1312,704],"parameters":{"columns":{"value":null,"mappingMode":"autoMapInputData"},"options":{},"dataTableId":{"__rl":true,"mode":"name","value":"audit_log"}},"typeVersion":1.1},{"id":"3413b680-356f-4f1a-ad44-34a94545b04e","name":"Check Escalation Required","type":"n8n-nodes-base.if","position":[144,1168],"parameters":{"options":{},"conditions":{"options":{"leftValue":"","caseSensitive":false,"typeValidation":"loose"},"combinator":"and","conditions":[{"id":"id-1","operator":{"type":"boolean","operation":"equals"},"leftValue":"={{ $json.output.requiresEscalation }}","rightValue":true}]}},"typeVersion":2.3},{"id":"a5e5b4a5-15f8-47b5-8db1-5ce25c88a964","name":"OpenAI Model - Escalation Agent","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[384,1392],"parameters":{"model":{"__rl":true,"mode":"id","value":"gpt-4o"},"options":{"temperature":0.2},"builtInTools":{}},"credentials":{"openAiApi":{"id":"mv2ECvRtbAK63G2g","name":"OpenAi account"}},"typeVersion":1.3},{"id":"61746131-27b2-439c-a95c-4a5ed53b61c7","name":"Structured Output - Escalation","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[512,1392],"parameters":{"schemaType":"manual","inputSchema":"{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"escalationLevel\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"enum\": [\"executive\", \"senior_management\", \"technical_lead\"]\n\t\t},\n\t\t\"escalationReason\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"executiveSummary\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"businessImpact\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"urgentActions\": {\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\"stakeholders\": {\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\"estimatedResolutionTime\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t}\n}"},"typeVersion":1.3},{"id":"5c12a734-4e95-4953-a5d7-3aff4c9edc75","name":"Escalation Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[368,1168],"parameters":{"text":"=Analyze this escalation event and provide executive-level escalation details:\n\nEvent Type: {{ $json.eventType }}\nPriority: {{ $json.priority }}\nSeverity: {{ $json.severity }}\nDescription: {{ $json.description }}\nImpact: {{ $json.impact }}\nAffected Systems: {{ $json.affectedSystems }}\nEnrichment Data: {{ $json.enrichmentData }}","options":{"systemMessage":"You are an escalation management agent responsible for preparing critical events for executive-level attention.\n\nYour task is to:\n1. Analyze the event details and determine the appropriate escalation level\n2. Craft a clear executive summary suitable for senior leadership\n3. Identify business impact and urgency\n4. Define specific urgent actions required\n5. Identify key stakeholders who need to be involved\n6. Estimate resolution timeframe\n\nProvide structured escalation information that enables rapid decision-making at the executive level."},"promptType":"define","hasOutputParser":true},"typeVersion":3.1},{"id":"904d68e6-e75e-43c2-845f-42ddb9195206","name":"Escalation Email","type":"n8n-nodes-base.emailSend","position":[720,1168],"webhookId":"a6d3dae4-f28b-4417-8e21-603583737712","parameters":{"html":"=<html><body><h2 style=\"color: #d32f2f;\">⬆️ ESCALATION REQUIRED</h2><p><strong>Escalation Level:</strong> {{ $json.output.escalationLevel }}</p><p><strong>Event Type:</strong> {{ $json.eventType }}</p><h3>Escalation Reason:</h3><p>{{ $json.output.escalationReason }}</p><h3>Executive Summary:</h3><p>{{ $json.output.executiveSummary }}</p><h3>Business Impact:</h3><p>{{ $json.output.businessImpact }}</p><h3>Urgent Actions Required:</h3><ol>{{ $json.output.urgentActions.map(action => `<li>${action}</li>`).join(\"\") }}</ol><h3>Key Stakeholders:</h3><ul>{{ $json.output.stakeholders.map(stakeholder => `<li>${stakeholder}</li>`).join(\"\") }}</ul><p><strong>Estimated Resolution Time:</strong> {{ $json.output.estimatedResolutionTime }}</p><p style=\"color: #d32f2f; font-weight: bold;\">This event requires immediate attention and coordination.</p></body></html>","options":{},"subject":"=ESCALATION REQUIRED: {{ $json.output.escalationLevel }} - {{ $json.eventType }}","toEmail":"={{ $('Workflow Configuration').first().json.escalationEmail }}","fromEmail":"<__PLACEHOLDER_VALUE__Sender Email Address__>"},"typeVersion":2.1},{"id":"751dcadc-8388-4568-b29e-7d1c598672a6","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-1888,-160],"parameters":{"width":624,"height":368,"content":"## How It Works\nThis workflow automates procurement fraud detection and supplier compliance monitoring for organizations managing complex purchasing operations. Designed for procurement teams, audit departments, and compliance officers, it solves the challenge of identifying fraudulent transactions, contract violations, and supplier misconduct across thousands of purchase orders and vendor relationships.The system schedules continuous monitoring, generates sample transaction data, analyzes patterns through dual AI agents (Price Reasonableness validates pricing against market rates, Delivery Agent assesses fulfillment performance), orchestrates comprehensive risk evaluation through Orchestration Agent, routes findings by severity (critical/high/medium/low), and triggers multi-channel responses: critical issues activate immediate Slack/email alerts with detailed logging; high-priority cases receive escalation workflows; medium/low findings generate routine compliance reports. By combining AI-powered anomaly detection with intelligent routing and coordinated notifications, organizations prevent fraud losses by 75%, ensure vendor compliance, maintain audit trails, and enable procurement teams to focus on strategic sourcing rather than manual transaction reviews.\n"},"typeVersion":1},{"id":"5d5874f9-1b46-4c3b-8672-a0193c4e0a24","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-1232,-64],"parameters":{"width":448,"height":272,"content":"## Setup Steps\n1. Connect **Schedule Trigger** for monitoring frequency\n2. Configure **procurement systems** with API credentials\n3. Add **AI model API keys** to Price Reasonableness, Delivery, and Orchestration Agent nodes\n4. Define **fraud indicators** and compliance thresholds in agent prompts based on company policies\n5. Link **Slack webhooks** for critical and high-priority fraud alerts to procurement and audit teams\n6. Connect **email credentials** for stakeholder notifications and escalation workflows"},"typeVersion":1},{"id":"d1461779-3b74-4ec9-94f8-f982a9609c30","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[-752,-176],"parameters":{"color":6,"width":384,"height":368,"content":"## Prerequisites\nProcurement system API access, AI service accounts, market pricing databases for benchmarking\n## Use Cases\nInvoice fraud detection, bid rigging identification, duplicate payment prevention\n## Customization\nModify agent prompts for industry-specific fraud patterns, adjust risk scoring algorithms\n## Benefits\nPrevents fraud losses by 75%, automates compliance monitoring across unlimited transactions"},"typeVersion":1},{"id":"a01826f3-fedd-4b8c-8313-dbb3e0311ee2","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[-640,304],"parameters":{"color":7,"width":656,"height":736,"content":"## Orchestrated Risk Evaluation\n**What**: Orchestration Agent synthesizes findings, applies risk scoring, generates prioritized recommendations  \n**Why**: Unified assessment enables clear fraud/compliance determination and appropriate escalation decisions"},"typeVersion":1},{"id":"d27285c0-54a9-455d-9eca-de7f0d35f66b","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[48,288],"parameters":{"color":7,"width":1552,"height":1376,"content":"\n## Priority-Based Response\n**What**: Routes by severity—critical triggers immediate alerts and audit logs, lower priorities enable planned reviews  \n**Why**: Risk-stratified workflows ensure urgent fraud receives instant attention while maintaining comprehensive documentation\n"},"typeVersion":1},{"id":"eb8f8dca-ebab-402d-9104-71300100d057","name":"Sticky Note6","type":"n8n-nodes-base.stickyNote","position":[-2048,320],"parameters":{"color":7,"width":1392,"height":864,"content":"## Automated Transaction Monitoring & Dual-Agent Risk Assessment\n**What**: Price Reasonableness Agent validates pricing; Delivery Agent evaluates supplier performance metrics  \n**Why**: Parallel expert analysis identifies both pricing fraud and fulfillment violations across procurement lifecycle"},"typeVersion":1}],"active":false,"pinData":{},"settings":{"availableInMCP":false,"executionOrder":"v1"},"versionId":"5eae8e52-9eed-4a63-a608-d296fdd6d039","connections":{"Email Tool":{"ai_tool":[[{"node":"Delivery Orchestration Agent","type":"ai_tool","index":0}]]},"Slack Tool":{"ai_tool":[[{"node":"Delivery Orchestration Agent","type":"ai_tool","index":0}]]},"Escalation Agent":{"main":[[{"node":"Escalation Email","type":"main","index":0}]]},"Schedule Trigger":{"main":[[{"node":"Workflow Configuration","type":"main","index":0}]]},"Route by Priority":{"main":[[{"node":"Store Critical Events","type":"main","index":0}],[{"node":"Store High Priority Events","type":"main","index":0}],[{"node":"Store Medium Priority Events","type":"main","index":0}],[{"node":"Store Low Priority Events","type":"main","index":0}]]},"Notify High - Slack":{"main":[[{"node":"Merge All Notifications","type":"main","index":1}]]},"Enrichment Agent Tool":{"ai_tool":[[{"node":"Signal Prioritization Agent","type":"ai_tool","index":0}]]},"Store Critical Events":{"main":[[{"node":"Notify Critical - Slack","type":"main","index":0}]]},"Generate Sample Events":{"main":[[{"node":"Signal Prioritization Agent","type":"main","index":0}]]},"Workflow Configuration":{"main":[[{"node":"Generate Sample Events","type":"main","index":0}]]},"Merge All Notifications":{"main":[[{"node":"Audit Log","type":"main","index":0}]]},"Notify Critical - Email":{"main":[[{"node":"Merge All Notifications","type":"main","index":0}]]},"Notify Critical - Slack":{"main":[[{"node":"Notify Critical - Email","type":"main","index":0}]]},"Check Escalation Required":{"main":[[{"node":"Escalation Agent","type":"main","index":0}]]},"Store Low Priority Events":{"main":[[{"node":"Merge All Notifications","type":"main","index":3}]]},"Store High Priority Events":{"main":[[{"node":"Notify High - Slack","type":"main","index":0}]]},"Signal Prioritization Agent":{"main":[[{"node":"Delivery Orchestration Agent","type":"main","index":0}]]},"Delivery Orchestration Agent":{"main":[[{"node":"Route by Priority","type":"main","index":0},{"node":"Check Escalation Required","type":"main","index":0}]]},"Store Medium Priority Events":{"main":[[{"node":"Merge All Notifications","type":"main","index":2}]]},"Structured Output - Delivery":{"ai_outputParser":[[{"node":"Delivery Orchestration Agent","type":"ai_outputParser","index":0}]]},"OpenAI Model - Delivery Agent":{"ai_languageModel":[[{"node":"Delivery Orchestration Agent","type":"ai_languageModel","index":0}]]},"Structured Output - Enrichment":{"ai_outputParser":[[{"node":"Enrichment Agent Tool","type":"ai_outputParser","index":0}]]},"Structured Output - Escalation":{"ai_outputParser":[[{"node":"Escalation Agent","type":"ai_outputParser","index":0}]]},"OpenAI Model - Enrichment Agent":{"ai_languageModel":[[{"node":"Enrichment Agent Tool","type":"ai_languageModel","index":0}]]},"OpenAI Model - Escalation Agent":{"ai_languageModel":[[{"node":"Escalation Agent","type":"ai_languageModel","index":0}]]},"Structured Output - Prioritization":{"ai_outputParser":[[{"node":"Signal Prioritization Agent","type":"ai_outputParser","index":0}]]},"OpenAI Model - Prioritization Agent":{"ai_languageModel":[[{"node":"Signal Prioritization Agent","type":"ai_languageModel","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":35,"nodeTypes":{"n8n-nodes-base.if":{"count":1},"n8n-nodes-base.set":{"count":1},"n8n-nodes-base.code":{"count":1},"n8n-nodes-base.merge":{"count":1},"n8n-nodes-base.slack":{"count":2},"n8n-nodes-base.switch":{"count":1},"n8n-nodes-base.dataTable":{"count":5},"n8n-nodes-base.emailSend":{"count":2},"n8n-nodes-base.slackTool":{"count":1},"n8n-nodes-base.stickyNote":{"count":6},"@n8n/n8n-nodes-langchain.agent":{"count":3},"n8n-nodes-base.scheduleTrigger":{"count":1},"@n8n/n8n-nodes-langchain.toolCode":{"count":1},"@n8n/n8n-nodes-langchain.agentTool":{"count":1},"@n8n/n8n-nodes-langchain.lmChatOpenAi":{"count":4},"@n8n/n8n-nodes-langchain.outputParserStructured":{"count":4}}},"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":11,"icon":"fa:envelope","name":"n8n-nodes-base.emailSend","codex":{"data":{"alias":["SMTP","email","human","form","wait","hitl","approval"],"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/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"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.sendemail/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/sendemail/"}]},"categories":["Communication","HITL","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"HITL":["Human in the Loop"]}}},"group":"[\"output\"]","defaults":{"name":"Send Email","color":"#00bb88"},"iconData":{"icon":"envelope","type":"icon"},"displayName":"Send Email","typeVersion":2,"nodeCategories":[{"id":6,"name":"Communication"},{"id":9,"name":"Core Nodes"},{"id":28,"name":"HITL"}]},{"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":24,"icon":"file:merge.svg","name":"n8n-nodes-base.merge","codex":{"data":{"alias":["Join","Concatenate","Wait"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-to-sync-data-between-two-systems/","icon":"🏬","label":"How to synchronize data between two systems (one-way vs. two-way sync"},{"url":"https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"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/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/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.merge/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Merge"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTc3XzUxOCkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTAgNDhDMCAyMS40OTAzIDIxLjQ5MDMgMCA0OCAwSDExMkMxMzguNTEgMCAxNjAgMjEuNDkwMyAxNjAgNDhWNTZIMTk2LjI1MkMyNDAuNDM1IDU2IDI3Ni4yNTIgOTEuODE3MiAyNzYuMjUyIDEzNlYxOTJDMjc2LjI1MiAyMTQuMDkxIDI5NC4xNjEgMjMyIDMxNi4yNTIgMjMySDM1MlYyMjRDMzUyIDE5Ny40OSAzNzMuNDkgMTc2IDQwMCAxNzZINDY0QzQ5MC41MSAxNzYgNTEyIDE5Ny40OSA1MTIgMjI0VjI4OEM1MTIgMzE0LjUxIDQ5MC41MSAzMzYgNDY0IDMzNkg0MDBDMzczLjQ5IDMzNiAzNTIgMzE0LjUxIDM1MiAyODhWMjgwSDMxNi4yNTJDMjk0LjE2MSAyODAgMjc2LjI1MiAyOTcuOTA5IDI3Ni4yNTIgMzIwVjM3NkMyNzYuMjUyIDQyMC4xODMgMjQwLjQzNSA0NTYgMTk2LjI1MiA0NTZIMTYwVjQ2NEMxNjAgNDkwLjUxIDEzOC41MSA1MTIgMTEyIDUxMkg0OEMyMS40OTAzIDUxMiAwIDQ5MC41MSAwIDQ2NFY0MDBDMCAzNzMuNDkgMjEuNDkwMyAzNTIgNDggMzUySDExMkMxMzguNTEgMzUyIDE2MCAzNzMuNDkgMTYwIDQwMFY0MDhIMTk2LjI1MkMyMTMuOTI1IDQwOCAyMjguMjUyIDM5My42NzMgMjI4LjI1MiAzNzZWMzIwQzIyOC4yNTIgMjk0Ljc4NCAyMzguODU5IDI3Mi4wNDQgMjU1Ljg1MyAyNTZDMjM4Ljg1OSAyMzkuOTU2IDIyOC4yNTIgMjE3LjIxNiAyMjguMjUyIDE5MlYxMzZDMjI4LjI1MiAxMTguMzI3IDIxMy45MjUgMTA0IDE5Ni4yNTIgMTA0SDE2MFYxMTJDMTYwIDEzOC41MSAxMzguNTEgMTYwIDExMiAxNjBINDhDMjEuNDkwMyAxNjAgMCAxMzguNTEgMCAxMTJWNDhaTTEwNCA0OEMxMDguNDE4IDQ4IDExMiA1MS41ODE3IDExMiA1NlYxMDRDMTEyIDEwOC40MTggMTA4LjQxOCAxMTIgMTA0IDExMkg1NkM1MS41ODE3IDExMiA0OCAxMDguNDE4IDQ4IDEwNFY1NkM0OCA1MS41ODE3IDUxLjU4MTcgNDggNTYgNDhIMTA0Wk00NTYgMjI0QzQ2MC40MTggMjI0IDQ2NCAyMjcuNTgyIDQ2NCAyMzJWMjgwQzQ2NCAyODQuNDE4IDQ2MC40MTggMjg4IDQ1NiAyODhINDA4QzQwMy41ODIgMjg4IDQwMCAyODQuNDE4IDQwMCAyODBWMjMyQzQwMCAyMjcuNTgyIDQwMy41ODIgMjI0IDQwOCAyMjRINDU2Wk0xMTIgNDA4QzExMiA0MDMuNTgyIDEwOC40MTggNDAwIDEwNCA0MDBINTZDNTEuNTgxNyA0MDAgNDggNDAzLjU4MiA0OCA0MDhWNDU2QzQ4IDQ2MC40MTggNTEuNTgxNyA0NjQgNTYgNDY0SDEwNEMxMDguNDE4IDQ2NCAxMTIgNDYwLjQxOCAxMTIgNDU2VjQwOFoiIGZpbGw9IiM1NEI4QzkiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTc3XzUxOCI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Merge","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core 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":40,"icon":"file:slack.svg","name":"n8n-nodes-base.slack","codex":{"data":{"alias":["human","form","wait","hitl","approval"],"resources":{"generic":[{"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/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/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/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/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.slack/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/slack/"}]},"categories":["Communication","HITL"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"HITL":["Human in the Loop"]}}},"group":"[\"output\"]","defaults":{"name":"Slack"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgMTUwLjg1MiAxNTAuODUyIj48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIuOTI2IiB5PSIuOTI2Ii8+PHN5bWJvbCBpZD0iYSIgb3ZlcmZsb3c9InZpc2libGUiPjxnIHN0cm9rZS13aWR0aD0iMS44NTIiPjxwYXRoIGZpbGw9IiNlMDFlNWEiIHN0cm9rZT0iI2UwMWU1YSIgZD0iTTQwLjc0MSA5My41NWMwLTguNzM1IDYuNjA3LTE1Ljc3MiAxNC44MTUtMTUuNzcyczE0LjgxNSA3LjAzNyAxNC44MTUgMTUuNzcydjM4LjgyNGMwIDguNzM3LTYuNjA3IDE1Ljc3NC0xNC44MTUgMTUuNzc0cy0xNC44MTUtNy4wMzctMTQuODE1LTE1Ljc3MnoiLz48cGF0aCBmaWxsPSIjZWNiMjJkIiBzdHJva2U9IiNlY2IyMmQiIGQ9Ik05My41NSAxMDcuNDA4Yy04LjczNSAwLTE1Ljc3Mi02LjYwNy0xNS43NzItMTQuODE1czcuMDM3LTE0LjgxNSAxNS43NzItMTQuODE1aDM4LjgyNmM4LjczNSAwIDE1Ljc3MiA2LjYwNyAxNS43NzIgMTQuODE1cy03LjAzNyAxNC44MTUtMTUuNzcyIDE0LjgxNXoiLz48cGF0aCBmaWxsPSIjMmZiNjdjIiBzdHJva2U9IiMyZmI2N2MiIGQ9Ik03Ny43NzggMTUuNzcyQzc3Ljc3OCA3LjAzNyA4NC4zODUgMCA5Mi41OTMgMHMxNC44MTUgNy4wMzcgMTQuODE1IDE1Ljc3MnYzOC44MjZjMCA4LjczNS02LjYwNyAxNS43NzItMTQuODE1IDE1Ljc3MnMtMTQuODE1LTcuMDM3LTE0LjgxNS0xNS43NzJ6Ii8+PHBhdGggZmlsbD0iIzM2YzVmMSIgc3Ryb2tlPSIjMzZjNWYxIiBkPSJNMTUuNzcyIDcwLjM3MUM3LjAzNyA3MC4zNzEgMCA2My43NjMgMCA1NS41NTZzNy4wMzctMTQuODE1IDE1Ljc3Mi0xNC44MTVoMzguODI2YzguNzM1IDAgMTUuNzcyIDYuNjA3IDE1Ljc3MiAxNC44MTVzLTcuMDM3IDE0LjgxNS0xNS43NzIgMTQuODE1eiIvPjxnIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiPjxwYXRoIGZpbGw9IiNlY2IyMmQiIHN0cm9rZT0iI2VjYjIyZCIgZD0iTTc3Ljc3OCAxMzMuMzMzYzAgOC4yMDggNi42MDcgMTQuODE1IDE0LjgxNSAxNC44MTVzMTQuODE1LTYuNjA3IDE0LjgxNS0xNC44MTUtNi42MDctMTQuODE1LTE0LjgxNS0xNC44MTVINzcuNzc4eiIvPjxwYXRoIGZpbGw9IiMyZmI2N2MiIHN0cm9rZT0iIzJmYjY3YyIgZD0iTTEzMy4zMzQgNzAuMzcxaC0xNC44MTVWNTUuNTU2YzAtOC4yMDcgNi42MDctMTQuODE1IDE0LjgxNS0xNC44MTVzMTQuODE1IDYuNjA3IDE0LjgxNSAxNC44MTUtNi42MDcgMTQuODE1LTE0LjgxNSAxNC44MTV6Ii8+PHBhdGggZmlsbD0iI2UwMWU1YSIgc3Ryb2tlPSIjZTAxZTVhIiBkPSJNMTQuODE1IDc3Ljc3OEgyOS42M3YxNC44MTVjMCA4LjIwNy02LjYwNyAxNC44MTUtMTQuODE1IDE0LjgxNVMwIDEwMC44IDAgOTIuNTkzczYuNjA3LTE0LjgxNSAxNC44MTUtMTQuODE1eiIvPjxwYXRoIGZpbGw9IiMzNmM1ZjEiIHN0cm9rZT0iIzM2YzVmMSIgZD0iTTcwLjM3MSAxNC44MTVWMjkuNjNINTUuNTU2Yy04LjIwNyAwLTE0LjgxNS02LjYwNy0xNC44MTUtMTQuODE1UzQ3LjM0OCAwIDU1LjU1NiAwczE0LjgxNSA2LjYwNyAxNC44MTUgMTQuODE1eiIvPjwvZz48L2c+PC9zeW1ib2w+PC9zdmc+"},"displayName":"Slack","typeVersion":2,"nodeCategories":[{"id":6,"name":"Communication"},{"id":28,"name":"HITL"}]},{"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":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":839,"icon":"fa:clock","name":"n8n-nodes-base.scheduleTrigger","codex":{"data":{"alias":["Time","Scheduler","Polling","Cron","Interval"],"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\",\"schedule\"]","defaults":{"name":"Schedule Trigger","color":"#31C49F"},"iconData":{"icon":"clock","type":"icon"},"displayName":"Schedule Trigger","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":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":1197,"icon":"fa:code","name":"@n8n/n8n-nodes-langchain.toolCode","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolcode/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Tools"],"Tools":["Recommended Tools"]}}},"group":"[\"transform\"]","defaults":{"name":"Code Tool"},"iconData":{"icon":"code","type":"icon"},"displayName":"Code Tool","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":35,"name":"Document Extraction"},{"id":49,"name":"AI Summarization"}],"image":[]}}