Syncing a CRM with Odoo without paying for an iPaaS subscription
Description and use
A lightweight n8n recipe for two‑way sync between Odoo and a CRM (HubSpot/Pipedrive) using delta polling and webhooks, eliminating duplicates and cutting iPaaS costs.
Problem
Keeping contacts and orders in sync between Odoo and a CRM (HubSpot or Pipedrive) without incurring high iPaaS costs and avoiding duplicate or lost updates.
Outcome
Implemented a cost‑effective, two‑way sync between Odoo and a CRM using n8n, reducing iPaaS expenses and ensuring accurate, real‑time data consistency.
Workflow
- 1. Set up a scheduled poll in n8n to run every 15 minutes. 2. Query Odoo for res.partner and sale.order records with write_date > last_run. 3. Upsert each changed record into the CRM via its REST API. 4. Configure the CRM to send a webhook on create or update. 5. In n8n, branch the webhook handler: if external‑ID exists, update the corresponding Odoo record; if not, create a new Odoo record. 6. Ensure both systems store the same external‑ID on creation for future matching. 7. Deploy the 27‑node n8n workflow and point it at your Odoo and CRM credentials.
Evidence
Odoo → CRM: a scheduled poll every 15 minutes, using Odoo's write_date field to pull only records changed since the last run
CRM → Odoo: a webhook, because CRMs push changes in real time
- Record date: 2026-09-07T17:59:37.051Z