Skip to content
ERP · Two-way sync platform

Odoo integration.

Connect your Odoo workflow to the systems your business runs on. Work with a Stacksync engineer to confirm the connection and required operations, starting with Invoices (account.move), Products (product.template / product.product) and Contacts (res.partner).

  • Review your systems with an integration engineer
  • Get a scoped implementation and validation plan

Adopted by fast-scaling companies moving mission-critical data in real time

Case study
Migrated from MuleSoft
Case study
Migrated from Celigo
Migrated from Heroku Connect
Migrated from Matillion
Case study
Migrated from Fivetran
Case study
Migrated from Celigo
Record types

Odoo records to discuss.

These Odoo record examples help scope a technical review. They are not a list of verified Stacksync operations.

Contacts (res.partner)
Use a stable person/contact ID and an explicit cross-system lookup. Email can change and can be shared, so treat it as a matching clue rather than a universal key.
Sales Orders (sale.order)
Preserve both the order ID and stable line IDs. Allow one order to relate to several shipments or invoices.
Invoices (account.move)
Retain the invoice ID, issuer/legal entity, and original order reference; invoice numbers alone may overlap.
See 3 more record examples
Products (product.template / product.product)
Distinguish the product ID, variant ID, SKU, and price-list entry; they are not interchangeable keys.
CRM Leads (crm.lead)
Identify this record type and the operation you need to review with Stacksync.
Purchase Orders (purchase.order)
Retain purchase-order and line IDs together with the supplier and legal-entity context.
Connection setup

Odoo connection requirements.

Review Odoo access and the operations your workflow needs with Stacksync. The vendor API reference below can help your administrator prepare for that discussion.

Prepare access and scope for the engineering review
  • Identify the Odoo account, edition, environment, and business objects the integration must access.
  • Confirm a Stacksync connector or implementation path for Odoo, including read/write support, authentication, and initial-load limits.

Integration design

Match records and fields for your Odoo integration.

Choose whether the integration moves master data, reports transactions, or creates an approved financial document. Preserve entity, currency, accounting period, and header/line references.

Use these design questions to prepare a representative record and the business rules your integration must preserve.

Explore record matching and field-mapping checks
OdooSource record IDKeep the account and record type
Record matchingSource ID ↔ destination IDLink the same record across systems
Selected destinationDestination record IDPreserve its local key and rules
Conceptual identity model. Keep source and destination IDs linked so an update reaches the right record. Confirm the supported sync direction separately.
Match the same record in both systems
Retain the invoice ID, issuer/legal entity, and original order reference; invoice numbers alone may overlap.
Load related records in the right order
Resolve the customer or supplier, account codes, tax, currency, and accounting period before posting.

Mapping checks by record type

Invoices (account.move)

Confirm object support with Stacksync

Identity
Retain the invoice ID, issuer/legal entity, and original order reference; invoice numbers alone may overlap.
Fields to consider
Source invoice ID · Customer or supplier reference · Line totals · Currency · Posting/payment status
Related records to resolve first
Resolve the customer or supplier, account codes, tax, currency, and accounting period before posting.
Test before going live
Test a posted invoice, a partial payment, tax rounding, and a closed accounting period. Compare financial totals within the same entity and currency.

Products (product.template / product.product)

Confirm object support with Stacksync

Identity
Distinguish the product ID, variant ID, SKU, and price-list entry; they are not interchangeable keys.
Fields to consider
Source product ID · SKU or variant reference · Description · Unit of measure · Price-list reference
Related records to resolve first
Resolve units, variants, categories, and applicable price lists before order lines.
Test before going live
Test two variants of one product, a changed SKU, and a price that applies to only one market or currency.

Contacts (res.partner)

Confirm object support with Stacksync

Identity
Use a stable person/contact ID and an explicit cross-system lookup. Email can change and can be shared, so treat it as a matching clue rather than a universal key.
Fields to consider
Source person ID · Display name · Email address · Organization reference · Consent state
Related records to resolve first
Resolve the organization relationship and any owner or consent references required by the destination.
Test before going live
Test an email change, two records sharing an email, and a person associated with multiple organizations.

Sales Orders (sale.order)

Confirm object support with Stacksync

Identity
Preserve both the order ID and stable line IDs. Allow one order to relate to several shipments or invoices.
Fields to consider
Source order ID · Customer reference · Line references and quantities · Order status · Currency
Related records to resolve first
Create or locate the customer and products first; resolve taxes, currency, and fulfillment references.
Test before going live
Test a multi-line order, a partial cancellation, and two partial shipments. Compare line totals as well as the header.

Purchase Orders (purchase.order)

Confirm object support with Stacksync

Identity
Retain purchase-order and line IDs together with the supplier and legal-entity context.
Fields to consider
Source purchase-order ID · Supplier reference · Line references · Quantity · Approval status
Related records to resolve first
Resolve supplier, product, business unit, and delivery-location references before lines.
Test before going live
Test a partially received purchase order and an amendment after approval.

Inventory Transfers (stock.picking)

Confirm object support with Stacksync

