Skip to content
← all cases

CASE 01 / Integration

Syncing customer data between CRM and accounting

Three flows: a nightly bulk sync, a webhook for realtime changes and a manual per-customer check. Including VAT fields on two levels.

Role
Design, build, maintenance
Period
2026
Stack
n8n · REST · webhooks · cron
Client
Webshop (anonymized)

01 — Problem

Two systems, one truth

A webshop manages its customers in a CRM. The accounting system needs to know the same customers as debtors — with correct addresses and VAT details, without anyone retyping them.

New and changed customers didn’t reach accounting on their own. Copying them by hand takes time and causes errors: wrong addresses, missing VAT numbers, duplicate debtors.

The requirement: every customer in the CRM exists as a debtor in accounting, shortly after a change, and also when something goes wrong once in a while.

02 — Approach

Three flows, each with one job

One flow that does everything is one flow that can break everything. So: three separate n8n flows sharing the same upsert logic.

Flow 1 · scheduled

Nightly trigger
Fetch all customers from CRM
Upsert debtors

Safety net: anything missed during the day is correct by morning.

Flow 2 · realtime

Webhook from CRM
Validate and map
Upsert one debtor

A change in the CRM reaches accounting within 2 minutes.

Flow 3 · manual

Enter customer number
Compare CRM and accounting
Update if different

For support: check one customer without waiting for the night.

FIG. 2 — Three flows, shared upsert logic n8n

03 — Result

No more retyping

Manual retyping is gone entirely. A change in the CRM reaches accounting within two minutes, and customer data is consistent across both systems. Whatever the webhook misses, the nightly run puts right.