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 β
{
"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
}
]
]
}
}
}
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 β
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
K&S-Media Downloadliste SQL. Uses httpRequest, agent, googleSheets, lmChatOpenAi. Event-driven trigger; 97 nodes.
π― Create viral TikToks, Shorts, Reels, podcasts, and ASMR videos in minutes β all on autopilot.
BoomerBobBot.TP. Uses agent, telegramTrigger, telegram, memoryBufferWindow. Event-driven trigger; 95 nodes.
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.
> Note: This workflow uses sticky notes extensively to document each logical section of the automation. Sticky notes are mandatory and already included to explain OCR, AI parsing, folder logic, dup