Identity
Identify stock by product/variant, location, and any lot or serial dimension; a product ID alone is insufficient.
Fields to consider
Product reference · Location reference · Quantity type · Quantity · As-of time
Related records to resolve first
Resolve product, unit, warehouse/location, and lot/serial references.
Test before going live
Test the same SKU in two locations, a reservation, and an older snapshot arriving late.

Download the field-mapping workbook (CSV) to capture the actual API fields, matching keys, owners, and test results. Use it as you build with your team or a Stacksync engineer.

Setup and validation

Validate the Odoo integration in four steps.

Reconcile totals within the same entity and currency. A repeated delivery does not post the same financial transaction twice.

View the four setup tests and expected results
  1. Verify Odoo connectivity and database privileges

    After confirming an implementation path, validate the selected access method from the integration network to the intended host, database, and schema. Have the administrator demonstrate the permissions required for both the first read and later change capture.

    Expected result: The approved role can access the selected data and capture later changes without depending on an administrator’s personal session.

  2. Test record matching for Invoices (account.move)

    Using the implementation established in the compatibility review, preserve the selected source ID and resolve the required references. Test a posted invoice, a partial payment, tax rounding, and a closed accounting period. Compare financial totals within the same entity and currency.

    Expected result: Reconcile totals within the same entity and currency. A repeated delivery does not post the same financial transaction twice.

  3. Test the operation your workflow needs

    Review one Odoo record with a Stacksync engineer. Confirm how it should reach the other system, how often it must update, and whether your workflow needs reads, creates, or updates. Test those operations before expanding the integration.

    Expected result: The selected operation is confirmed, addresses the intended record, and exposes rejected values for repair.

  4. Test recovery and name the support owner

    For the confirmed implementation, interrupt a non-production transfer and restore access. Establish whether recovery uses the current source state or a stored historical event, and verify that repeated delivery preserves record identity.

    Expected result: The records have the expected current values, repeated delivery creates no duplicate business record, and your team knows who handles unresolved errors.

Use the production-readiness checklist to record test results, assign support owners, and agree on when to go live.

Troubleshooting

Troubleshoot your Odoo integration.

Diagnose record matching, delayed changes, and rejected operations
A Odoo record appears under the wrong destination record
Retain the invoice ID, issuer/legal entity, and original order reference; invoice numbers alone may overlap. Resolve the customer or supplier, account codes, tax, currency, and accounting period before posting. Repair the ID relationship before repeating the operation.
The first load looks correct but later results differ
Confirm the selected Odoo implementation’s change-detection method for Invoices (account.move), Products (product.template / product.product) and Contacts (res.partner). Compare later changes with the original source rather than using a successful initial copy as evidence of ongoing capture.
One operation succeeds while another is rejected
Check the specific Odoo object, field permissions, required references, and allowed operation. A successful read does not establish that a create, update, deletion, or business action is available.

Review retry, replay, and recovery behavior before repeating an operation that may already have succeeded.

Review your Odoo workflow with an engineer

FAQ

Odoo connector FAQ

How should I plan an integration with Odoo?

Choose whether the integration moves master data, reports transactions, or creates an approved financial document. Preserve entity, currency, accounting period, and header/line references. Confirm the connection and read/write operations with Stacksync. Start with one workflow, agree on which fields each system owns, then test initial data, later changes, and recovery before expanding.

Can the Odoo connector write changes back?

Write-back support is not established for this connection. Review the Odoo records and fields you need with a Stacksync engineer, then test the required operation with a representative record.

Which identifiers should I preserve for Odoo data?

Retain the invoice ID, issuer/legal entity, and original order reference; invoice numbers alone may overlap.

Which related records should I load first for Odoo?

Resolve the customer or supplier, account codes, tax, currency, and accounting period before posting.

How do I validate Odoo changes after the initial load?

Test a posted invoice, a partial payment, tax rounding, and a closed accounting period. Compare financial totals within the same entity and currency. Reconcile totals within the same entity and currency. A repeated delivery does not post the same financial transaction twice.

What should I include when estimating Odoo integration costs?

Estimate the number of Invoices (account.move), Products (product.template / product.product) and Contacts (res.partner) records, the history to load, ongoing changes, and required environments. Include API access, the integration service, destination storage or processing, and the work to maintain mappings and recover from errors. Review current provider pricing against that workload, including any account or API upgrades.

Explore Odoo connections

Choose the other system in your workflow. Each guide explains the connection options, available operations, field mapping, and setup checks for that pair.

268 integration guides

SECURITY

Security teams trust Stacksync

As a data company, we understand the importance of keeping your data secure. Stacksync is built with security best practices to keep your data safe at every layer, and is DPF-certified for US, EU, UK and CH data transfers.

SOC 2 Type II
ISO 27001
HIPAA BAA
GDPR
CCPA
DPF US-EU-UK-CH
→ SECURITY WITH BENEFITS

SSO & SCIM

Let your users access Stacksync from your centralized user management systems. Works with Okta, Azure, Google SSO and more.

Alerts

Immediately get alerted about record syncing issues over email, Slack, PagerDuty and WhatsApp. Resolve issues from a centralized dashboard with retry and revert options.

Secure connection options

Securely connects to your systems with:

Coworkers laughing in front of a laptop in a casual office setting

Connect the systems your business runs on.
Build your next workflow with Stacksync.