{ "name": "Content Moderation with Verifiable Decision Receipts", "nodes": [ { "parameters": { "httpMethod": "POST", "path": "content-moderation", "options": {}, "responseMode": "responseNode" }, "id": "0d060095-0888-42a6-8fca-9fa019e6f1e4", "name": "Content Moderation", "type": "n8n-nodes-base.webhook", "typeVersion": 2.1, "position": [ 0, 300 ], "webhookId": "9e8ea4cc-da71-43a7-9dd1-8a7a205ae301" }, { "parameters": { "modelId": { "__rl": true, "mode": "list", "value": "gpt-4o", "cachedResultName": "GPT-4O" }, "messages": { "values": [ { "role": "system", "content": "=You are a content moderation AI. Return JSON: {\"decision\":\"ALLOW|REMOVE|FLAG\",\"category\":\"...\",\"reason\":\"...\"}." }, { "content": "=Return JSON only.\n\nInput:\n{{ JSON.stringify($json.body) }}" } ] }, "jsonOutput": true, "options": {} }, "id": "e77f8361-81f1-43f5-b599-625b644c364f", "name": "AI Decision", "type": "@n8n/n8n-nodes-langchain.openAi", "typeVersion": 2.1, "position": [ 220, 300 ], "credentials": { "openAiApi": { "id": "REPLACE_OPENAI_CRED_ID", "name": "OpenAi account" } } }, { "parameters": { "operation": "generateReceipt", "agentName": "ModerationAgent", "workflowName": "={{ $workflow.name }}", "action": "={{ 'AI decision: ' + ($json.message.content.decision || $json.message.content.recommendation || 'completed') }}", "decision": "={{ JSON.stringify($json.message.content) }}", "additionalFields": { "modelProvider": "openai", "modelUsed": "gpt-4o", "decisionType": "content_moderation", "riskLevel": "medium", "humanReview": false, "policies": "community-guidelines-v4, dsa-compliance", "permissions": "content.moderate", "tags": "moderation, trust-safety, ai" } }, "id": "d3564714-6d9c-4825-86ca-c488590accca", "name": "Signatrust: Receipt", "type": "n8n-nodes-signatrust.signatrust", "typeVersion": 1, "position": [ 440, 300 ], "credentials": { "signatrustApi": { "id": "REPLACE_SIGNATRUST_CRED_ID", "name": "Signatrust API account" } } }, { "parameters": { "select": "channel", "channelId": { "__rl": true, "mode": "name", "value": "#alerts" }, "text": "={{ 'Decision receipt ' + $json.id + ' created' }}", "otherOptions": {} }, "id": "4787e6f8-7afc-4c4b-8023-aa8b5804819d", "name": "Slack Alert", "type": "n8n-nodes-base.slack", "typeVersion": 2.3, "position": [ 660, 300 ], "credentials": { "slackApi": { "id": "REPLACE_SLACK_CRED_ID", "name": "Slack account" } } }, { "parameters": { "content": "## Content Moderation with Verifiable Decision Receipts\n**Why Signatrust?** Every AI decision here becomes a tamper-evident, Ed25519-signed receipt — verifiable for audits and disputes.", "height": 170, "width": 420, "color": 5 }, "id": "adb3fcf0-383a-48a2-be20-bb2abfafe8be", "name": "Sticky Note 386bf3", "type": "n8n-nodes-base.stickyNote", "typeVersion": 1, "position": [ -40, 40 ] } ], "connections": { "Content Moderation": { "main": [ [ { "node": "AI Decision", "type": "main", "index": 0 } ] ] }, "AI Decision": { "main": [ [ { "node": "Signatrust: Receipt", "type": "main", "index": 0 } ] ] }, "Signatrust: Receipt": { "main": [ [ { "node": "Slack Alert", "type": "main", "index": 0 } ] ] } }, "active": false, "pinData": {}, "settings": { "executionOrder": "v1" }, "tags": [ { "name": "Content Moderation — moderation" }, { "name": "Content Moderation — trust-safety" }, { "name": "Content Moderation — ai" }, { "name": "Signatrust (13)" } ], "meta": { "templateCredsSetupCompleted": false }, "versionId": "a56c024e-e9ee-4ad5-9c03-1f4451b85ad3" }