AutomationFlows β€Ί AI & RAG β€Ί Automate Bank Statement and Invoice Reconciliation with Gpt and Google Sheets

Automate Bank Statement and Invoice Reconciliation with Gpt and Google Sheets

ByChintan Prajapati @satva-technolabsβœ“ on n8n.io

🟒 Manual Trigger

Event triggerβ˜…β˜…β˜…β˜…β˜† complexityAI-powered24 nodesGoogle SheetsOpenAI ChatAgent
AI & RAG Trigger: Event Nodes: 24 Complexity: β˜…β˜…β˜…β˜…β˜† AI nodes: yes Added:

This workflow corresponds to n8n.io template #10581 β€” we link there as the canonical source.

This workflow follows the Agent β†’ Google Sheets 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 β†’

Download .json
{
  "id": "wpg39fpK9dN3BaXH",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Bank Reconciliation AI",
  "tags": [],
  "nodes": [
    {
      "id": "87eb23a7-ed90-458f-9cd3-c98315ac8070",
      "name": "When clicking \u2018Execute workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        864,
        -544
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "00eaa2bc-f104-4666-b071-f0de28ec1049",
      "name": "Invoice Data",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1232,
        -656
      ],
      "parameters": {},
      "typeVersion": 4.7
    },
    {
      "id": "ae6b1aee-33a9-48ea-b11e-6fd267b8e544",
      "name": "Bank Statements",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1232,
        -432
      ],
      "parameters": {},
      "typeVersion": 4.7
    },
    {
      "id": "1ddece06-81b0-4b81-a78e-c91ddd21b6bf",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        2240,
        -304
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "1896c41e-96e9-4a00-be6e-ca1325fd137a",
      "name": "Process the Invoice Vs Bank Statement Data1",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        2320,
        -544
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "36e5a7c1-aed9-4d9a-92bc-7145d5bcc302",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        1552,
        -544
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "149bd1b7-90e6-4309-8f52-3c73d0711199",
      "name": "Combine and Label Merged Data",
      "type": "n8n-nodes-base.code",
      "position": [
        1904,
        -544
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "1bc4151f-8b9f-402c-a4c1-f30bf6e09bc9",
      "name": "Switch",
      "type": "n8n-nodes-base.switch",
      "position": [
        3488,
        -576
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "7c3a7f39-a4dd-4dc3-a43a-1293481668b4",
      "name": "Matched",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        3760,
        -800
      ],
      "parameters": {},
      "typeVersion": 4.7
    },
    {
      "id": "9b83a407-6011-4024-b203-b53e3b0cc3fa",
      "name": "Possible Matches",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        3776,
        -256
      ],
      "parameters": {},
      "typeVersion": 4.7
    },
    {
      "id": "079696bc-1b88-42ac-89f2-535df24add51",
      "name": "If",
      "type": "n8n-nodes-base.if",
      "position": [
        3760,
        -624
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "1bdab5fa-bc29-461c-a07b-10228d27ed83",
      "name": "Unmatched_Invoice",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        4000,
        -736
      ],
      "parameters": {},
      "typeVersion": 4.7
    },
    {
      "id": "33a28f43-8d0c-480d-bf19-8cbd2436b929",
      "name": "Unmatched-Bank Transaction",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        4016,
        -528
      ],
      "parameters": {},
      "typeVersion": 4.7
    },
    {
      "id": "135102bc-cbdf-4a6d-a0a6-0266bda6f006",
      "name": "Summary",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        3776,
        -448
      ],
      "parameters": {},
      "typeVersion": 4.7
    },
    {
      "id": "7605189e-60e8-4f02-8336-e924806a2b7a",
      "name": "Clean and Format Data",
      "type": "n8n-nodes-base.code",
      "position": [
        2896,
        -544
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "8730e70e-6c20-434c-844e-6fc6b6a1a1e8",
      "name": "Add Stream Label Filter",
      "type": "n8n-nodes-base.code",
      "position": [
        3104,
        -544
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "3feb7656-b1f8-47e7-807b-a0aca26da41e",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        752,
        -672
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "6ae4a0ab-7afe-4a05-a275-aeeec1e3ce0a",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1168,
        -848
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "2a18094a-8941-4481-9970-c66dfcbcb8d1",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1488,
        -688
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "2a645f55-b778-44a0-b4ca-6c925c0300ea",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1824,
        -720
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "c96fa17a-cd05-414b-96dd-ccdb5da631fa",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2192,
        -816
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "f706ab77-4ffd-4d85-9d54-c65025753014",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2816,
        -720
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "b7029e44-31d1-46a3-852b-a67956ff85ff",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3424,
        -912
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "76021357-252b-4df9-b192-01563a251745",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -256,
        -960
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "975828e6-ce78-4c58-9a12-f8c53430eb85",
  "connections": {
    "If": {
      "main": [
        [
          {
            "node": "Unmatched_Invoice",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Unmatched-Bank Transaction",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge": {
      "main": [
        [
          {
            "node": "Combine and Label Merged Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Switch": {
      "main": [
        [
          {
            "node": "Matched",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Summary",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Possible Matches",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Invoice Data": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Bank Statements": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Process the Invoice Vs Bank Statement Data1",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Clean and Format Data": {
      "main": [
        [
          {
            "node": "Add Stream Label Filter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Add Stream Label Filter": {
      "main": [
        [
          {
            "node": "Switch",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Combine and Label Merged Data": {
      "main": [
        [
          {
            "node": "Process the Invoice Vs Bank Statement Data1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Execute workflow\u2019": {
      "main": [
        [
          {
            "node": "Invoice Data",
            "type": "main",
            "index": 0
          },
          {
            "node": "Bank Statements",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Process the Invoice Vs Bank Statement Data1": {
      "main": [
        [
          {
            "node": "Clean and Format Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

🟒 Manual Trigger

Source: https://n8n.io/workflows/10581/ β€” original creator credit. Request a take-down β†’

More AI & RAG workflows β†’ Β· Browse all categories β†’

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

K&S-Media Downloadliste SQL. Uses httpRequest, agent, googleSheets, lmChatOpenAi. Event-driven trigger; 97 nodes.

HTTP Request, Agent, Google Sheets +3
AI & RAG

🎯 Create viral TikToks, Shorts, Reels, podcasts, and ASMR videos in minutes β€” all on autopilot.

OpenAI, HTTP Request, Form Trigger +7
AI & RAG

BoomerBobBot.TP. Uses agent, telegramTrigger, telegram, memoryBufferWindow. Event-driven trigger; 95 nodes.

Agent, Telegram Trigger, Telegram +10
AI & RAG

Generate AI viral videos with NanoBanana & VEO3, shared on socials via Blotato 2. Uses @blotato/n8n-nodes-blotato, googleSheets, lmChatOpenAi, toolThink. Event-driven trigger; 94 nodes.

@Blotato/N8N Nodes Blotato, Google Sheets, OpenAI Chat +9
AI & RAG

Inbox Guardian. Uses gmailTrigger, lmChatOpenAi, agent, textClassifier. Event-driven trigger; 66 nodes.

Gmail Trigger, OpenAI Chat, Agent +12