OdooBots
Loading
Integration · Salesforce

Odoo Salesforce integration

Businesses that run Salesforce rarely want to leave it. The sales team is trained, the reports are built, and the pipeline is the one number the board looks at. What they want is for a closed-won opportunity to stop being re-typed into the ERP by hand.

That makes this integration a boundary question before a technical one. Salesforce keeps the pipeline; Odoo keeps stock, delivery, invoices and cash. The connection carries the handover and sends the result back.

Karthik RajOdoo Technical Consultant, 10+ years| Reviewed by Suresh Babu| Updated 20 October 2026| Covers Odoo 16–19, Community & Enterprise
0Odoo projects delivered
0Consultants & developers
Closed-wonBecomes an order, not a retype
ChennaiAmbattur, Tamil Nadu
Odoo salesforce integration — Salesforce opportunities becoming sales orders and invoices in Odoo ERP
630
630+ projectsdelivered on Odoo

Businesses running Odoo with OdooBots

Dhanalakshmi Industries logo Sanjeev Autoparts logo Electro Flux Equipments logo Anchor Marine Equipment Company logo NEXG logo PV Constructions logo SESS logo
Definition

What is Odoo Salesforce integration?

Odoo Salesforce integration carries a closed-won opportunity into Odoo as a sales order, and sends delivery and payment status back to the CRM. Accounts and contacts are matched rather than duplicated, products and price books align with Odoo products and pricelists, opportunity line items become order lines, and the salesperson sees in Salesforce whether their order shipped and whether the customer paid.

The hard part is not the sync, it is the boundary. If Salesforce keeps quoting while Odoo keeps stock, two systems will promise different delivery dates to the same customer. Deciding where a quotation is produced settles most of the design.

Boundary
The point where sales ends and fulfilment begins. Usually closed-won, and it has to be explicit.
Price book
Salesforce pricing by product and currency. Maps to an Odoo pricelist, one per book.
Account matching
Pairing a Salesforce account with an Odoo customer, on a stable key rather than on name.
Write-back
Delivery and payment status returning to the CRM so sales can answer a customer without calling accounts.
What syncs

What moves between Salesforce and Odoo

Six things move between Salesforce and Odoo, and the boundary between them decides what each one means.

Accounts and contacts

Salesforce accounts and contacts matched to Odoo customers on a stable key, with the parent relationship preserved rather than flattened.

MatchingHierarchyContacts

Products and price books

Products aligned by code and price books mapped to Odoo pricelists, so a quote in Salesforce and an order in Odoo carry the same number.

Product codePricelistsCurrency

Closed-won opportunities

An opportunity marked closed-won creating an Odoo sales order with its line items, quantities, discounts and currency intact.

Sales orderLine itemsDiscounts

Delivery status back

Picking and despatch status written back to the opportunity or account, so sales can answer a delivery question without phoning the warehouse.

DespatchTrackingWrite-back

Invoice and payment status

Invoice raised, amount and paid status visible in Salesforce, which is usually the first thing a sales team asks for and the last thing they get.

InvoicedPaidAgeing

Stock visibility

Available quantity surfaced in Salesforce where the sales team needs it, so a promise is made against a real figure.

AvailabilityPromiseRead-only
How it works

How a record travels between Salesforce and Odoo

A deal is worked entirely in Salesforce. When it closes, the opportunity creates an Odoo sales order against the matched customer, with the products and prices it was won on. Odoo reserves stock, delivers and invoices. The despatch status and the paid flag travel back, so the account manager can answer a customer question from the CRM they already live in.

Where businesses get into trouble is quoting in both. Two systems producing quotations means two sets of prices and two delivery promises, and reconciling that is a manual job forever.

  • Accounts matched on a stable key, never on company name
  • Price books mapped to pricelists so both systems quote the same number
  • Closed-won is the handover point, agreed and enforced
  • Delivery and payment status written back to the CRM
  • Stock shown in Salesforce as read-only, so promises are realistic
Odoo salesforce integration showing synchronised records between the two systems
Connected systems — how salesforce and Odoo share one set of records.
Expertise · how we work

What we settle in week one of an Odoo Salesforce integration

These are the decisions that are cheap to make now and painful to reverse once two systems have been exchanging records for a month.

  1. Where the boundary sits

    Which system quotes, and what closed-won means operationally. This single decision shapes everything else in the integration.

  2. The account matching key

    An external id held on both sides, not the company name. Name matching creates duplicates within weeks.

  3. Product code alignment

    The same product code in both systems, cleaned before the first sync. This is usually the largest preparation task.

  4. Price book to pricelist mapping

    Which Salesforce price book corresponds to which Odoo pricelist, including currency and customer-specific pricing.

  5. What is written back

    Delivery status, invoice status, paid flag, ageing. Agreed with the sales team, because unused write-back is wasted effort.

  6. Who owns the customer record

    Which system can change an address or a payment term. Both editing freely is how the two drift apart.

  7. Sandbox and release handling

    How Salesforce sandbox refreshes and release upgrades are handled, so the integration is tested before they land in production.

Trust · honest advice

Where an Odoo Salesforce integration needs work

