§ Case · 02 · 2026Industrial distribution · Valencia

1,240 hours
recovered
per quarter.

An industrial distributor with 120 employees was spending 1,400 hours per quarter entering supplier invoices and reconciling payments by hand. In 4 weeks we built a system that automates 89% of the process; after 4 more weeks of supervised stabilization, it went into 100% autonomous production.

Hours saved/qtr
+1,240
Error reduction
−94%
ROI · year 1
7.8×
Build + stabilization
4+4wks
§ Context

The problem.

The company receives roughly 8,400 supplier invoices per month. Two people on the admin team spent 3 hours daily opening each email, downloading the PDF, reading it, recording data in Holded, and archiving the file. Two more people in finance manually reconciled bank statements with issued invoices every month-end — an exercise that blocked 4 days of the accounting close.

Beyond the hour cost, the process generated a 3.2% transcription error rate caught only at quarterly audit, multiplying the problem: locate the original invoice, fix the entry, reprocess the payment, and in worst cases, dispute with the supplier.

What we built.

Invoicing pipeline

An n8n workflow listens on a dedicated invoices@ mailbox, downloads the attachment, sends it to GPT-4o with a structured extraction prompt, validates fields against the supplier master, cross-checks open purchase orders, and creates the entry in Holded with the file attached. If there's an amount mismatch or missing data, the flow escalates to a human with all info already summarized.

Continuous bank reconciliation

A second workflow runs every morning at 07:00. It pulls bank movements via PSD2 from three different banks, normalizes them to a common format, cross-references against issued/paid invoices in Holded with a matcher tolerant to concept and date variations, and proposes reconciliations. 100%-confidence matches are auto-confirmed; the rest stays in a reviewable queue.

Operational truth dashboard

A Grafana view on Postgres consolidates: invoices received, processing status, discrepancy alerts, average age of unpaid invoices, cash-flow forecast at 30/60/90 days. The CFO opens a URL and sees it all.

The real change isn't just the hours saved. It's that month-end close stopped being a stressful event. Now it's just another Monday.

How we shipped it.

We follow our standard 5-phase process — see full process.

  • Week 1 · Discovery + roadmap: diagnostic with admin + finance teams. Mapped 14 sub-processes, prioritized the 3 with highest ROI, closed proposal with fixed fee. Quick win: supplier invoicing, bank reconciliation, and CFO dashboard.
  • Week 2 · Build: staging build on their VPS. Multi-entity Holded connection and 3 banks via PSD2.
  • Week 3 · Build with real data: tests against 2,000 historical invoices and 3 months of bank statements. Tuned the reconciliation matcher with edge cases (variable concepts, shifted dates, grouped payments).
  • Week 4 · Cutover: 7 days of shadow alongside the manual process, refined exceptions and switched at the end of the week.
  • Weeks 5-8 · Stabilization (4 supervised weeks): weekly meetings with admin, finance, and CFO. Tuned auto-reconciliation thresholds, refined the dashboard with KPIs they kept asking for, closed the last exceptions. After 4 weeks: 100% autonomous production.
  • Production: 8 h/month evolution retainer (new banks, new entities, expansion to client reconciliation).

Stack used.

n8nGPT-4oHoldedPostgreSQLGrafanaPSD2 · BBVA · Santander · SabadellSentry

Is your back-office stuck in 2019? Let's talk for 30 minutes.

Free assessment with your team. We leave with a concrete plan and fixed fee.

Request assessment →