{
  "name": " AI-powered fuzzy matching, and assigns confidence scores.",
  "nodes": [
    {
      "id": "42217665-1184-40a8-bddf-b40f9e84fce1",
      "name": "Webhook - Receive Financial Data",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -768,
        288
      ]
    },
    {
      "id": "de790021-1521-4926-bd1a-b40ae43e2794",
      "name": "Workflow Configuration",
      "type": "n8n-nodes-base.set",
      "position": [
        -592,
        288
      ]
    },
    {
      "id": "9f455d80-262a-4af3-85ed-143db95c4696",
      "name": "Check Data Source Type",
      "type": "n8n-nodes-base.if",
      "position": [
        -368,
        288
      ]
    },
    {
      "id": "3beba561-8803-4b92-b81e-d5aea0832d57",
      "name": "Extract CSV Data",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        16,
        48
      ]
    },
    {
      "id": "5fd65063-4ddc-441b-97b3-9f75d88c32a2",
      "name": "Normalize Bank Statement Schema",
      "type": "n8n-nodes-base.set",
      "position": [
        16,
        224
      ]
    },
    {
      "id": "cd62e763-8cd1-46bb-82b6-f18078412dfb",
      "name": "Normalize Invoice Schema",
      "type": "n8n-nodes-base.set",
      "position": [
        16,
        400
      ]
    },
    {
      "id": "0efc2451-3c62-4988-85d6-e06312afa34c",
      "name": "Normalize ERP Schema",
      "type": "n8n-nodes-base.set",
      "position": [
        16,
        608
      ]
    },
    {
      "id": "0c4e99b7-8eda-4216-aba0-c14e076285c5",
      "name": "Normalize CSV Schema",
      "type": "n8n-nodes-base.set",
      "position": [
        224,
        48
      ]
    },
    {
      "id": "a8f3c054-a206-4a16-99d0-2957eb87caa6",
      "name": "Merge All Normalized Data",
      "type": "n8n-nodes-base.merge",
      "position": [
        448,
        208
      ]
    },
    {
      "id": "b54e7970-4c2b-478c-9568-57a10757895d",
      "name": "Deterministic Matching Logic",
      "type": "n8n-nodes-base.code",
      "position": [
        832,
        304
      ]
    },
    {
      "id": "895fed31-1878-4834-bdff-834c29948de5",
      "name": "Check Match Quality",
      "type": "n8n-nodes-base.if",
      "position": [
        1008,
        304
      ]
    },
    {
      "id": "73cfb80a-0342-4542-a099-9ca83d8b045e",
      "name": "AI Fuzzy Matching Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1248,
        528
      ]
    },
    {
      "id": "7abbe9b8-2a0b-48d9-81c0-39b0a80df771",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1248,
        864
      ]
    },
    {
      "id": "2a37407e-1fd9-46d5-a942-de40e246f47d",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1408,
        848
      ]
    },
    {
      "id": "295397ed-0102-4df9-a2cf-446a85439e49",
      "name": "Merge Matched Results",
      "type": "n8n-nodes-base.merge",
      "position": [
        1680,
        304
      ]
    },
    {
      "id": "54f8e770-f6f8-4b49-bb2c-78962732ed6f",
      "name": "Calculate Confidence Scores",
      "type": "n8n-nodes-base.code",
      "position": [
        1872,
        304
      ]
    },
    {
      "id": "e96842c2-5bc0-44e0-b3e9-bfcbb62a80e6",
      "name": "Route by Confidence Threshold",
      "type": "n8n-nodes-base.if",
      "position": [
        2080,
        320
      ]
    },
    {
      "id": "b10d37cf-b377-4397-8b67-f358bfc5da07",
      "name": "Flag for Human Review",
      "type": "n8n-nodes-base.set",
      "position": [
        2320,
        400
      ]
    },
    {
      "id": "52559270-484a-49d0-847e-f004518abb02",
      "name": "Mark as Auto-Reconciled",
      "type": "n8n-nodes-base.set",
      "position": [
        2320,
        256
      ]
    },
    {
      "id": "fe27e284-4bc7-446b-85fc-1cd03f8b8f81",
      "name": "Merge All Results",
      "type": "n8n-nodes-base.merge",
      "position": [
        2640,
        352
      ]
    },
    {
      "id": "4cdd473a-2795-43ed-a464-a874d458e3ff",
      "name": "Log to Reconciliation Report",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2864,
        352
      ]
    },
    {
      "id": "2682e628-ed05-4fd2-8feb-43d9caff7470",
      "name": "Notify Finance Team",
      "type": "n8n-nodes-base.slack",
      "position": [
        3120,
        352
      ]
    },
    {
      "id": "3d42b58b-ab5e-4969-bbd9-96444b55ee6c",
      "name": "Merge All Normalized Data1",
      "type": "n8n-nodes-base.merge",
      "position": [
        448,
        432
      ]
    },
    {
      "id": "e879468a-0a17-4a40-ada7-79e8023272e2",
      "name": "Merge All Normalized Data2",
      "type": "n8n-nodes-base.merge",
      "position": [
        640,
        304
      ]
    },
    {
      "id": "c8f83a37-b017-4749-99da-e51966fabb13",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1664,
        64
      ],
      "parameters": {
        "width": 560,
        "height": 528,
        "content": "\n## How it works\nThis workflow automates reconciliation across bank statements, invoices, ERP systems, and CSV uploads. It standardizes all data into a unified format and performs deterministic matchi"
      }
    },
    {
      "id": "d97902db-baa8-41af-8e92-60ed7b090c42",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -864,
        144
      ],
      "parameters": {
        "width": 400,
        "height": 352,
        "content": "## Data Input\nReceives financial data via webhook from multiple sources and Defines matching keys, thresholds, and reconciliation rules."
      }
    },
    {
      "id": "1f5d7acb-20d4-4968-ae11-15a950fb1d82",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -432,
        144
      ],
      "parameters": {
        "width": 256,
        "height": 352,
        "content": "## Source Routing\nDetects data type and routes to correct normalization flow.)"
      }
    },
    {
      "id": "d5f1e7f2-2466-407a-bf7e-863fefa466f5",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -96,
        -80
      ],
      "parameters": {
        "width": 272,
        "height": 848,
        "content": "## Data Normalization\nConverts bank, invoice, ERP, and CSV data into a unified schema."
      }
    },
    {
      "id": "57d64771-fda3-4bd2-9b0a-d5e60537f5ae",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        384,
        80
      ],
      "parameters": {
        "width": 384,
        "height": 528,
        "content": "## Data Merge\nCombines all normalized records for comparison."
      }
    },
    {
      "id": "f93866d8-35f9-4065-8a18-d16ce408a60a",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        800,
        128
      ],
      "parameters": {
        "width": 352,
        "height": 384,
        "content": "## Deterministic Matching\nMatches records using exact fields like ID, amount, and date."
      }
    },
    {
      "id": "1d8eb26d-23ee-4ca0-9620-3bd8775e7559",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1200,
        416
      ],
      "parameters": {
        "width": 336,
        "height": 352,
        "content": "## AI Fuzzy Matching\nUses AI to find near matches based on text, amount, and date."
      }
    },
    {
      "id": "10ca8421-c5f2-4033-a2e5-bf8f845322e1",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1584,
        192
      ],
      "parameters": {
        "width": 432,
        "height": 272,
        "content": "## Confidence Scoring\nCombines matching results into final confidence score with audit trail."
      }
    },
    {
      "id": "89ed1034-6845-4de2-8a5c-5a235c58bf7e",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2048,
        176
      ],
      "parameters": {
        "width": 464,
        "height": 416,
        "content": "## Decision Routing\nRoutes high-confidence matches or flags low-confidence for review."
      }
    },
    {
      "id": "ef0d6bea-dbd9-42cb-b9e6-6fdac191bbd4",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2832,
        176
      ],
      "parameters": {
        "width": 480,
        "height": 416,
        "content": "## Reporting\nLogs reconciliation results into Google Sheets and Sends summary of reconciliation results via Slack."
      }
    }
  ],
  "connections": {
    "Extract CSV Data": {
      "main": [
        [
          {
            "node": "Normalize CSV Schema",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge All Results": {
      "main": [
        [
          {
            "node": "Log to Reconciliation Report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Fuzzy Matching Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Check Match Quality": {
      "main": [
        [
          {
            "node": "Merge Matched Results",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "AI Fuzzy Matching Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Normalize CSV Schema": {
      "main": [
        [
          {
            "node": "Merge All Normalized Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Normalize ERP Schema": {
      "main": [
        [
          {
            "node": "Merge All Normalized Data1",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Flag for Human Review": {
      "main": [
        [
          {
            "node": "Merge All Results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge Matched Results": {
      "main": [
        [
          {
            "node": "Calculate Confidence Scores",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Data Source Type": {
      "main": [
        [
          {
            "node": "Normalize Bank Statement Schema",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Normalize Invoice Schema",
            "type": "main",
            "index": 0
          },
          {
            "node": "Normalize ERP Schema",
            "type": "main",
            "index": 0
          },
          {
            "node": "Extract CSV Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Workflow Configuration": {
      "main": [
        [
          {
            "node": "Check Data Source Type",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Fuzzy Matching Agent": {
      "main": [
        [
          {
            "node": "Merge Matched Results",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Mark as Auto-Reconciled": {
      "main": [
        [
          {
            "node": "Merge All Results",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Normalize Invoice Schema": {
      "main": [
        [
          {
            "node": "Merge All Normalized Data1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "AI Fuzzy Matching Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Merge All Normalized Data": {
      "main": [
        [
          {
            "node": "Merge All Normalized Data2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge All Normalized Data1": {
      "main": [
        [
          {
            "node": "Merge All Normalized Data2",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Merge All Normalized Data2": {
      "main": [
        [
          {
            "node": "Deterministic Matching Logic",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Calculate Confidence Scores": {
      "main": [
        [
          {
            "node": "Route by Confidence Threshold",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Deterministic Matching Logic": {
      "main": [
        [
          {
            "node": "Check Match Quality",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Log to Reconciliation Report": {
      "main": [
        [
          {
            "node": "Notify Finance Team",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Route by Confidence Threshold": {
      "main": [
        [
          {
            "node": "Mark as Auto-Reconciled",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Flag for Human Review",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Normalize Bank Statement Schema": {
      "main": [
        [
          {
            "node": "Merge All Normalized Data",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Webhook - Receive Financial Data": {
      "main": [
        [
          {
            "node": "Workflow Configuration",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}