This workflow corresponds to n8n.io template #13138 — 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": "doy-oPQMfRyyA7ArayexO",
"name": "AI-Powered Data Rights and Governance Compliance Orchestration System",
"tags": [],
"nodes": [
{
"id": "d91e6b10-3660-4cb6-bdd1-fdb720bad3b2",
"name": "Data Rights Request Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
0,
200
],
"parameters": {
"path": "data-rights-request",
"options": {},
"httpMethod": "POST",
"responseMode": "responseNode"
},
"typeVersion": 2.1
},
{
"id": "3504a030-6859-4f08-8b0d-f31dc384c077",
"name": "Workflow Configuration",
"type": "n8n-nodes-base.set",
"position": [
224,
200
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "id-1",
"name": "fulfillmentApiUrl",
"type": "string",
"value": "<__PLACEHOLDER_VALUE__Fulfillment API endpoint URL__>"
},
{
"id": "id-2",
"name": "complianceSlackChannel",
"type": "string",
"value": "<__PLACEHOLDER_VALUE__Compliance team Slack channel ID__>"
},
{
"id": "id-3",
"name": "regulatoryEmail",
"type": "string",
"value": "<__PLACEHOLDER_VALUE__Regulatory reporting email address__>"
},
{
"id": "id-4",
"name": "consentDatabaseUrl",
"type": "string",
"value": "<__PLACEHOLDER_VALUE__Consent database API URL__>"
},
{
"id": "id-5",
"name": "retentionPolicyUrl",
"type": "string",
"value": "<__PLACEHOLDER_VALUE__Retention policy API URL__>"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "c6890f55-17f2-4d7c-94d4-b2fa00fec20b",
"name": "Rights Validation Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
728,
200
],
"parameters": {
"text": "={{ JSON.stringify($json) }}",
"options": {
"systemMessage": "You are a Rights Validation Agent specialized in data privacy compliance and data subject rights management.\n\nYour role is to:\n1. Validate incoming data subject requests (access, deletion, rectification, portability, restriction)\n2. Verify consent status and legal basis for data processing\n3. Check retention policy compliance and data expiration dates\n4. Assess data minimization requirements\n5. Identify any compliance violations or risks\n6. Determine if the request is valid and actionable\n\nYou have access to tools:\n- Consent Lookup Tool: Query consent records and legal basis\n- Retention Policy Tool: Check retention schedules and expiration dates\n\nFor each request:\n1. Use the Consent Lookup Tool to verify current consent status\n2. Use the Retention Policy Tool to check if data should still be retained\n3. Validate the request against GDPR/CCPA requirements\n4. Assess data minimization compliance\n5. Return structured validation results\n\nReturn your analysis in the structured format defined by the output parser."
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 3.1
},
{
"id": "eb019c5c-1790-49de-b74f-d7900eeed131",
"name": "Governance Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1720,
400
],
"parameters": {
"text": "={{ JSON.stringify($json) }}",
"options": {
"systemMessage": "You are a Governance Agent responsible for orchestrating data rights fulfillment, regulatory reporting, and compliance escalation.\n\nYour role is to:\n1. Analyze validated data rights requests\n2. Determine appropriate fulfillment actions (data export, deletion, rectification)\n3. Generate regulatory reports when required\n4. Escalate compliance violations to the compliance team\n5. Enforce strict data minimization and audit controls\n6. Coordinate multi-step fulfillment workflows\n\nYou have access to:\n- Regulatory Reporting Tool: Generate compliance reports for regulators\n\nFor each validated request:\n1. Determine the action type: FULFILLMENT, REGULATORY_REPORT, or ESCALATION\n2. If FULFILLMENT: prepare data for API execution\n3. If REGULATORY_REPORT: use the Regulatory Reporting Tool to generate report\n4. If ESCALATION: prepare alert for compliance team\n5. Apply data minimization principles (only include necessary data)\n6. Return structured governance decision\n\nReturn your decision in the structured format defined by the output parser."
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 3.1
},
{
"id": "bb7de5e9-5781-424e-9ca0-3e3868fe59f3",
"name": "Consent Lookup Tool",
"type": "@n8n/n8n-nodes-langchain.agentTool",
"position": [
576,
424
],
"parameters": {
"text": "={{ $fromAI(\"dataSubjectId\", \"The data subject ID to look up consent records for\", \"string\") }}",
"options": {
"systemMessage": "You are a Consent Lookup Tool that retrieves consent and legal basis information for data subjects.\n\nYour task is to:\n1. Query the consent database for the provided data subject ID\n2. Return current consent status (granted, withdrawn, expired)\n3. Identify the legal basis for processing (consent, contract, legitimate interest, legal obligation)\n4. Include consent timestamps and expiration dates\n5. Flag any consent violations or missing consent\n\nReturn structured consent information including:\n- consentStatus: granted | withdrawn | expired | missing\n- legalBasis: consent | contract | legitimate_interest | legal_obligation\n- consentDate: ISO timestamp\n- expirationDate: ISO timestamp or null\n- purposes: array of processing purposes\n- violations: array of any consent issues found"
},
"hasOutputParser": true,
"toolDescription": "Retrieves consent records and legal basis information for a data subject"
},
"typeVersion": 3
},
{
"id": "cd2803c7-4b95-4fd2-b83f-f00918a0036f",
"name": "Retention Policy Tool",
"type": "@n8n/n8n-nodes-langchain.agentTool",
"position": [
864,
424
],
"parameters": {
"text": "={{ $fromAI(\"dataSubjectId\", \"The data subject ID to check retention policy for\", \"string\") }}",
"options": {
"systemMessage": "You are a Retention Policy Tool that checks data retention schedules and expiration dates.\n\nYour task is to:\n1. Query retention policies for the provided data subject ID\n2. Check if data has exceeded retention period\n3. Identify data categories and their retention schedules\n4. Flag data that should be deleted per retention policy\n5. Return structured retention information\n\nReturn structured retention data including:\n- retentionStatus: active | expired | expiring_soon\n- dataCategories: array of data types and their retention periods\n- expirationDate: ISO timestamp when data should be deleted\n- daysUntilExpiration: number of days remaining\n- shouldDelete: boolean indicating if data should be deleted now\n- retentionViolations: array of any retention policy violations"
},
"hasOutputParser": true,
"toolDescription": "Checks retention policies and identifies data that should be deleted"
},
"typeVersion": 3
},
{
"id": "71a883cb-af1b-4b8a-a38b-4c8015110477",
"name": "Regulatory Reporting Tool",
"type": "@n8n/n8n-nodes-langchain.agentTool",
"position": [
1712,
624
],
"parameters": {
"text": "={{ $fromAI(\"reportData\", \"The compliance data to include in the regulatory report\", \"json\") }}",
"options": {
"systemMessage": "You are a Regulatory Reporting Tool that generates compliance reports for regulatory authorities.\n\nYour task is to:\n1. Generate structured regulatory reports based on provided data\n2. Include all required compliance information (request type, actions taken, timestamps)\n3. Format reports according to GDPR/CCPA requirements\n4. Include audit trail and data minimization evidence\n5. Return structured report data\n\nReturn structured report including:\n- reportId: unique identifier\n- reportType: GDPR_Article_15 | CCPA_Access | Data_Deletion | etc.\n- dataSubjectId: subject of the report\n- requestDate: ISO timestamp\n- actionsTaken: array of fulfillment actions\n- dataMinimizationApplied: boolean\n- auditTrail: array of audit events\n- complianceStatus: compliant | non_compliant | pending"
},
"hasOutputParser": true,
"toolDescription": "Generates regulatory compliance reports for GDPR/CCPA authorities"
},
"typeVersion": 3
},
{
"id": "e27fbe83-7d50-4768-9695-288ad2aa948b",
"name": "Anthropic Model - Rights Agent",
"type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
"position": [
448,
424
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "claude-sonnet-4-5-20250929",
"cachedResultName": "Claude Sonnet 4.5"
},
"options": {}
},
"credentials": {
"anthropicApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "b4d0b172-9170-4d86-b9ac-219c50a1375e",
"name": "Anthropic Model - Governance Agent",
"type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
"position": [
1584,
624
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "claude-sonnet-4-5-20250929",
"cachedResultName": "Claude Sonnet 4.5"
},
"options": {}
},
"credentials": {
"anthropicApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "ce8ec81e-7958-4b4e-905d-dfae0dd15faa",
"name": "Anthropic Model - Consent Tool",
"type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
"position": [
480,
640
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "claude-sonnet-4-5-20250929",
"cachedResultName": "Claude Sonnet 4.5"
},
"options": {}
},
"credentials": {
"anthropicApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "4a72a1a2-a33b-4440-8cfc-6973c53a8a2a",
"name": "Anthropic Model - Retention Tool",
"type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
"position": [
864,
632
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "claude-sonnet-4-5-20250929",
"cachedResultName": "Claude Sonnet 4.5"
},
"options": {}
},
"credentials": {
"anthropicApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "d868cfe8-ace9-4664-8176-c0a10cbc4b29",
"name": "Anthropic Model - Reporting Tool",
"type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
"position": [
1728,
832
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "claude-sonnet-4-5-20250929",
"cachedResultName": "Claude Sonnet 4.5"
},
"options": {}
},
"credentials": {
"anthropicApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "e04719db-ebc2-4434-a641-96ec33c30095",
"name": "Rights Validation Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1152,
424
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"validationStatus\": {\n \"type\": \"string\",\n \"description\": \"Validation result: VALID | INVALID | REQUIRES_REVIEW\"\n },\n \"dataSubjectId\": {\n \"type\": \"string\",\n \"description\": \"Unique identifier for the data subject\"\n },\n \"requestType\": {\n \"type\": \"string\",\n \"description\": \"Type of request: ACCESS | DELETION | RECTIFICATION | PORTABILITY | RESTRICTION\"\n },\n \"consentStatus\": {\n \"type\": \"string\",\n \"description\": \"Current consent status from lookup\"\n },\n \"retentionStatus\": {\n \"type\": \"string\",\n \"description\": \"Retention policy status from lookup\"\n },\n \"complianceViolations\": {\n \"type\": \"array\",\n \"description\": \"List of any compliance violations found\"\n },\n \"dataMinimizationRequired\": {\n \"type\": \"boolean\",\n \"description\": \"Whether data minimization is required\"\n },\n \"reasoning\": {\n \"type\": \"string\",\n \"description\": \"Explanation of the validation decision\"\n }\n },\n \"required\": [\"validationStatus\", \"dataSubjectId\", \"requestType\", \"reasoning\"]\n}"
},
"typeVersion": 1.3
},
{
"id": "19043fe7-22be-49cb-b038-88048f426e7e",
"name": "Governance Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
2000,
624
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"actionType\": {\n \"type\": \"string\",\n \"description\": \"Action to take: FULFILLMENT | REGULATORY_REPORT | ESCALATION\"\n },\n \"dataSubjectId\": {\n \"type\": \"string\",\n \"description\": \"Unique identifier for the data subject\"\n },\n \"fulfillmentActions\": {\n \"type\": \"array\",\n \"description\": \"List of specific fulfillment actions to execute\"\n },\n \"reportRequired\": {\n \"type\": \"boolean\",\n \"description\": \"Whether regulatory report is required\"\n },\n \"escalationReason\": {\n \"type\": \"string\",\n \"description\": \"Reason for compliance escalation if applicable\"\n },\n \"dataMinimizationApplied\": {\n \"type\": \"boolean\",\n \"description\": \"Whether data minimization was applied\"\n },\n \"auditLog\": {\n \"type\": \"array\",\n \"description\": \"Audit trail of governance decisions\"\n },\n \"reasoning\": {\n \"type\": \"string\",\n \"description\": \"Explanation of the governance decision\"\n }\n },\n \"required\": [\"actionType\", \"dataSubjectId\", \"reasoning\"]\n}"
},
"typeVersion": 1.3
},
{
"id": "cf5239e7-1b4d-4cf2-b66f-293803a55d68",
"name": "Consent Tool Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
672,
640
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"consentStatus\": {\n \"type\": \"string\",\n \"description\": \"Current consent status\"\n },\n \"legalBasis\": {\n \"type\": \"string\",\n \"description\": \"Legal basis for processing\"\n },\n \"consentDate\": {\n \"type\": \"string\",\n \"description\": \"ISO timestamp of consent\"\n },\n \"expirationDate\": {\n \"type\": \"string\",\n \"description\": \"ISO timestamp of expiration or null\"\n },\n \"purposes\": {\n \"type\": \"array\",\n \"description\": \"Processing purposes\"\n },\n \"violations\": {\n \"type\": \"array\",\n \"description\": \"Consent violations found\"\n }\n },\n \"required\": [\"consentStatus\", \"legalBasis\"]\n}"
},
"typeVersion": 1.3
},
{
"id": "09f120e6-7599-49ac-9793-1a01655f5bd8",
"name": "Retention Tool Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1008,
632
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"retentionStatus\": {\n \"type\": \"string\",\n \"description\": \"Retention status\"\n },\n \"dataCategories\": {\n \"type\": \"array\",\n \"description\": \"Data categories and retention periods\"\n },\n \"expirationDate\": {\n \"type\": \"string\",\n \"description\": \"ISO timestamp of expiration\"\n },\n \"daysUntilExpiration\": {\n \"type\": \"number\",\n \"description\": \"Days remaining\"\n },\n \"shouldDelete\": {\n \"type\": \"boolean\",\n \"description\": \"Whether data should be deleted\"\n },\n \"retentionViolations\": {\n \"type\": \"array\",\n \"description\": \"Retention violations\"\n }\n },\n \"required\": [\"retentionStatus\", \"shouldDelete\"]\n}"
},
"typeVersion": 1.3
},
{
"id": "68e537d6-defc-4b38-b2a1-399b16076e24",
"name": "Reporting Tool Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1856,
832
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"reportId\": {\n \"type\": \"string\",\n \"description\": \"Unique report identifier\"\n },\n \"reportType\": {\n \"type\": \"string\",\n \"description\": \"Type of regulatory report\"\n },\n \"dataSubjectId\": {\n \"type\": \"string\",\n \"description\": \"Subject of the report\"\n },\n \"requestDate\": {\n \"type\": \"string\",\n \"description\": \"ISO timestamp\"\n },\n \"actionsTaken\": {\n \"type\": \"array\",\n \"description\": \"Fulfillment actions\"\n },\n \"dataMinimizationApplied\": {\n \"type\": \"boolean\",\n \"description\": \"Data minimization applied\"\n },\n \"auditTrail\": {\n \"type\": \"array\",\n \"description\": \"Audit events\"\n },\n \"complianceStatus\": {\n \"type\": \"string\",\n \"description\": \"Compliance status\"\n }\n },\n \"required\": [\"reportId\", \"reportType\", \"complianceStatus\"]\n}"
},
"typeVersion": 1.3
},
{
"id": "baec1fc6-0aaf-48b8-a351-0aec70451c2e",
"name": "Route by Validation Status",
"type": "n8n-nodes-base.switch",
"position": [
1360,
184
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "Valid",
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output.validationStatus }}",
"rightValue": "VALID"
}
]
},
"renameOutput": true
},
{
"outputKey": "Invalid",
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output.validationStatus }}",
"rightValue": "INVALID"
},
{
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output.validationStatus }}",
"rightValue": "REQUIRES_REVIEW"
}
]
},
"renameOutput": true
}
]
},
"options": {
"fallbackOutput": "extra",
"renameFallbackOutput": "Unhandled"
}
},
"typeVersion": 3.4
},
{
"id": "38312ba0-546d-4bbb-97da-8feab99dc543",
"name": "Route by Action Type",
"type": "n8n-nodes-base.switch",
"position": [
2240,
352
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "Fulfillment",
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output.actionType }}",
"rightValue": "FULFILLMENT"
}
]
},
"renameOutput": true
},
{
"outputKey": "Regulatory Report",
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output.actionType }}",
"rightValue": "REGULATORY_REPORT"
}
]
},
"renameOutput": true
},
{
"outputKey": "Escalation",
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output.actionType }}",
"rightValue": "ESCALATION"
}
]
},
"renameOutput": true
}
]
},
"options": {
"fallbackOutput": "extra",
"renameFallbackOutput": "Unhandled"
}
},
"typeVersion": 3.4
},
{
"id": "cfc63ff8-dbb9-40ce-bf37-585bed9a65a5",
"name": "Execute Fulfillment API",
"type": "n8n-nodes-base.httpRequest",
"position": [
2432,
400
],
"parameters": {
"url": "={{ $('Workflow Configuration').first().json.fulfillmentApiUrl }}",
"method": "POST",
"options": {},
"jsonBody": "={{ { dataSubjectId: $json.output.dataSubjectId, actions: $json.output.fulfillmentActions, timestamp: $now.toISO(), dataMinimizationApplied: $json.output.dataMinimizationApplied } }}",
"sendBody": true,
"specifyBody": "json"
},
"typeVersion": 4.3
},
{
"id": "c93bcc45-d34d-4445-aef4-cc241d1850d3",
"name": "Log Validation Results",
"type": "n8n-nodes-base.dataTable",
"position": [
1792,
176
],
"parameters": {
"options": {},
"dataTableId": {
"__rl": true,
"mode": "name",
"value": "validation_results"
}
},
"typeVersion": 1.1
},
{
"id": "d13ee69f-1dd2-4624-84ca-2d8de67f921f",
"name": "Log Governance Actions",
"type": "n8n-nodes-base.dataTable",
"position": [
2880,
496
],
"parameters": {
"options": {},
"dataTableId": {
"__rl": true,
"mode": "name",
"value": "governance_actions"
}
},
"typeVersion": 1.1
},
{
"id": "c9f3130b-8518-4d6c-9c45-b9fee4aae73c",
"name": "Log Compliance Escalations",
"type": "n8n-nodes-base.dataTable",
"position": [
2656,
112
],
"parameters": {
"options": {},
"dataTableId": {
"__rl": true,
"mode": "name",
"value": "compliance_escalations"
}
},
"typeVersion": 1.1
},
{
"id": "3e747aac-22f5-409d-a1b4-b03a5d4bcf51",
"name": "Notify Compliance Team",
"type": "n8n-nodes-base.slack",
"position": [
2432,
208
],
"parameters": {
"text": "=\ud83d\udea8 COMPLIANCE ESCALATION ALERT\n\nData Subject ID: {{ $json.output.dataSubjectId }}\nRequest Type: {{ $json.output.requestType || \"N/A\" }}\nEscalation Reason: {{ $json.output.escalationReason }}\n\nCompliance Violations: {{ $json.output.complianceViolations ? $json.output.complianceViolations.join(\", \") : \"None\" }}\n\nAudit Log:\n{{ $json.output.auditLog ? $json.output.auditLog.map(log => `- ${log}`).join(\"\\n\") : \"No audit entries\" }}\n\nTimestamp: {{ $now.toISO() }}\n\nImmediate review required.",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Workflow Configuration').first().json.complianceSlackChannel }}"
},
"otherOptions": {},
"authentication": "oAuth2"
},
"credentials": {
"slackOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 2.4
},
{
"id": "39169f06-3bc2-453c-b170-119f73576fb7",
"name": "Send Regulatory Report",
"type": "n8n-nodes-base.emailSend",
"position": [
2432,
592
],
"parameters": {
"html": "=<html>\n<body>\n<h2>Regulatory Compliance Report</h2>\n<p><strong>Report ID:</strong> {{ $json.reportId || \"N/A\" }}</p>\n<p><strong>Report Type:</strong> {{ $json.reportType || \"N/A\" }}</p>\n<p><strong>Data Subject ID:</strong> {{ $json.output.dataSubjectId }}</p>\n<p><strong>Request Date:</strong> {{ $json.requestDate || $now.toISO() }}</p>\n<p><strong>Compliance Status:</strong> {{ $json.complianceStatus || \"Pending\" }}</p>\n\n<h3>Actions Taken</h3>\n<ul>\n{{ $json.output.fulfillmentActions ? $json.output.fulfillmentActions.map(action => `<li>${action}</li>`).join(\"\") : \"<li>No actions recorded</li>\" }}\n</ul>\n\n<h3>Data Minimization</h3>\n<p>Data minimization applied: {{ $json.output.dataMinimizationApplied ? \"Yes\" : \"No\" }}</p>\n\n<h3>Audit Trail</h3>\n<ul>\n{{ $json.output.auditLog ? $json.output.auditLog.map(log => `<li>${log}</li>`).join(\"\") : \"<li>No audit entries</li>\" }}\n</ul>\n\n<p><em>This report was generated automatically by the Data Rights and Governance Compliance system.</em></p>\n</body>\n</html>",
"options": {},
"subject": "=Regulatory Compliance Report - {{ $json.output.dataSubjectId }}",
"toEmail": "={{ $('Workflow Configuration').first().json.regulatoryEmail }}",
"fromEmail": "<__PLACEHOLDER_VALUE__Sender email address for regulatory reports__>"
},
"typeVersion": 2.1
},
{
"id": "e23a4148-b9cb-4e70-95fa-e35a35170f8f",
"name": "Merge Action Branches",
"type": "n8n-nodes-base.merge",
"position": [
2656,
480
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition",
"numberInputs": 3
},
"typeVersion": 3.2
},
{
"id": "60be8ef7-3c14-4fb4-9cc6-ad7c5a71e165",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
1104,
-432
],
"parameters": {
"color": 4,
"width": 416,
"height": 368,
"content": "## Prerequisites\nOpenAI/Nvidia/Anthropic API credentials for AI validation models\n## Use Cases\nFinancial institutions ensuring transaction compliance monitoring, \n## Customization\nAdjust AI model parameters for industry-specific compliance rules\n## Benefits\nReduces compliance review time by 80%, eliminates manual validation errors"
},
"typeVersion": 1
},
{
"id": "6ac89aad-4d9c-46ef-aade-1b7e392adba8",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
608,
-352
],
"parameters": {
"width": 464,
"height": 288,
"content": "## Setup Steps\n1. Configure Data Ingestion Webhook trigger endpoint\n2. Connect Workflow Execution Configuration node with validation parameters\n3. Set up Fetch Validation Rules node with OpenAI/Nvidia API credentials for AI model access\n4. Configure parallel AI model nodes with respective API credentials\n5. Connect Route by Validation Status node with branching logic\n6. Set up Governance Documentation node with document template configurations\n7. Configure parallel action nodes\n"
},
"typeVersion": 1
},
{
"id": "20c0661e-b81a-48e9-8afb-c96a82fdef55",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-128,
-352
],
"parameters": {
"width": 704,
"height": 288,
"content": "## How It Works\nThis workflow automates comprehensive data validation and regulatory compliance reporting through intelligent AI-driven analysis. Designed for compliance officers, data governance teams, and regulatory affairs departments, it solves the critical challenge of ensuring data quality while generating audit-ready compliance documentation across multiple regulatory frameworks.The system receives data through webhook triggers, performs multi-layered validation using AI models to detect anomalies and policy violations, and intelligently routes findings based on validation outcomes. It orchestrates parallel processing streams for content lookup, retention policy enforcement, and rejection handling. The workflow merges validation results, generates governance documentation, and manages compliance notifications through multiple channels. By automating action routing based on compliance status and maintaining detailed audit logs across validation, governance, and action streams, it ensures regulatory adherence while eliminating manual review bottlenecks."
},
"typeVersion": 1
},
{
"id": "26646735-d229-4578-851d-e28a938e87f7",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
2208,
0
],
"parameters": {
"color": 7,
"width": 864,
"height": 960,
"content": "## Multi-Stream Logging\n**What:** Maintains synchronized audit trails across validation results, governance documentation, and compliance actions\n**Why:** Creates complete regulatory audit trail required for compliance verification and regulatory inquiries"
},
"typeVersion": 1
},
{
"id": "e1012c47-3eac-4317-a715-b2d39291f209",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1328,
16
],
"parameters": {
"color": 7,
"width": 848,
"height": 976,
"content": "## Governance Routing\n**What:** Routes validated data based on compliance status to appropriate documentation and reporting streams\n**Why:** Ensures compliant data receives proper governance documentation while violations trigger regulatory reporting workflows"
},
"typeVersion": 1
},
{
"id": "a710f6c7-4d94-46bb-865b-31783c90c9af",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-112,
16
],
"parameters": {
"color": 7,
"width": 1408,
"height": 816,
"content": "## AI Validation\n**What:** Processes incoming data through parallel AI models for content analysis, retention compliance, and rejection detection\n**Why:** Ensures comprehensive validation coverage by leveraging specialized AI models for different compliance dimensions\n"
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"availableInMCP": false,
"executionOrder": "v1"
},
"versionId": "223eecae-b708-4f9d-82ad-f125d9bb6c5b",
"connections": {
"Governance Agent": {
"main": [
[
{
"node": "Route by Action Type",
"type": "main",
"index": 0
}
]
]
},
"Consent Lookup Tool": {
"ai_tool": [
[
{
"node": "Rights Validation Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Route by Action Type": {
"main": [
[
{
"node": "Execute Fulfillment API",
"type": "main",
"index": 0
}
],
[
{
"node": "Send Regulatory Report",
"type": "main",
"index": 0
}
],
[
{
"node": "Notify Compliance Team",
"type": "main",
"index": 0
}
]
]
},
"Merge Action Branches": {
"main": [
[
{
"node": "Log Governance Actions",
"type": "main",
"index": 0
}
]
]
},
"Retention Policy Tool": {
"ai_tool": [
[
{
"node": "Rights Validation Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Notify Compliance Team": {
"main": [
[
{
"node": "Merge Action Branches",
"type": "main",
"index": 2
},
{
"node": "Log Compliance Escalations",
"type": "main",
"index": 0
}
]
]
},
"Send Regulatory Report": {
"main": [
[
{
"node": "Merge Action Branches",
"type": "main",
"index": 1
}
]
]
},
"Workflow Configuration": {
"main": [
[
{
"node": "Rights Validation Agent",
"type": "main",
"index": 0
}
]
]
},
"Execute Fulfillment API": {
"main": [
[
{
"node": "Merge Action Branches",
"type": "main",
"index": 0
}
]
]
},
"Rights Validation Agent": {
"main": [
[
{
"node": "Route by Validation Status",
"type": "main",
"index": 0
}
]
]
},
"Governance Output Parser": {
"ai_outputParser": [
[
{
"node": "Governance Agent",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Regulatory Reporting Tool": {
"ai_tool": [
[
{
"node": "Governance Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Consent Tool Output Parser": {
"ai_outputParser": [
[
{
"node": "Consent Lookup Tool",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Route by Validation Status": {
"main": [
[
{
"node": "Governance Agent",
"type": "main",
"index": 0
}
],
[
{
"node": "Log Validation Results",
"type": "main",
"index": 0
}
]
]
},
"Data Rights Request Webhook": {
"main": [
[
{
"node": "Workflow Configuration",
"type": "main",
"index": 0
}
]
]
},
"Reporting Tool Output Parser": {
"ai_outputParser": [
[
{
"node": "Regulatory Reporting Tool",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Retention Tool Output Parser": {
"ai_outputParser": [
[
{
"node": "Retention Policy Tool",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Anthropic Model - Consent Tool": {
"ai_languageModel": [
[
{
"node": "Consent Lookup Tool",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Anthropic Model - Rights Agent": {
"ai_languageModel": [
[
{
"node": "Rights Validation Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Rights Validation Output Parser": {
"ai_outputParser": [
[
{
"node": "Rights Validation Agent",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Anthropic Model - Reporting Tool": {
"ai_languageModel": [
[
{
"node": "Regulatory Reporting Tool",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Anthropic Model - Retention Tool": {
"ai_languageModel": [
[
{
"node": "Retention Policy Tool",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Anthropic Model - Governance Agent": {
"ai_languageModel": [
[
{
"node": "Governance Agent",
"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.
anthropicApislackOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow automates comprehensive data validation and regulatory compliance reporting through intelligent AI-driven analysis. Designed for compliance officers, data governance teams, and regulatory affairs departments, it solves the critical challenge of ensuring data…
Source: https://n8n.io/workflows/13138/ — 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 transforms natural language queries into research reports through a five-stage AI pipeline. When triggered via webhook (typically from Google Sheets using the companion [](https://gist.g
This workflow automates end-to-end AI-driven content moderation for platforms managing user-generated content, including marketplaces, communities, and enterprise systems. It is designed for product,
This workflow automates platform trust and safety operations by deploying a multi-agent AI system that detects abuse signals, investigates behaviour, scores risk, checks policy compliance, and enforce
This workflow automates quality event risk assessment through AI-powered multi-agent analysis with mandatory human oversight for critical decisions. Designed for quality managers, compliance officers,
Who is this for? Agencies, consultants, and service providers who conduct discovery calls and need to quickly turn conversations into professional proposals.