A finance back office that reads its own post and supplier mail
A group of companies runs its books in Odoo. Paper post, supplier emails, marketplace payouts and contractor hours all ended up with the same small finance team. We built a set of n8n workflows that read, file and draft, and leave the decisions about money with people.
Reading and filing run on their own. Posting bills and paying people stay with the finance team.
- Team
- Finance
- Built with
- n8n
- Odoo
- Claude
- Google Drive
- Slack
The problem
Finance spent its week sorting, not checking.
Paper letters arrived for several companies in the group. Someone opened each scan, worked out which company it was for, and filed it. Supplier confirmations, shipping notes and invoices landed in a shared inbox and were typed into the purchasing and accounting tools by hand.
Marketplace returns needed credit notes, and payouts needed matching against invoices. Contractor hours were approved in one tool and paid from another, so every approval was copied across.
None of this needs judgment about money. It needs reading, matching and typing, and it kept the team from the checks that do need judgment.
What we built
Post that files itself
Paper post is scanned into a shared folder. Every 5 minutes, an n8n workflow sends new scans to Claude, which reads each letter and decides what it is. Invoices go to the invoice queue. Other letters are routed to the right company in the group, uploaded to Odoo Documents and announced in Slack.
Supplier mail turned into draft bills
Every hour, Claude reads supplier order confirmations, shipping updates and invoices from a shared inbox. The workflow updates the matching purchase orders and creates a draft vendor bill in Odoo with the PDF attached. A person checks and posts each bill.
Marketplace credit notes on a schedule
Once a month, marketplace returns are matched to their invoices, and the credit notes are created, posted and settled in Odoo. Every Monday, the week's payouts are reconciled. The result lands in a finance Slack channel.
Approvals carried to payroll
When a manager approves contractor hours in Odoo, the decision goes to the payroll platform, and the invoice it creates is stored back on the request. Each weekday morning, the workflow sends pay reminders, re-sends decisions that got lost and flags any sync stuck for 30 minutes or more.
An alert when bank details change
Every hour, the workflow fingerprints every bank account in Odoo and compares it with the last run. When an account is added or changed, finance gets a Slack message, so someone can check it before money is sent there.
Guardrails
What it will not do on its own
The workflows prepare the books. People still decide what is posted and paid.
- Vendor bills are created as drafts, and a person posts them
- Approvals start with a manager's decision in Odoo; the workflow only carries it out
- A lock stops two runs from syncing the same approval
- A dry-run mode tests changes without touching payroll
- Sync errors are written back to the approval and its Slack thread
- A bank detail change raises an alert; nothing is blocked or edited automatically
Why we built it this way
Drafts, not postings
Reading a PDF is where AI helps. Deciding to pay is where a person should stay. Draft bills split the work at that line.
Fingerprints, not copies
The bank watcher stores a fingerprint of each account, not the account details, so the alert works without keeping a second copy of sensitive data.
A sweep for what webhooks miss
Webhooks get lost now and then. A weekday sweep re-sends missed decisions and flags stuck ones, so a gap shows up the next morning, not at month end.
Measured
What finance can see
Every step leaves a trace where the team already works.
- Every letter and where it was filed, announced in Slack
- Draft bills waiting for review, with the source PDF attached
- Credit notes and payout matches posted to a finance channel
- Approvals stuck for 30 minutes or more
- Every new or changed bank account
More case studies
Other systems our team built.
- Customer supportAn AI support desk where a person still decides what gets sentRead the case →
- OperationsProduction planning that is done before the team arrivesRead the case →
- E-commerce operationsShop, marketplace and warehouse kept in step without anyone watchingRead the case →
- Product and contentShopify product pages built from one approved recordRead the case →
- Leadership and engineeringReports that draft themselves and alarms that fire before things breakRead the case →
Related
AI Agent Development
Document extraction agents that read invoices, letters and PDFs into your accounting tool.
Learn more →AI & Workflow Automation
Invoices, payment follow-ups and reconciliations that run on a schedule.
Learn more →All case studies
Every system we have written up, from support to reporting.
Learn more →Still typing invoices into your accounting tool?
Tell us where your invoices and letters arrive. We'll tell you which ones an agent can read into draft bills, and what stays with your bookkeeper.
Book a 15-min call