anaksor-ocr
Sokheng · Kit
Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…
An n8n workflow that watches a folder for bank statement CSVs. An AI agent checks each one against tenants and properties in a local Excel workbook, then writes alerts to a sheet of the same workbook.
Rent payments checked against bank CSVs and a local workbook is an n8n workflow in the Finance & accounting category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.
CSV file added to a folder
It starts when a CSV file is added to the watched folder:
New rows on the alerts sheet of the workbook, one for each problem the agent found
What you need before you start.
Language model
Reads the statement, calls the two workbook lookups and returns the alerts as JSON.
NeedsAn OpenAI API key
Checked by Mindket on 13 Nov 2026
This n8n workflow checks rent against bank statements. It watches a folder for CSV files and gives each statement to an AI agent, which looks up tenants and properties in a local Excel workbook. It flags missed or wrong rent, tenancies that end soon and unpaid final fees. The alerts go to a sheet of the same workbook. Eleven nodes run it, beside six sticky notes.
Small landlords and property managers who run their own n8n and keep tenant records in a spreadsheet. Skip it on n8n Cloud, which cannot see your folders, and skip it if you cannot send statement rows to OpenAI.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Property | Landlords | Check a month of rent against the tenant list | A landlord drops in a statement and sees which tenants paid late or short. |
| Letting | Letting agents | Review many tenancies in one pass | An agent runs the statements of a block of flats and reads the alerts. |
| Accounting | Bookkeepers | Flag rent exceptions for a client | A bookkeeper gets a list of tenants whose payment is missing. |
| Housing | Housing teams | Track final fees at the end of a tenancy | A team sees a leaving tenant who still owes a fee. |
You need some n8n and a little spreadsheet work: allow two things in n8n, make a workbook, add one credential and drop in a CSV.
Only a self-hosted n8n, since the trigger and the workbook code work on the files of the machine that runs n8n. The reasoning comes from OpenAI’s cloud.
Download saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Setup takes one credential, two paths and a workbook with three sheets.
| Need | Detail |
|---|---|
| n8n | A self-hosted n8n with Local File Trigger allowed and the xlsx module available to code |
| Folder | A folder n8n can reach, with a backup of everything in it |
| Workbook | reconciliation-workbook.xlsx with the sheets tenants, properties and alerts |
| Statements | CSV files with date, reference, money_in and money_out in the first row |
| OpenAI | An API key |
workflow.json.OpenAI Chat Model.Watch For Bank Statements, set the folder’s path as n8n sees it.Set Variables, set the workbook’s path.Drop a bank statement CSV into the watched folder. After a moment new rows appear on the alerts sheet of the workbook. Test on a copy of your files first.
| To change | Where |
|---|---|
| What counts as a problem | The system message of Reconcile Rental Payments |
| The model | OpenAI Chat Model |
| The watched folder | Watch For Bank Statements |
| The details the agent sees | The sheets tenants and properties |
A landlord has twelve tenants in the workbook and drops in March’s statement. One tenant paid short and another has not paid at all.
The agent looks both tenants up, compares the rent due with the statement rows and returns two alerts. Two new rows appear on the alerts sheet, and the earlier state of the workbook is saved as a .bak.xlsx copy.
If you are new. n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. Here one box reads the CSV, an agent compares it with your tenant list and a Code node writes the alerts. Try it first on a made up statement and a workbook with two tenants.
For experts. The agent has two Code Tool nodes that read the workbook with SheetJS, and a structured output parser fixes the shape of the alerts. A final Code node appends rows and saves a backup.
| Node | What it does | What to know |
|---|---|---|
Get Tenant Details | Looks tenants up by name or ID in the tenants sheet | It calls require('xlsx'), so the module must be allowed |
Get Property Details | Looks properties up by ID in the properties sheet | It reads the workbook path from Set Variables |
Reconcile Rental Payments | Compares the statement with the records and answers in JSON | The statement goes in as a Markdown table |
Append To Spreadsheet | Adds one row per alert to the alerts sheet | It saves a .bak.xlsx copy first, always under the same name |
This workflow rewrites your workbook and sends financial records to OpenAI, so test it on copies and check every alert.
gpt-4o snapshots. This copy names gpt-5.6-terra, because OpenAI’s page for gpt-6-luna limits function calling on Chat Completionsaction_required, which the parser and the Code node use, and the workbook name is spelled reconciliation-workbook.xlsxLocalFileTrigger as disabled by default, and NODES_EXCLUDE brings it backNODE_FUNCTION_ALLOW_EXTERNAL, and the variable goes on the task runners when you use themAn n8n workflow that watches a folder for bank statement CSV files. An AI agent checks each statement against tenants and
properties kept in a local Excel workbook. It flags missed or wrong rent, tenancies that end soon and unpaid final fees, and
it writes the alerts to a sheet of the same workbook. It needs a self-hosted n8n.
workflow.json: the workflow as n8n exports it, seventeen nodes: eleven that do the work and six sticky notes. It holdsREADME.md: these notes.OpenAI Chat Model is gone. Select your own.gpt-4o. OpenAI's deprecations page, read on 12 November 2026, gives 14 January 2027 as the shutdown date ofgpt-4o snapshots and names gpt-6-luna. OpenAI's page for that model says Chat Completions supports functiongpt-5.6-terra.action required, with a space. The output parser and the last Codeaction_required, so the instructions now say that.reconcilation-workbook.xlsx. It is reconciliation-workbook.xlsx now.NODES_EXCLUDE brings it back.xlsx module available to code. The Code node and both code tools call require('xlsx'). n8n's documentation says externalNODE_FUNCTION_ALLOW_EXTERNAL, and that the variable goes on the task/home/node/host_mount/reconciliation_project, a path in a Docker setup.reconciliation-workbook.xlsx in that folder, with three sheets.tenants needs the columns Tenant ID and Tenant Name, plus the terms, rent amount and notes you want the agent to see.properties needs Property ID, plus the address, postcode and type.alerts needs a header row, and the workflow appends below it.date, reference, money_in and money_out in the first row.workflow.json.OpenAI Chat Model.Watch For Bank Statements, set the folder's path as n8n sees it.Set Variables, set the workbook's path.Watch For Bank Statements fires when a file is added. Its ignore pattern, !**/*.csv, is meant to skip everything thatSet Variables keeps the workbook's path.Get Bank Statement File reads the CSV and Get CSV Data turns each row into an item.Reconcile Rental Payments is an AI agent. It gets the statement as a table, and it can call Get Tenant Details andGet Property Details, two code tools that read the workbook.Structured Output Parser holds it to one shape.Alert Actions To List makes one item per alert, and Append To Spreadsheet adds one row each to the alerts sheet.Reconcile Rental Payments.OpenAI Chat Model.Watch For Bank Statements.Append To Spreadsheet saves a copy first, next to the workbook with .bak.xlsx addedNOTICE.md 678 B README.md 5 KB workflow.json 13 KB
Sokheng · Kit
Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…
Qwen · Kit
Qwen2.5-7B-Instruct as GGUF files in eight quantization sizes, to chat with locally through llama.cpp. For people who want a capable 7.6B model on their own co…
ACE-Step · Kit
Generates music from text with a 4B diffusion decoder, 50 steps and guidance control, aiming for higher audio quality than the base. For creators with a GPU of…
NeoQuasar · Kit
Forecasts financial candlestick series with a 4.1M-parameter foundation model trained on data from over 45 exchanges. For quant researchers and developers who…
An n8n workflow that sends a Hebrew WhatsApp reminder for an unpaid invoice 7, 14 and 30 days after its due date. It reads the open invoices from a Google Shee…
An n8n workflow that files invoices. It watches a Google Drive folder, has LlamaParse read each new file and an OpenAI model pick out the line items. Airtable…