Makani Tech: Build. Automate. Evolve.

Bank Reconciliation Helper with n8n + Claude (free workflow)

How to reconcile your bank statement with invoices and see only the exceptions

FreeWorkflowBy Kishan Makani · updated 19 October 2026 · 4 min read

Google DriveCodeClaudeGoogle SheetsGmail

Downloads

  • Download the n8n workflow (JSON)

    bank-reconciliation-n8n-claude.json · n8n workflow · 24 steps · starts with New statement in Drive · uses Google Drive, Google Sheets, Anthropic, Gmail · 35 KB

    Import into n8n: Create Workflow, then the menu, then Import from File.

How to import it into n8n
  1. In n8n, create a new workflow.
  2. Open the ⋯ menu at the top right and choose Import from File, then pick the downloaded .json. (Or open the file, copy everything and paste it on the canvas.)
  3. Open each node with a warning and connect your own account: the file carries no passwords or keys.
  4. Run it once with Test workflow, check the result, then switch it to Active.

What this workflow does

You download the bank statement as CSV and drop it in a Google Drive folder. n8n cleans every line (Indian amount formats, different date formats), skips lines it has already seen, and keeps the credits. A Code node matches the easy ones: same amount, and the invoice number or customer name in the narration. The rest go to Claude in batches, with your unpaid invoices, and Claude suggests matches with a reason: invoice minus 2% TDS, part payment, two invoices paid together. You get one email with only the exceptions. Approve, and the matched invoices are marked Paid in your sheet.

Who it is for

CA and accounting firms doing month-end for clients, and B2B businesses (distributors, agencies, manufacturers) that receive many NEFT, IMPS and UPI payments against invoices.

What you need

  • An n8n account (Cloud or self-hosted)
  • Google Drive and Google Sheets
  • An Anthropic API key for Claude
  • Gmail for the approval email
  • Your invoice list in a sheet (exported from Tally, Zoho Books or your billing app)

The workflow, step by step

Step 1 · Drop the statement in Drive

New statement in Drive watches your statements folder. Download statement fetches the CSV and Read CSV rows turns it into rows. Clean bank lines finds the date, narration, credit, debit and reference columns by name, converts "1,18,000.00" into a number, normalises dates and drops opening and closing balance rows. Skip lines already seen means uploading an overlapping statement does not process lines twice. Credits only keeps money received.

Step 2 · Code matches the exact ones

Get open invoices reads unpaid invoices. Match exact amounts marks a line Exact when the amount matches within ₹1 and the invoice number or customer name appears in the narration; each invoice can be used only once. Log every line writes all credits to the Recon tab. Exact match? sends exact lines straight to the report and the rest to Claude.

Step 3 · Claude suggests the messy ones

Loop 25 lines at a time and Pack lines for Claude send unmatched lines in batches. Suggest matches with Claude gives Claude those lines and the remaining unpaid invoices, and asks for a suggestion with the arithmetic in the reason. Suggestions format forces line id, invoice number(s), confidence and reason. One row per suggestion splits them and Log suggestions updates the Recon rows.

Step 4 · Only exceptions reach you

Both lists in waits for both paths. Build exception report counts exact matches and high-confidence suggestions, and lists what needs checking and the credits with no invoice. Approve marking paid emails it with Approve and Reject, and Approved? reads your answer.

Step 5 · Invoices marked paid after your OK

Paid list makes one item per invoice to mark. Mark invoices paid sets Status Paid, the bank date, the reference and how it was matched. If an update fails, Update failed alert emails you the invoice number.

Setup

  1. Import the JSON into n8n.
  2. Create the Sheet with Invoices and Recon tabs (columns in the Setup sticky note) and load your unpaid invoices.
  3. Create a Drive folder for statements and paste its ID into New statement in Drive.
  4. Connect Google Drive, Google Sheets, Anthropic and Gmail. Change the accountant email in the two Gmail nodes.
  5. Drop a recent statement CSV in the folder, run the workflow and read the email before you approve.

How to customise

  • Debits too: remove Credits only and match debits against a Bills tab of supplier bills the same way.
  • Per client (CA firms): one folder and one sheet per client, or add a Client column and a folder per client.
  • Tally: after approval, export the Paid list as a CSV for a Tally receipt import instead of (or as well as) updating the sheet.
  • Stricter: mark only exact matches paid, and treat every Claude suggestion as "to check".

Guardrails

  • Exact matching is done by code; Claude only suggests, with a reason you can verify.
  • Claude can only use invoice numbers from your list.
  • Nothing is marked paid until you approve, and every decision is kept in the Recon tab.

Troubleshooting

  • No lines found: open the CSV; some banks put a few title rows above the header. Delete them before uploading, or skip them in Read CSV rows.
  • Amounts are 0: the credit column has an unusual name; add it to the pattern in Clean bank lines.
  • Same line twice in Recon: the Line ID uses date, amount and reference; make sure the reference column is being picked up.
  • Suggestions are weak: add the Taxable value column to Invoices so TDS can be worked out correctly.

Want the members-only resources too?

A free account unlocks them all, including the ones shared in DMs.

Create a free account