We would rather say this before you buy licences than after. These are the areas where we scope real development, recommend a different tool, or tell you the connector will not reach.

Odoo will not replace Salesforce here

If the goal is to leave Salesforce, that is a migration project, not an integration. We will say which one you actually want.

Apex, flows and custom objects

Custom Salesforce logic and objects are not in a standard mapping and are scoped as development.

Salesforce CPQ

Configure-price-quote logic lives in Salesforce with its own rules. Aligning it with Odoo pricing needs explicit design.

API call limits

Salesforce enforces daily API limits by edition, which decides batch size and frequency more often than Odoo does.

Two-way customer editing

Letting both systems edit the same customer fields works only with conflict rules nobody enjoys maintaining.

Reporting in two places

Keeping both systems reporting on revenue means agreeing which figure is official, before someone presents the other one.

Our services

Our Odoo Salesforce integration process

Connecting Salesforce to Odoo is less about the connector than about agreeing what is true where, and what happens when a record will not go through.

  1. What you are connecting

    Understand where quoting happens today, how accounts and products are identified in both systems, and what the sales team actually needs to see back.

  2. Field and direction mapping

    Agree the boundary, the matching keys, the price book mapping and the write-back list in writing before anything is built.

  3. Build and configure

    Connect Salesforce to Odoo using the standard connector where one fits, and build only what the connector genuinely cannot reach. See Odoo customization.

  4. Test with your own data

    Your records, in a test database, including the awkward ones — the cancelled order, the partial refund, the product that exists on one side only.

  5. Error handling and alerts

    A queue for failed records with a named owner and an alert, because an integration nobody watches diverges quietly and the divergence is found at audit.

  6. Go-live and monitoring

    Cutover with a reconciliation on both sides, then hypercare, then ongoing support and AMC.

Trust · what it costs

What an Odoo Salesforce integration costs

We do not publish one integration price, because the same connector costs very differently depending on the factors below. We do publish what moves the number, and the price is fixed in writing before work starts.

  • Custom objects and fieldsSalesforce customisation beyond the standard model adds mapping work.
  • Product and account data qualityCleaning codes and removing duplicates is usually the biggest task.
  • Write-back depthEach status returned to the CRM is its own field and its own trigger.
  • Two-way editingBidirectional customer sync needs conflict rules and more testing.
  • API limitsLower Salesforce editions constrain volume and force batching.
  • CPQ alignmentMatching Salesforce quote logic with Odoo pricing is explicit design.
Why us

Why choose OdooBots for your Odoo Salesforce integration

We ask one question first: who produces the quotation. Businesses that answer it clearly get an integration that works for years; businesses that keep quoting in both end up reconciling by hand forever, whichever connector they bought.

Based inAmbattur, ChennaiTamil Nadu 600053, India
Phone+91 98414 81435Mon–Sat, business hours IST
Delivered630+ Odoo projects30+ consultants and developers
Versions supportedOdoo 16 – 19Community and Enterprise
FAQ

Odoo Salesforce integration: frequently asked questions

Can Salesforce be integrated with Odoo ERP?
Yes. Accounts and contacts are matched, products and price books align with Odoo products and pricelists, closed-won opportunities create sales orders, and delivery and payment status are written back so the sales team can answer customer questions from the CRM.
Should we keep Salesforce or move to Odoo CRM?
If the sales team is trained, the reports are built and the pipeline is trusted, keeping Salesforce and integrating is usually right. If only a fraction of Salesforce is used and the licence cost is heavy, a migration to Odoo CRM may be the honest answer, and that is a different project.
What is the hardest part of a Salesforce to Odoo integration?
Agreeing where sales ends and fulfilment begins. If both systems produce quotations, two sets of prices and two delivery promises reach the same customer. Deciding that quoting happens in one place settles most of the rest of the design.
How are accounts matched between the two systems?
On a stable external id held on both sides, not on company name. Name matching looks fine in testing and creates duplicate customers within weeks, because the same business is spelled three ways across two systems.
Can the sales team see stock and invoice status in Salesforce?
Yes, as read-only information written back from Odoo: available quantity, despatch status, invoice raised and paid. This is usually the first thing a sales team asks for and the part that makes them accept the integration.
Do Salesforce API limits affect the integration?
They can. Salesforce enforces daily API call limits by edition, which decides batch size and sync frequency more often than anything on the Odoo side. It is checked during scoping rather than discovered during go-live.
What happens when Salesforce is upgraded or a sandbox is refreshed?
The integration is tested against the sandbox before a release reaches production, and the handover includes who does that. Salesforce updates on a fixed schedule, so this is a planned maintenance activity rather than an emergency.
Can OdooBots build a custom Salesforce integration?
Yes, including custom objects and fields, CPQ alignment and two-way customer sync with conflict rules, with the error queue and alerting that keep it maintainable. See Odoo customization.
References

Sources and official documentation

Product capabilities stated on this page are documented by Odoo. The mapping advice, failure handling and limitations come from our own integrations.

Ready to connect Salesforce to Odoo?

Tell us where quotations are produced today and whether you intend to keep Salesforce long term. Those two answers decide the scope, and the diagnosis call is free.