This workflow corresponds to n8n.io template #13684 — we link there as the canonical source.
This workflow follows the Agent → Agenttool recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "T79zu95_frDBmG-nEBeKl",
"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": {
"name": "<your credential>"
}
},
"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": {
"name": "<your credential>"
}
},
"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": {
"name": "<your credential>"
}
},
"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": {
"name": "<your credential>"
}
},
"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
],
"parameters": {
"text": "=\ud83d\udea8 *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": {
"name": "<your credential>"
}
},
"typeVersion": 2.4
},
{
"id": "5b72a122-3c66-4c11-868d-ca757230c00e",
"name": "Send Governance Report",
"type": "n8n-nodes-base.emailSend",
"position": [
640,
848
],
"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>\ud83d\udd0d 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 ? \"\u26a0\ufe0f ESCALATION REQUIRED\" : \"\u2705 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\u2014high-risk cases trigger Slack alerts and are stored separately\u2014while 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** \u2013 Separates high-risk decisions from standard outcomes.\n**Why** \u2013 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** \u2013 Orchestrates Risk Assessment and Compliance Checker sub-agents.\n**Why** \u2013 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** \u2013 Extracts decision metadata using OpenAI with structured parsing.\n**Why** \u2013 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** \u2013 Sends Slack alert and stores high-risk records separately.\n**Why** \u2013 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** \u2013 Emails governance report and stores explainability data.\n**Why** \u2013 Satisfies regulatory requirements for decision transparency."
},
"typeVersion": 1
}
],
"active": false,
"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
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
openAiApislackOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This 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…
Source: https://n8n.io/workflows/13684/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This workflow automates end-to-end sustainability lifecycle management for corporate sustainability teams, ESG governance officers, and circular economy programme leads. It addresses the challenge of
This workflow automates end-to-end carbon emissions monitoring, strategy optimisation, and ESG reporting using a multi-agent AI supervisor architecture in n8n. Designed for sustainability managers, ES
This workflow automates end-to-end ESG (Environmental, Social, and Governance) sustainability reporting for enterprise sustainability teams, compliance officers, and green governance leads. It solves
This workflow automates end-to-end carbon emissions monitoring, strategy optimisation, and ESG reporting using a multi-agent AI supervisor architecture in n8n. Designed for sustainability managers, ES
This workflow automates end-to-end carbon emissions monitoring, strategy optimisation, and ESG reporting using a multi-agent AI supervisor architecture in n8n. Designed for sustainability managers, ES