{
  "id": "36iAFMmM324f3iUv",
  "name": "Anthropic Chat Blockchain Policy Authenticity and Claims Validation Network",
  "tags": [],
  "nodes": [
    {
      "id": "f9fdc7bf-34ff-4bf8-ab98-b43b9be519ba",
      "name": "Document Submission Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -1680,
        96
      ],
      "parameters": {
        "path": "document-submission",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "lastNode"
      },
      "typeVersion": 2.1
    },
    {
      "id": "be84594e-5add-459a-b8bf-a4dac2f1ca35",
      "name": "Workflow Configuration",
      "type": "n8n-nodes-base.set",
      "position": [
        -1456,
        96
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "id-1",
              "name": "blockchainApiUrl",
              "type": "string",
              "value": "<__PLACEHOLDER_VALUE__Blockchain API endpoint URL__>"
            },
            {
              "id": "id-2",
              "name": "carriersApiUrl",
              "type": "string",
              "value": "<__PLACEHOLDER_VALUE__Insurance carriers API endpoint URL__>"
            },
            {
              "id": "id-3",
              "name": "regulatoryApiUrl",
              "type": "string",
              "value": "<__PLACEHOLDER_VALUE__Tax/regulatory bodies API endpoint URL__>"
            },
            {
              "id": "id-4",
              "name": "alertEmail",
              "type": "string",
              "value": "<__PLACEHOLDER_VALUE__Email address for fraud alerts__>"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "211894b5-3691-4314-9115-1855b2bad369",
      "name": "Extract Document Content",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        -1232,
        96
      ],
      "parameters": {
        "options": {},
        "operation": "pdf"
      },
      "typeVersion": 1.1
    },
    {
      "id": "69127e06-c2c7-4866-9cff-e34ef97b4161",
      "name": "Document Authenticity Validator",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -1008,
        96
      ],
      "parameters": {
        "text": "={{ $json.text }}",
        "options": {
          "systemMessage": "You are a document authenticity validator for an insurance policy and claims validation network.\n\nYour task is to:\n1. Analyze the provided document content for signs of forgery, alteration, or tampering\n2. Check for inconsistencies in formatting, fonts, dates, signatures, and policy details\n3. Verify that policy numbers, claim amounts, and dates follow expected patterns\n4. Identify any suspicious modifications or irregularities\n5. Determine if the document is authentic or potentially forged\n\nReturn your analysis in the structured JSON format with:\n- isAuthentic: boolean (true if authentic, false if forged/altered)\n- confidenceScore: number (0-100)\n- findings: array of specific issues or validations\n- riskLevel: string (low, medium, high, critical)\n- recommendation: string (approve, review, reject)"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 3.1
    },
    {
      "id": "7322e8c9-e5b3-43e7-85d6-8d6d0c573cfa",
      "name": "Anthropic Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "position": [
        -1000,
        320
      ],
      "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": "f64211d9-4582-479b-bfeb-d426d5f905ed",
      "name": "Validation Result Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -872,
        320
      ],
      "parameters": {
        "schemaType": "manual",
        "inputSchema": "{\n  \"type\": \"object\",\n  \"properties\": {\n    \"isAuthentic\": {\n      \"type\": \"boolean\",\n      \"description\": \"Whether the document is authentic\"\n    },\n    \"confidenceScore\": {\n      \"type\": \"number\",\n      \"description\": \"Confidence score from 0-100\"\n    },\n    \"findings\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"description\": \"List of specific findings\"\n    },\n    \"riskLevel\": {\n      \"type\": \"string\",\n      \"enum\": [\"low\", \"medium\", \"high\", \"critical\"],\n      \"description\": \"Risk level assessment\"\n    },\n    \"recommendation\": {\n      \"type\": \"string\",\n      \"enum\": [\"approve\", \"review\", \"reject\"],\n      \"description\": \"Recommended action\"\n    }\n  },\n  \"required\": [\"isAuthentic\", \"confidenceScore\", \"findings\", \"riskLevel\", \"recommendation\"]\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "d0df55b8-d87f-4c77-9947-4f11d697b195",
      "name": "Check Document Authenticity",
      "type": "n8n-nodes-base.if",
      "position": [
        -656,
        224
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": false,
            "typeValidation": "loose"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "id-1",
              "operator": {
                "type": "boolean",
                "operation": "true"
              },
              "leftValue": "={{ $('Document Authenticity Validator').item.json.isAuthentic }}"
            }
          ]
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "0068fcda-af4f-4d60-8b2c-303f41f9ae0b",
      "name": "Publish to Blockchain",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -288,
        128
      ],
      "parameters": {
        "url": "={{ $('Workflow Configuration').first().json.blockchainApiUrl }}",
        "method": "POST",
        "options": {},
        "jsonBody": "={{ $json.blockchainRecord }}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.3
    },
    {
      "id": "4b983c8e-20ce-4ba8-b0bb-744fe94aa726",
      "name": "Prepare Blockchain Record",
      "type": "n8n-nodes-base.set",
      "position": [
        -480,
        128
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "id-1",
              "name": "documentHash",
              "type": "string",
              "value": "={{ $json.text.substring(0, 64) }}"
            },
            {
              "id": "id-2",
              "name": "timestamp",
              "type": "string",
              "value": "={{ $now.toISO() }}"
            },
            {
              "id": "id-3",
              "name": "validationStatus",
              "type": "string",
              "value": "VERIFIED"
            },
            {
              "id": "id-4",
              "name": "blockchainRecord",
              "type": "object",
              "value": "={{ { policyId: $json.policyId || \"UNKNOWN\", documentHash: $json.documentHash, timestamp: $json.timestamp, status: \"VERIFIED\", confidenceScore: $json.confidenceScore, riskLevel: $json.riskLevel } }}"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "54ff2f02-2f97-4e26-8728-6d115c34229b",
      "name": "Flag Forged Document",
      "type": "n8n-nodes-base.set",
      "position": [
        96,
        320
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "id-1",
              "name": "alertType",
              "type": "string",
              "value": "FORGED_DOCUMENT_DETECTED"
            },
            {
              "id": "id-2",
              "name": "timestamp",
              "type": "string",
              "value": "={{ $now.toISO() }}"
            },
            {
              "id": "id-3",
              "name": "alertMessage",
              "type": "string",
              "value": "=ALERT: Forged or altered document detected. Risk Level: {{ $json.riskLevel }}. Confidence: {{ $json.confidenceScore }}%. Findings: {{ $json.findings.join(\", \") }}"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "bbe74ff2-4e3e-4392-8fbc-ac02330a786a",
      "name": "Send Proof to Carriers",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -128,
        208
      ],
      "parameters": {
        "url": "={{ $('Workflow Configuration').first().json.carriersApiUrl }}",
        "method": "POST",
        "options": {},
        "jsonBody": "={{ { documentHash: $json.documentHash, timestamp: $json.timestamp, status: \"VERIFIED\", blockchainTxId: $json.transactionId || $json.txId, proofUrl: $json.proofUrl || \"\" } }}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.3
    },
    {
      "id": "1a59074d-044d-49c4-ae14-d87895edf2d8",
      "name": "Send Proof to Regulatory Bodies",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        128,
        112
      ],
      "parameters": {
        "url": "={{ $('Workflow Configuration').first().json.regulatoryApiUrl }}",
        "method": "POST",
        "options": {},
        "jsonBody": "={{ { documentHash: $json.documentHash, timestamp: $json.timestamp, status: \"VERIFIED\", blockchainTxId: $json.transactionId || $json.txId, proofUrl: $json.proofUrl || \"\", complianceReport: { confidenceScore: $json.confidenceScore, riskLevel: $json.riskLevel, recommendation: $json.recommendation } } }}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.3
    },
    {
      "id": "49ca0302-71dc-4335-a0ce-4b8ee1ca6788",
      "name": "Send Alert Email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        320,
        320
      ],
      "parameters": {
        "sendTo": "={{ $('Workflow Configuration').first().json.alertEmail }}",
        "message": "=<h2>Fraud Alert: Forged Document Detected</h2>\n<p><strong>Alert Type:</strong> {{ $json.alertType }}</p>\n<p><strong>Timestamp:</strong> {{ $json.timestamp }}</p>\n<p><strong>Risk Level:</strong> {{ $json.riskLevel }}</p>\n<p><strong>Confidence Score:</strong> {{ $json.confidenceScore }}%</p>\n<p><strong>Recommendation:</strong> {{ $json.recommendation }}</p>\n<h3>Findings:</h3>\n<ul>\n{{ $json.findings.map(f => \"<li>\" + f + \"</li>\").join(\"\") }}\n</ul>\n<p><strong>Message:</strong> {{ $json.alertMessage }}</p>",
        "options": {},
        "subject": "\ud83d\udea8 FRAUD ALERT: Forged Document Detected"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "be5979e5-9856-44c0-b834-f3f027243389",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -592,
        -352
      ],
      "parameters": {
        "color": 5,
        "width": 576,
        "height": 304,
        "content": "## Prerequisites\nAnthropic API key, blockchain network access and credentials \n## Use Cases\nSupply chain documentation verification for import/export compliance \n## Customization\nAdjust AI prompts for industry-specific authenticity criteria \n## Benefits\nEliminates manual document review time while improving fraud detection accuracy "
      },
      "typeVersion": 1
    },
    {
      "id": "66e785d3-e183-4d87-9b5d-383f0bf17b3a",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -976,
        -304
      ],
      "parameters": {
        "width": 352,
        "height": 256,
        "content": "## Setup Steps\n1. Configure webhook endpoint URL for document submission  \n2. Add Anthropic API key to Chat Model node for AI \n3. Set up blockchain network credentials in HTTP nodes for record preparation\n4. Connect Gmail account and specify compliance team email addresses \n5. Customize authenticity thresholds "
      },
      "typeVersion": 1
    },
    {
      "id": "2aa1c5c4-d05f-4a90-9bd8-1990c17dc039",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1728,
        -288
      ],
      "parameters": {
        "width": 720,
        "height": 240,
        "content": "## How It Works\nThis workflow automates document authenticity verification by combining AI-based content analysis with immutable blockchain records. It is built for compliance teams, legal departments, supply chain managers, and regulators who need tamper-proof validation and auditable proof. The solution addresses the challenge of detecting forged or altered documents while producing verifiable evidence that meets legal and regulatory standards. Documents are submitted via webhook and processed through PDF content extraction. Anthropic\u2019s Claude analyzes the content for authenticity signals such as inconsistencies, anomalies, and formatting issues, returning structured authenticity scores.Verified documents trigger blockchain record creation and publication to a distributed ledger, with cryptographic proofs shared automatically with carriers and regulators through HTTP APIs."
      },
      "typeVersion": 1
    },
    {
      "id": "b728f438-a7e3-4268-9552-81f3bbe1562c",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1744,
        -16
      ],
      "parameters": {
        "color": 7,
        "width": 1040,
        "height": 528,
        "content": "## **Document Submission & Analysis**\n**What:** Webhook receives documents; An Anthropic Chat Model with output parser checks authenticity  \n**Why:** AI detects sophisticated forgeries beyond manual review "
      },
      "typeVersion": 1
    },
    {
      "id": "20220ba5-ca03-48fb-9279-61461131d724",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -688,
        -16
      ],
      "parameters": {
        "color": 7,
        "width": 672,
        "height": 496,
        "content": "## **Blockchain Verification**\n**What:** Authentic documents pass an IF node to a blockchain workflow \n**Why:** Blockchain ensures tamper-proof verification for compliance "
      },
      "typeVersion": 1
    },
    {
      "id": "5389e858-0fda-4a2b-a388-0a1073fc08e3",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        -16
      ],
      "parameters": {
        "color": 7,
        "width": 448,
        "height": 720,
        "content": "\n## **Suspicious Document Handling**\n**What:** Flagged documents trigger Gmail alerts  \n**Why:** Human review safeguards security and prevents false rejections .\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "availableInMCP": false,
    "executionOrder": "v1"
  },
  "versionId": "8f96cfe0-be85-4ba5-8038-03f5eac86139",
  "connections": {
    "Anthropic Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Document Authenticity Validator",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Flag Forged Document": {
      "main": [
        [
          {
            "node": "Send Alert Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Publish to Blockchain": {
      "main": [
        [
          {
            "node": "Send Proof to Carriers",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Proof to Carriers": {
      "main": [
        [
          {
            "node": "Send Proof to Regulatory Bodies",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Workflow Configuration": {
      "main": [
        [
          {
            "node": "Extract Document Content",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Document Content": {
      "main": [
        [
          {
            "node": "Document Authenticity Validator",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Validation Result Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Document Authenticity Validator",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Blockchain Record": {
      "main": [
        [
          {
            "node": "Publish to Blockchain",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Document Authenticity": {
      "main": [
        [
          {
            "node": "Prepare Blockchain Record",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Flag Forged Document",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Document Submission Webhook": {
      "main": [
        [
          {
            "node": "Workflow Configuration",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Document Authenticity Validator": {
      "main": [
        [
          {
            "node": "Check Document Authenticity",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}