{"workflow":{"id":13684,"name":"Audit AI decisions and route risks with GPT-4.1-mini, Slack, and email reports","views":26,"recentViews":0,"totalViews":26,"createdAt":"2026-02-25T07:24:42.721Z","description":"## How It Works\nThis workflow automates AI decision governance by tracing, assessing, and auditing automated decisions for risk and compliance. Designed for AI governance officers, compliance teams, and regulated industries, it addresses the critical need for explainability and accountability in AI-driven decisions. A schedule trigger initiates a simulated decision request, which is processed by a Decision Trace Agent to extract metadata. A Governance Agent then delegates to Risk Assessment and Compliance Checker sub-agents. Decisions are routed by risk level—high-risk cases trigger Slack alerts and are stored separately—while all outcomes are merged into a governance report sent via email, with full audit trail and explainability report stored for regulatory review.\n\n## Setup Steps\n1. Set schedule trigger interval to match governance audit frequency.\n2. Add OpenAI API credentials to all OpenAI Model nodes.\n3. Configure Slack credentials and set high-risk alert channel.\n4. Add Gmail/SMTP credentials to Send Governance Report node.\n5. Replace simulated decision request with live AI system webhook.\n\n## Prerequisites\n- Slack workspace with bot token\n- Gmail or SMTP credentials\n- Google Sheets or database for audit storage\n## Use Cases\n- Regulatory compliance auditing for AI-driven loan or insurance decisions\n- Automated fairness and bias detection in HR or admissions systems\n## Customization\n- Swap simulated input with live AI system API or decision log feed\n- Add sub-agents for fairness, bias, or sector-specific compliance checks\n## Benefits\n- Automates end-to-end AI decision auditing on a schedule\n- Ensures high-risk decisions are flagged and stored instantly","workflow":{"id":"T79zu95_frDBmG-nEBeKl","meta":{"instanceId":"b91e510ebae4127f953fd2f5f8d40d58ca1e71c746d4500c12ae86aad04c1502"},"name":"AI decision governance auditor with risk routing and explainability report","tags":[],"nodes":[{"id":"ed1f223b-490f-48d3-9c90-ad0248b28f34","name":"Schedule Trigger","type":"n8n-nodes-base.scheduleTrigger","position":[-1792,648],"parameters":{"rule":{"interval":[{"field":"hours"}]}},"typeVersion":1.3},{"id":"c765a07b-858d-4785-8a1d-f6fae9365230","name":"Workflow Configuration","type":"n8n-nodes-base.set","position":[-1568,648],"parameters":{"options":{},"assignments":{"assignments":[{"id":"id-1","name":"slackChannelId","type":"string","value":"<__PLACEHOLDER_VALUE__Slack Channel ID for alerts__>"},{"id":"id-2","name":"governanceEmail","type":"string","value":"<__PLACEHOLDER_VALUE__Email address for governance reports__>"},{"id":"id-3","name":"riskThresholdHigh","type":"number","value":75},{"id":"id-4","name":"riskThresholdCritical","type":"number","value":90}]},"includeOtherFields":true},"typeVersion":3.4},{"id":"c391c6cb-856e-4ff3-af32-d0c6c870e8f1","name":"Simulate Decision Request","type":"n8n-nodes-base.set","position":[-1344,648],"parameters":{"options":{},"assignments":{"assignments":[{"id":"id-1","name":"decisionId","type":"string","value":"={{ \"DEC-\" + $now.toFormat(\"yyyyMMdd-HHmmss\") }}"},{"id":"id-2","name":"decisionType","type":"string","value":"Financial Approval"},{"id":"id-3","name":"requestedAmount","type":"number","value":150000},{"id":"id-4","name":"department","type":"string","value":"Engineering"},{"id":"id-5","name":"requestor","type":"string","value":"John Smith"},{"id":"id-6","name":"justification","type":"string","value":"New AI infrastructure investment for Q2 2024 product roadmap"},{"id":"id-7","name":"timestamp","type":"string","value":"={{ $now.toISO() }}"}]},"includeOtherFields":true},"typeVersion":3.4},{"id":"b843f45d-1a54-4a29-a9fe-7019580ff96e","name":"Decision Trace Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[-1120,648],"parameters":{"text":"=Decision Request Data:\n- Decision ID: {{ $json.decisionId }}\n- Type: {{ $json.decisionType }}\n- Amount: ${{ $json.requestedAmount }}\n- Department: {{ $json.department }}\n- Requestor: {{ $json.requestor }}\n- Justification: {{ $json.justification }}\n- Timestamp: {{ $json.timestamp }}","options":{"systemMessage":"You are a Decision Trace Agent responsible for capturing structured decision metadata.\n\nYour task is to:\n1. Extract and structure all decision parameters from the input\n2. Identify decision stakeholders and affected parties\n3. Capture decision context and environmental factors\n4. Document decision rationale and supporting evidence\n5. Assign unique decision identifiers and timestamps\n6. Create a comprehensive decision trace record\n\nReturn structured decision metadata that will be used for governance auditing and explainability reporting."},"promptType":"define","hasOutputParser":true},"typeVersion":3.1},{"id":"cf3611be-0dd8-4049-93dc-e5689f2da368","name":"OpenAI Model - Decision Trace","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[-1112,872],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-4.1-mini"},"options":{},"builtInTools":{}},"credentials":{"openAiApi":{"id":"mv2ECvRtbAK63G2g","name":"OpenAi account"}},"typeVersion":1.3},{"id":"d1075189-2e11-494c-a8b7-38ddc62cbfac","name":"Decision Metadata Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[-984,872],"parameters":{"jsonSchemaExample":"{\n  \"decisionId\": \"string\",\n  \"decisionType\": \"string\",\n  \"amount\": \"number\",\n  \"department\": \"string\",\n  \"requestor\": \"string\",\n  \"stakeholders\": [\"string\"],\n  \"contextFactors\": [\"string\"],\n  \"rationale\": \"string\",\n  \"supportingEvidence\": [\"string\"],\n  \"capturedAt\": \"string\",\n  \"traceMetadata\": {\n    \"dataQuality\": \"string\",\n    \"completeness\": \"number\"\n  }\n}"},"typeVersion":1.3},{"id":"6aed8900-97e8-41c1-acc3-8c10545f7865","name":"Risk Assessment Agent Tool","type":"@n8n/n8n-nodes-langchain.agentTool","position":[-640,872],"parameters":{"text":"={{ $fromAI(\"decisionData\", \"Decision trace metadata from Decision Trace Agent\", \"json\") }}","options":{"systemMessage":"You are a Risk Assessment Agent specialized in evaluating decision risks.\n\nYour task is to:\n1. Analyze financial, operational, and compliance risks\n2. Evaluate probability and impact of potential negative outcomes\n3. Assess risk mitigation measures and controls\n4. Calculate overall risk score (0-100 scale)\n5. Identify risk categories (financial, operational, reputational, compliance)\n6. Provide risk level classification (LOW, MEDIUM, HIGH, CRITICAL)\n7. Document risk reasoning and key risk indicators\n\nConsider: historical patterns, industry benchmarks, regulatory requirements, and organizational risk appetite."},"hasOutputParser":true,"toolDescription":"Analyzes decision risks and provides comprehensive risk assessment including score, level, and mitigation recommendations"},"typeVersion":3},{"id":"5f250c67-5056-4d72-a0e9-4911eb627e72","name":"OpenAI Model - Risk Assessment","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[-720,1088],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-4.1-mini"},"options":{},"builtInTools":{}},"credentials":{"openAiApi":{"id":"mv2ECvRtbAK63G2g","name":"OpenAi account"}},"typeVersion":1.3},{"id":"af72b66e-6e58-4e0f-9052-006d02c9de3f","name":"Risk Assessment Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[-512,1072],"parameters":{"jsonSchemaExample":"{\n  \"riskScore\": 0,\n  \"riskLevel\": \"\",\n  \"riskCategories\": [\"\"],\n  \"financialRisk\": {\n    \"probability\": 0,\n    \"impact\": 0,\n    \"description\": \"\"\n  },\n  \"operationalRisk\": {\n    \"probability\": 0,\n    \"impact\": 0,\n    \"description\": \"\"\n  },\n  \"complianceRisk\": {\n    \"probability\": 0,\n    \"impact\": 0,\n    \"description\": \"\"\n  },\n  \"mitigationMeasures\": [\"\"],\n  \"keyRiskIndicators\": [\"\"],\n  \"reasoning\": \"\"\n}"},"typeVersion":1.3},{"id":"dd5bc1b9-d68b-4d3f-8c3a-7394ca37ccea","name":"Compliance Checker Agent Tool","type":"@n8n/n8n-nodes-langchain.agentTool","position":[-352,872],"parameters":{"text":"={{ $fromAI(\"decisionData\", \"Decision trace metadata from Decision Trace Agent\", \"json\") }}","options":{"systemMessage":"You are a Compliance Checker Agent ensuring regulatory and policy adherence.\n\nYour task is to:\n1. Verify compliance with organizational policies and procedures\n2. Check regulatory requirements (SOX, GDPR, industry-specific regulations)\n3. Validate approval authority and delegation limits\n4. Assess documentation completeness and audit trail\n5. Identify compliance gaps and violations\n6. Determine compliance status (COMPLIANT, NON_COMPLIANT, REQUIRES_REVIEW)\n7. Provide compliance recommendations and remediation steps\n8. Document compliance reasoning and applicable regulations\n\nConsider: approval thresholds, segregation of duties, documentation requirements, and regulatory deadlines."},"hasOutputParser":true,"toolDescription":"Validates decision compliance with policies and regulations, identifies gaps, and provides compliance status"},"typeVersion":3},{"id":"717c444d-254e-4837-bbe7-d3dd1d07b7f6","name":"OpenAI Model - Compliance","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[-352,1080],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-4.1-mini"},"options":{},"builtInTools":{}},"credentials":{"openAiApi":{"id":"mv2ECvRtbAK63G2g","name":"OpenAi account"}},"typeVersion":1.3},{"id":"e368a818-c071-4e01-8022-bb425e5ff104","name":"Compliance Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[-208,1080],"parameters":{"jsonSchemaExample":"{\n  \"complianceStatus\": \"string\",\n  \"policyViolations\": [\"string\"],\n  \"regulatoryRequirements\": [\"string\"],\n  \"approvalAuthority\": {\n    \"required\": \"string\",\n    \"current\": \"string\",\n    \"isAuthorized\": \"boolean\"\n  },\n  \"documentationGaps\": [\"string\"],\n  \"complianceScore\": \"number\",\n  \"recommendations\": [\"string\"],\n  \"applicableRegulations\": [\"string\"],\n  \"reasoning\": \"string\"\n}"},"typeVersion":1.3},{"id":"03278f60-0988-4d24-98b0-5bae053c5601","name":"Governance Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[-488,648],"parameters":{"text":"=Decision Trace Data:\n{{ JSON.stringify($json.output, null, 2) }}","options":{"systemMessage":"You are a Governance Agent orchestrating decision audits and explainability reporting.\n\nYour task is to:\n1. Call the Risk Assessment Agent Tool to evaluate decision risks\n2. Call the Compliance Checker Agent Tool to verify regulatory adherence\n3. Synthesize findings from both agents into a comprehensive governance decision\n4. Determine final approval status (APPROVED, REJECTED, ESCALATED)\n5. Generate explainability report documenting decision rationale\n6. Create audit trail with timestamps and agent interactions\n7. Identify required actions and next steps\n8. Provide governance recommendations\n\nYou MUST call both tools before making a final governance decision. Synthesize their outputs to provide a holistic assessment."},"promptType":"define","hasOutputParser":true},"typeVersion":3.1},{"id":"045f3e99-74c1-4adf-b264-6dcd4180aea9","name":"OpenAI Model - Governance","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[-768,872],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-4.1-mini"},"options":{},"builtInTools":{}},"credentials":{"openAiApi":{"id":"mv2ECvRtbAK63G2g","name":"OpenAi account"}},"typeVersion":1.3},{"id":"62d72ab4-6dfa-4d2a-8993-db22f66b03e4","name":"Governance Decision Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[-96,928],"parameters":{"schemaType":"manual","inputSchema":"{\n  \"type\": \"object\",\n  \"properties\": {\n    \"governanceDecision\": {\n      \"type\": \"string\"\n    },\n    \"approvalStatus\": {\n      \"type\": \"string\"\n    },\n    \"overallRiskLevel\": {\n      \"type\": \"string\"\n    },\n    \"riskScore\": {\n      \"type\": \"number\"\n    },\n    \"complianceStatus\": {\n      \"type\": \"string\"\n    },\n    \"complianceScore\": {\n      \"type\": \"number\"\n    },\n    \"explainabilityReport\": {\n      \"type\": \"string\"\n    },\n    \"auditTrail\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"agent\": {\n            \"type\": \"string\"\n          },\n          \"action\": {\n            \"type\": \"string\"\n          },\n          \"timestamp\": {\n            \"type\": \"string\"\n          },\n          \"findings\": {\n            \"type\": \"string\"\n          }\n        }\n      }\n    },\n    \"requiredActions\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"string\"\n      }\n    },\n    \"recommendations\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"string\"\n      }\n    },\n    \"escalationRequired\": {\n      \"type\": \"boolean\"\n    },\n    \"reasoning\": {\n      \"type\": \"string\"\n    }\n  }\n}"},"typeVersion":1.3},{"id":"baca2d5e-6ee7-46d0-bd11-4e1f4d84e8de","name":"Route by Risk Level","type":"n8n-nodes-base.switch","position":[192,736],"parameters":{"rules":{"values":[{"outputKey":"HIGH_RISK","conditions":{"options":{"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"operator":{"type":"number","operation":"gte"},"leftValue":"={{ $json.riskScore }}","rightValue":"={{ $('Workflow Configuration').first().json.riskThresholdHigh }}"}]},"renameOutput":true},{"outputKey":"CRITICAL_RISK","conditions":{"options":{"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"operator":{"type":"number","operation":"gte"},"leftValue":"={{ $json.riskScore }}","rightValue":"={{ $('Workflow Configuration').first().json.riskThresholdCritical }}"}]},"renameOutput":true}]},"options":{"fallbackOutput":"extra","renameFallbackOutput":"LOW_MEDIUM_RISK"}},"typeVersion":3.4},{"id":"9136f1ba-0a65-4a3e-95ae-d11adaa526e4","name":"Store Decision Audit Trail","type":"n8n-nodes-base.dataTable","position":[512,1088],"parameters":{"options":{},"dataTableId":{"__rl":true,"mode":"name","value":"DecisionAuditTrail"}},"typeVersion":1.1},{"id":"8c409e89-0388-449d-93e1-22860f434e8a","name":"Store High Risk Decisions","type":"n8n-nodes-base.dataTable","position":[416,752],"parameters":{"options":{},"dataTableId":{"__rl":true,"mode":"name","value":"HighRiskDecisions"}},"typeVersion":1.1},{"id":"9f7009f6-49ce-409c-a564-c38cc831eccc","name":"Notify High Risk Alert","type":"n8n-nodes-base.slack","position":[640,656],"webhookId":"941fe22b-7ffd-4d94-8563-6ff55d606827","parameters":{"text":"=🚨 *HIGH RISK DECISION ALERT*\n\n*Decision ID:* {{ $json.output.decisionId || \"N/A\" }}\n*Risk Level:* {{ $json.output.overallRiskLevel }}\n*Risk Score:* {{ $json.output.riskScore }}/100\n*Approval Status:* {{ $json.output.approvalStatus }}\n*Compliance Status:* {{ $json.output.complianceStatus }}\n\n*Governance Decision:*\n{{ $json.output.governanceDecision }}\n\n*Required Actions:*\n{{ $json.output.requiredActions ? $json.output.requiredActions.map((a, i) => `${i+1}. ${a}`).join(\"\\n\") : \"None\" }}\n\n*Escalation Required:* {{ $json.output.escalationRequired ? \"YES\" : \"NO\" }}\n\n_Timestamp: {{ $now.toFormat(\"yyyy-MM-dd HH:mm:ss\") }}_","select":"channel","channelId":{"__rl":true,"mode":"id","value":"={{ $('Workflow Configuration').first().json.slackChannelId }}"},"otherOptions":{},"authentication":"oAuth2"},"credentials":{"slackOAuth2Api":{"id":"d34b1ayEBbvZm2lT","name":"Slack account"}},"typeVersion":2.4},{"id":"5b72a122-3c66-4c11-868d-ca757230c00e","name":"Send Governance Report","type":"n8n-nodes-base.emailSend","position":[640,848],"webhookId":"9a4d9e35-ddab-4905-9de0-3a9f6bc1a374","parameters":{"html":"=<html>\n<body style=\"font-family: Arial, sans-serif; line-height: 1.6; color: #333;\">\n<div style=\"background-color: {{ $json.output.overallRiskLevel === \"CRITICAL\" ? \"#dc3545\" : \"#ffc107\" }}; color: white; padding: 20px; border-radius: 5px;\">\n<h2>🔍 AI-Driven Governance Decision Report</h2>\n</div>\n\n<div style=\"padding: 20px;\">\n<h3>Decision Summary</h3>\n<table style=\"width: 100%; border-collapse: collapse;\">\n<tr><td style=\"padding: 8px; border: 1px solid #ddd; font-weight: bold;\">Decision ID:</td><td style=\"padding: 8px; border: 1px solid #ddd;\">{{ $json.output.decisionId || \"N/A\" }}</td></tr>\n<tr><td style=\"padding: 8px; border: 1px solid #ddd; font-weight: bold;\">Risk Level:</td><td style=\"padding: 8px; border: 1px solid #ddd;\">{{ $json.output.overallRiskLevel }}</td></tr>\n<tr><td style=\"padding: 8px; border: 1px solid #ddd; font-weight: bold;\">Risk Score:</td><td style=\"padding: 8px; border: 1px solid #ddd;\">{{ $json.output.riskScore }}/100</td></tr>\n<tr><td style=\"padding: 8px; border: 1px solid #ddd; font-weight: bold;\">Approval Status:</td><td style=\"padding: 8px; border: 1px solid #ddd;\">{{ $json.output.approvalStatus }}</td></tr>\n<tr><td style=\"padding: 8px; border: 1px solid #ddd; font-weight: bold;\">Compliance Status:</td><td style=\"padding: 8px; border: 1px solid #ddd;\">{{ $json.output.complianceStatus }}</td></tr>\n<tr><td style=\"padding: 8px; border: 1px solid #ddd; font-weight: bold;\">Compliance Score:</td><td style=\"padding: 8px; border: 1px solid #ddd;\">{{ $json.output.complianceScore }}/100</td></tr>\n</table>\n\n<h3>Governance Decision</h3>\n<p style=\"background-color: #f8f9fa; padding: 15px; border-left: 4px solid #007bff;\">{{ $json.output.governanceDecision }}</p>\n\n<h3>Explainability Report</h3>\n<p style=\"background-color: #e7f3ff; padding: 15px; border-left: 4px solid #0066cc;\">{{ $json.output.explainabilityReport }}</p>\n\n<h3>Audit Trail</h3>\n<div style=\"background-color: #f8f9fa; padding: 15px;\">\n{{ $json.output.auditTrail ? $json.output.auditTrail.map(entry => `<p><strong>${entry.agent}</strong> - ${entry.action}<br><em>${entry.timestamp}</em><br>${entry.findings}</p>`).join(\"\") : \"No audit trail available\" }}\n</div>\n\n<h3>Required Actions</h3>\n<ul>\n{{ $json.output.requiredActions ? $json.output.requiredActions.map(action => `<li>${action}</li>`).join(\"\") : \"<li>No actions required</li>\" }}\n</ul>\n\n<h3>Recommendations</h3>\n<ul>\n{{ $json.output.recommendations ? $json.output.recommendations.map(rec => `<li>${rec}</li>`).join(\"\") : \"<li>No recommendations</li>\" }}\n</ul>\n\n<p style=\"margin-top: 30px; padding: 15px; background-color: {{ $json.output.escalationRequired ? \"#fff3cd\" : \"#d4edda\" }}; border-left: 4px solid {{ $json.output.escalationRequired ? \"#ffc107\" : \"#28a745\" }};\">\n<strong>{{ $json.output.escalationRequired ? \"⚠️ ESCALATION REQUIRED\" : \"✅ No Escalation Required\" }}</strong>\n</p>\n\n<p style=\"color: #666; font-size: 12px; margin-top: 30px;\">Generated: {{ $now.toFormat(\"yyyy-MM-dd HH:mm:ss\") }}</p>\n</div>\n</body>\n</html>","options":{},"subject":"=Governance Report: {{ $json.output.overallRiskLevel }} Risk Decision - {{ $json.output.decisionId || \"N/A\" }}","toEmail":"={{ $('Workflow Configuration').first().json.governanceEmail }}","fromEmail":"<__PLACEHOLDER_VALUE__Sender email address__>"},"typeVersion":2.1},{"id":"d4577c6d-3c9e-4939-87cf-9268b076e42c","name":"Merge Notification Paths","type":"n8n-nodes-base.merge","position":[864,752],"parameters":{},"typeVersion":3.2},{"id":"63185db2-5e9c-4b56-9c92-f0548bd6b9c0","name":"Store Explainability Report","type":"n8n-nodes-base.dataTable","position":[1088,752],"parameters":{"options":{},"dataTableId":{"__rl":true,"mode":"name","value":"ExplainabilityReports"}},"typeVersion":1.1},{"id":"87435d8a-dc91-40fa-904a-a6a0b28c7ed8","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-1808,176],"parameters":{"width":528,"height":272,"content":"## How It Works\nThis workflow automates AI decision governance by tracing, assessing, and auditing automated decisions for risk and compliance. Designed for AI governance officers, compliance teams, and regulated industries, it addresses the critical need for explainability and accountability in AI-driven decisions. A schedule trigger initiates a simulated decision request, which is processed by a Decision Trace Agent to extract metadata. A Governance Agent then delegates to Risk Assessment and Compliance Checker sub-agents. Decisions are routed by risk level—high-risk cases trigger Slack alerts and are stored separately—while all outcomes are merged into a governance report sent via email, with full audit trail and explainability report stored for regulatory review."},"typeVersion":1},{"id":"76af6e59-1b27-48be-b8c7-fe3d6a106876","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-1232,208],"parameters":{"width":352,"height":256,"content":"## Setup Steps\n1. Set schedule trigger interval to match governance audit frequency.\n2. Add OpenAI API credentials to all OpenAI Model nodes.\n3. Configure Slack credentials and set high-risk alert channel.\n4. Add Gmail/SMTP credentials to Send Governance Report node.\n5. Replace simulated decision request with live AI system webhook."},"typeVersion":1},{"id":"f4d49f8b-b935-4e01-825f-f39a65617816","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[-800,64],"parameters":{"color":5,"width":592,"height":400,"content":"## Prerequisites\n- Slack workspace with bot token\n- Gmail or SMTP credentials\n- Google Sheets or database for audit storage\n## Use Cases\n- Regulatory compliance auditing for AI-driven loan or insurance decisions\n- Automated fairness and bias detection in HR or admissions systems\n## Customization\n- Swap simulated input with live AI system API or decision log feed\n- Add sub-agents for fairness, bias, or sector-specific compliance checks\n## Benefits\n- Automates end-to-end AI decision auditing on a schedule\n- Ensures high-risk decisions are flagged and stored instantly"},"typeVersion":1},{"id":"6011b7c6-e183-4ef1-a771-5a0ee46e64ac","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[128,496],"parameters":{"color":7,"height":784,"content":"## Route by Risk Level\n**What** – Separates high-risk decisions from standard outcomes.\n**Why** – Ensures critical decisions receive immediate attention and storage."},"typeVersion":1},{"id":"fee4a6ae-84fd-4778-b952-2740c7fc109e","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[-816,512],"parameters":{"color":7,"width":928,"height":768,"content":"## Governance Agent\n**What** – Orchestrates Risk Assessment and Compliance Checker sub-agents.\n**Why** – Centralises governance logic for consistent, auditable decision review."},"typeVersion":1},{"id":"96d2b5ae-bb29-41a0-abb5-8704dfbf522c","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[-1856,512],"parameters":{"color":7,"width":1024,"height":656,"content":"## Decision Trace Agent\n**What** – Extracts decision metadata using OpenAI with structured parsing.\n**Why** – Captures the full decision context needed for traceable governance."},"typeVersion":1},{"id":"558d633e-15f7-4e4d-95bb-c5d845f76dae","name":"Sticky Note6","type":"n8n-nodes-base.stickyNote","position":[400,496],"parameters":{"color":7,"width":400,"height":784,"content":"## Notify & Store High-Risk Decisions\n**What** – Sends Slack alert and stores high-risk records separately.\n**Why** – Provides real-time escalation and isolated audit evidence."},"typeVersion":1},{"id":"33d32962-72ec-42f6-bad2-6c34f3eba376","name":"Sticky Note7","type":"n8n-nodes-base.stickyNote","position":[816,496],"parameters":{"color":7,"width":464,"height":800,"content":"## Governance Report & Explainability Storage\n**What** – Emails governance report and stores explainability data.\n**Why** – Satisfies regulatory requirements for decision transparency."},"typeVersion":1}],"active":false,"pinData":{},"settings":{"availableInMCP":false,"executionOrder":"v1"},"versionId":"920f14c1-d111-4565-a69f-dbf0901a2756","connections":{"Governance Agent":{"main":[[{"node":"Route by Risk Level","type":"main","index":0},{"node":"Store Decision Audit Trail","type":"main","index":0}]]},"Schedule Trigger":{"main":[[{"node":"Workflow Configuration","type":"main","index":0}]]},"Compliance Parser":{"ai_outputParser":[[{"node":"Compliance Checker Agent Tool","type":"ai_outputParser","index":0}]]},"Route by Risk Level":{"main":[[{"node":"Store High Risk Decisions","type":"main","index":0}]]},"Decision Trace Agent":{"main":[[{"node":"Governance Agent","type":"main","index":0}]]},"Notify High Risk Alert":{"main":[[{"node":"Merge Notification Paths","type":"main","index":0}]]},"Risk Assessment Parser":{"ai_outputParser":[[{"node":"Risk Assessment Agent Tool","type":"ai_outputParser","index":0}]]},"Send Governance Report":{"main":[[{"node":"Merge Notification Paths","type":"main","index":1}]]},"Workflow Configuration":{"main":[[{"node":"Simulate Decision Request","type":"main","index":0}]]},"Decision Metadata Parser":{"ai_outputParser":[[{"node":"Decision Trace Agent","type":"ai_outputParser","index":0}]]},"Merge Notification Paths":{"main":[[{"node":"Store Explainability Report","type":"main","index":0}]]},"OpenAI Model - Compliance":{"ai_languageModel":[[{"node":"Compliance Checker Agent Tool","type":"ai_languageModel","index":0}]]},"OpenAI Model - Governance":{"ai_languageModel":[[{"node":"Governance Agent","type":"ai_languageModel","index":0}]]},"Simulate Decision Request":{"main":[[{"node":"Decision Trace Agent","type":"main","index":0}]]},"Store High Risk Decisions":{"main":[[{"node":"Notify High Risk Alert","type":"main","index":0},{"node":"Send Governance Report","type":"main","index":0}]]},"Governance Decision Parser":{"ai_outputParser":[[{"node":"Governance Agent","type":"ai_outputParser","index":0}]]},"Risk Assessment Agent Tool":{"ai_tool":[[{"node":"Governance Agent","type":"ai_tool","index":0}]]},"Compliance Checker Agent Tool":{"ai_tool":[[{"node":"Governance Agent","type":"ai_tool","index":0}]]},"OpenAI Model - Decision Trace":{"ai_languageModel":[[{"node":"Decision Trace Agent","type":"ai_languageModel","index":0}]]},"OpenAI Model - Risk Assessment":{"ai_languageModel":[[{"node":"Risk Assessment Agent Tool","type":"ai_languageModel","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":30,"nodeTypes":{"n8n-nodes-base.set":{"count":2},"n8n-nodes-base.merge":{"count":1},"n8n-nodes-base.slack":{"count":1},"n8n-nodes-base.switch":{"count":1},"n8n-nodes-base.dataTable":{"count":3},"n8n-nodes-base.emailSend":{"count":1},"n8n-nodes-base.stickyNote":{"count":8},"@n8n/n8n-nodes-langchain.agent":{"count":2},"n8n-nodes-base.scheduleTrigger":{"count":1},"@n8n/n8n-nodes-langchain.agentTool":{"count":2},"@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":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":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":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":[]}}