CRM Integration
Salesforce + Odoo Integration
Keep Salesforce as your CRM while Odoo handles ERP, finance, and operations. Native bidirectional sync — accounts, opportunities, contacts, orders, invoices, and payment status flow between platforms in real time. Pattern of choice for businesses that won't move off Salesforce but need real ERP they don't have today.
Last reviewed:
What it is
Bidirectional real-time integration between Salesforce CRM and Odoo ERP. Accounts and contacts sync between platforms (typically Salesforce as master for customer data). Opportunities that close in Salesforce flow to Odoo as sales orders. Odoo invoices for those orders push back to Salesforce so the sales rep sees billing status against their opportunity. Payment status updates from Odoo flow to Salesforce. Product catalog sync between Salesforce CPQ (if used) and Odoo Inventory. Built on Salesforce REST API + Apex with Platform Events for reliable webhook-style sync.
Why it matters
Salesforce is the global standard for CRM and many businesses won't (or shouldn't) move off it — sales teams that live in Salesforce, deep Salesforce customisation, AppExchange dependencies. But Salesforce isn't ERP — no native inventory, no manufacturing, no real accounting. Many Salesforce-led businesses end up running NetSuite or SAP for ERP at significant cost. Odoo as the ERP layer paired with Salesforce as the CRM is a meaningfully cheaper combination at the mid-market level (Salesforce alone covers CRM; Odoo Enterprise Custom at USD 38/user/month covers everything else). Production-grade integration makes this combination work seamlessly.
Features
-
Bidirectional accounts + contacts sync
Salesforce accounts and contacts (typically as master) sync to Odoo partners. Changes propagate within seconds via Platform Events. De-duplication rules configurable.
-
Opportunity-to-order automation
Salesforce opportunities at 'Closed Won' stage automatically create Odoo sales orders with appropriate products, quantities, pricing, payment terms. Sales rep doesn't manually re-key.
-
Invoice + payment status feedback
Odoo invoices for completed orders push back to Salesforce with invoice number, due date, status (draft / sent / paid / overdue). Salesforce dashboards show pipeline + delivery + collections in one view.
-
Product catalog sync
Salesforce Products + Price Books synced with Odoo's product catalog (Odoo as master). Salesforce CPQ products map to Odoo's product variants and pricing.
-
Salesforce CPQ support
Salesforce CPQ (Configure-Price-Quote) outputs sync to Odoo as configured sales orders with appropriate line-item configuration. Discount approvals, bundle pricing, time-based pricing all preserved.
-
Custom field mapping
Salesforce custom fields on accounts, opportunities, products mapped to Odoo custom fields. Common patterns: industry segmentation, account tier, payment terms, sales-rep ownership.
-
Multi-currency
Salesforce multi-currency setups reconciled with Odoo's multi-currency accounting. FX gain/loss handled on currency-mismatch transactions.
-
Entra ID / Okta SSO compatibility
Both platforms typically use enterprise SSO (Entra ID / Okta / OneLogin). Integration respects SSO; no separate credentials.
-
Error handling + monitoring
Sync errors surface in Odoo's integration log + Salesforce's debug log. Failed sync events automatically retry with exponential backoff; persistent failures escalate to support team.
-
Salesforce Lightning + Classic support
Works with both Salesforce Lightning Experience and Classic UI. Lightning Web Components used where Salesforce-side UX customisation is part of the integration.
How it works
-
Discovery + Salesforce audit
Audit your Salesforce setup (objects in use, custom fields, CPQ presence, custom Apex code), Odoo state, and the specific flows that need integration. Output: written integration spec.
-
Salesforce + Odoo configuration
Configure Salesforce Connected App for REST API access. Configure Odoo's Salesforce connector with field mappings and sync rules. Set up Platform Events for real-time triggers.
-
Sandbox build + UAT
Build integration against Salesforce sandbox + Odoo staging. Run sample flows: opportunity → order → invoice → payment. Sales rep + finance team validate.
-
Initial data sync
Bulk sync of existing Salesforce accounts and contacts to Odoo (or vice versa for new Salesforce instances). De-duplication rules applied. Reconciliation report produced.
-
Production cutover
Switch to live Salesforce instance. First 48 hours monitored intensely. Sales reps onboarded to the new opportunity → order flow.
-
Ongoing maintenance
Salesforce 3 releases per year (Spring / Summer / Winter); integration tested against Salesforce sandboxes pre-release. Apex code in the integration stays current with Salesforce platform changes.
Deployment timeline
Standard Salesforce + Odoo integration: 6–10 weeks fixed-price. With Salesforce CPQ: 8–12 weeks. Multi-currency, multi-entity: 10–14 weeks. Migration from existing Salesforce-NetSuite integration to Salesforce-Odoo: 8–12 weeks (after the underlying NetSuite-to-Odoo migration).
Best for
Businesses where Salesforce is deeply established as the CRM and won't be replaced, but operations / ERP are inadequate (or being replaced). Particularly: B2B SaaS companies running Salesforce + QuickBooks where finance needs upgrade; mid-market manufacturers running Salesforce CPQ + spreadsheets for operations; professional services firms with Salesforce Service Cloud but no project costing; multi-entity groups where Salesforce manages global CRM and Odoo runs entity-level operations. Not always a fit for businesses where Salesforce is light-touch — those can usually move to Odoo CRM and consolidate to one platform.
Frequently asked questions
-
Why not just move off Salesforce to Odoo CRM?
If Salesforce is light-touch in your business, that's the right answer — see [/compare/odoo-vs-salesforce](/compare/odoo-vs-salesforce) for the migration case. But businesses with deep Salesforce customisation, AppExchange dependencies, established sales workflows, and enterprise sales motions usually shouldn't move off Salesforce. For them, the integration pattern lets you keep Salesforce's value while adding Odoo's ERP capability at meaningfully lower cost than alternatives.
-
Can we use this pattern with Salesforce Lightning + CPQ?
Yes — Salesforce CPQ output (quotes converted to opportunities) flows to Odoo as configured sales orders. Bundle pricing, discount approvals, time-based pricing preserved. CPQ is one of the more complex Salesforce patterns but well-trodden in our integration work.
-
What's the integration cost?
Standard Salesforce + Odoo integration (accounts, contacts, opportunities, orders, invoices, payments): USD 18,000–35,000. With Salesforce CPQ: USD 25,000–55,000. Multi-currency / multi-entity: USD 35,000–80,000. Compare to Salesforce + NetSuite total cost: typically USD 250,000+ over 3 years; Salesforce + Odoo saves USD 150,000–250,000.
-
What about Service Cloud?
If you use Service Cloud, customer service cases stay in Salesforce. Odoo accesses customer service data via the integration for context (delivery status, recent orders, accounting balance). Odoo Helpdesk can run alongside Service Cloud for internal-team support or specific service workflows where Service Cloud is overkill.
-
Will it work with our existing Salesforce custom Apex code?
Yes — the integration coexists with custom Apex. Discovery includes a review of your Salesforce Apex codebase to ensure the integration doesn't conflict with custom triggers or Flow rules. Some integrations need light Apex modifications on the Salesforce side, scoped during discovery.
-
How does payment status feedback work?
When an Odoo invoice goes from 'sent' to 'paid', a Platform Event triggers a Salesforce update — the opportunity's billing-status field updates. Sales reps see in real time which deals are paid, which are overdue, which are in collections. Improves sales-finance alignment meaningfully.
-
What about Salesforce Marketing Cloud or Pardot?
Marketing Cloud / Pardot continue on the Salesforce side. Marketing campaign data flows to Salesforce (as today); the sales pipeline opens into the integration to Odoo when opportunities are converted. Marketing-to-revenue attribution stays in Salesforce; revenue-to-margin attribution lives in Odoo.
-
Can we have Odoo as master for products?
Yes — typical pattern. Odoo's product catalog (with cost, inventory, supplier data) is master; Salesforce Products + Price Books are synced views. This makes sense because product master is operational data and Odoo carries the operational truth.
-
What about migrating Salesforce data to Odoo?
Not what this integration is for. This is for coexistence. If you want to migrate Salesforce data INTO Odoo CRM (and decommission Salesforce), that's a different engagement — see [/compare/odoo-vs-salesforce](/compare/odoo-vs-salesforce) for migration discussion.
-
How does the integration handle Salesforce's 3 yearly releases?
Integration code is tested against Salesforce sandboxes 4–6 weeks before each release. Any platform changes that affect the integration get patched and validated before the release goes live. Customers don't see breakage from Salesforce releases.
-
Is there a Salesforce AppExchange listing?
Not currently. The integration is partner-built per customer. AppExchange-style packaged listing is on the roadmap but each customer's Salesforce setup is sufficiently different that a packaged app would still need customisation per deployment.
-
What's the first step?
30-minute scoping call. Bring: Salesforce edition (Professional / Enterprise / Unlimited / Plus), key custom objects, CPQ usage, current ERP / accounting, integration goals. We'll outline scope and propose discovery week.