Why not "just do it in the ERP"
Because the ERP is slow to change, opinionated about UX, and absolutely the wrong place to hold logic that touches half a dozen external SaaS tools. Trying to bend Odoo into a CRM-marketing-comms hub eventually breaks the parts of Odoo you actually rely on.
What works instead: keep the ERP as the system of record, and treat n8n as a thin, replaceable automation layer around it.
The pattern
┌─────────────────────────┐
│ ERP (Odoo / similar) │
│ system of record │
└──────────┬──────────────┘
│ webhooks / API
┌──────────▼──────────────┐
│ n8n │
│ workflows = code │
└──────────┬──────────────┘
│
┌──────────┬───────┴───────┬─────────────┐
▼ ▼ ▼ ▼
Email/CRM Twilio Spreadsheets Internal
(SMS/WA) (BI / Sheets) APIsThree rules that keep this from becoming spaghetti:
- The ERP emits events, not orchestrations.
- n8n workflows are idempotent and replayable.
- Workflows are versioned in Git, not edited in the live UI as source of truth.
A concrete example: invoice overdue reminders
The "boring" automation that quietly returns the most value.
- Odoo emits an
invoice.dueevent when an invoice crosses its due date. - n8n picks it up, looks up the customer's preferred channel.
- Sends a Twilio SMS or WhatsApp message with the amount and a payment link.
- Logs the outcome back to the invoice as a note.
What used to be a person at a desk every Monday is now zero-touch and runs daily.
What to put in n8n (and what not to)
Use n8n for:
- Cross-system fan-out (one event → many destinations)
- Time-based jobs (daily digests, reminders)
- Glue between SaaS tools that don't talk to each other
- Light data shaping between source and destination
Do not use n8n for:
- Anything that needs strong transactional guarantees — put that in the ERP
- Business logic that core users edit every week — that belongs in the product
- Real-time, sub-second flows — n8n is fine, but it's not the right tool for that shape
Treat workflows like code
The cheapest mistake is to build great workflows in the live n8n UI and never export them.
Minimum bar:
- Workflows exported to JSON and committed
- One environment per branch where possible
- A CI step that fails the build if a workflow secret is hard-coded
- Names that map 1:1 to a business process, not "Workflow 7"
Self-host n8n inside your VPC
If your ERP holds customer or financial data, self-host n8n on the same network. Don't send payloads through a third-party server that you don't have an audit story for.
The 40% number
For one engagement I worked on, the operations team kept their own weekly time log. We compared the four-week average before and after rolling out:
- Invoice due reminders → automated
- Order confirmation comms → automated
- Daily inventory digest to ops chat → automated
- CRM ↔ email tool sync → automated
The team logged a 40% drop in "manually moving data between systems" time. The ERP didn't change. The automation layer around it did.
The takeaway
You usually don't need to replace the ERP. You need to stop expecting it to be a comms platform, a CRM enrichment service, and a marketing automation tool all at once.
Give it one job. Wrap it. Keep the wrapper as code.