DatriseAI-first ETL

Source connector

Odoo CRM connector

Odoo CRM integration for databases, warehouses and BI tools

Modular CRM in the Odoo suite for leads, opportunities, and revenue. Datrise captures Odoo CRM entities such as modular CRM entities, opportunities, and revenue process data, then lands normalized and typed models for warehouse reporting, attribution, and AI workflows.

The Odoo External API (XML-RPC and JSON-RPC, execute_kw on the /object endpoint) authenticates with username / password, API key, incremental runs key on write_date, and Odoo CRM caps calls at no fixed quota is published; Odoo's Acceptable Use Policy calls unsustained RPC/API calls of 1 call/second with no parallel calls typically acceptable and flags unthrottled bulk calling as abuse.

Of the 3 objects, 3 sync as upserts keyed on the primary key and 0 as append-only streams, so each incremental run moves only what changed since the last watermark. Every object lands in its own table (for example `odoo_crm_modular_crm_entities`) with a schema derived from the Odoo CRM API rather than a flattened CSV, in any of the 43 supported destinations.

Datrise is in early access: pick a destination below to open the Odoo CRM pipeline page, and join the waitlist to get the Odoo CRM connector (CRM) with guided onboarding.

Incremental syncSchema-aware mapping43 destinations available

What Odoo CRM data Datrise extracts

Each object lands in its own typed table. Sync mode is derived from the object: history-style objects append, everything else upserts.

ObjectLanding tableSync mode
modular CRM entitiesodoo_crm_modular_crm_entitiesUpsert by primary key, incremental on updated-at
opportunitiesodoo_crm_opportunitiesUpsert by primary key, incremental on updated-at
revenue process dataodoo_crm_revenue_process_dataUpsert by primary key, incremental on updated-at

Odoo CRM API: setup facts for the connector

Verified against the vendor documentation on 2026-09-07. Unknown values are left blank rather than guessed.

APIOdoo External API (XML-RPC and JSON-RPC, execute_kw on the /object endpoint)
Authenticationusername / password, API key — Odoo has no OAuth for the external API; you authenticate an XML-RPC/JSON-RPC call with database name, username, and either the account password or an API key generated under Preferences > Account Security, then reuse the returned uid on every execute_kw call.
Paginationoffset — search_read takes offset and limit keyword arguments to page through crm.lead (and any other model); there is no cursor or page token.
Rate limitno fixed quota is published; Odoo's Acceptable Use Policy calls unsustained RPC/API calls of 1 call/second with no parallel calls typically acceptable and flags unthrottled bulk calling as abuse
Incremental cursorwrite_date — write_date is an automatic, read-only datetime field Odoo updates on every record write, so filtering crm.lead with a write_date >= domain is the standard incremental pattern.
WebhooksYes — Studio Automation Rules with an outbound webhook action (POSTs a payload to an external URL on a record trigger)
Bulk exportNo
Deletes detectableNo — unlink() hard-deletes the row (the vendor docs' own example calls search afterward to show the id no longer exists); crm.lead has no vendor-documented is_deleted flag, so removals are only visible as ids that stop being returned by search

Official API reference

What bites when replicating Odoo CRM

  • External API access is gated by pricing plan: Odoo's docs state it is only available on Custom plans and is not available on One App Free or Standard plans, so a target database may reject execute_kw entirely.
  • There is no dedicated bulk/batch read endpoint; search_read's offset/limit pagination over crm.lead is the only path, and the vendor's own Acceptable Use Policy asks integrators to throttle to about 1 call/second with no parallel calls.
  • unlink() performs a hard delete with no soft-delete flag documented for crm.lead, so a connector must diff id lists across syncs to detect removed leads rather than filtering a deleted column.
  • write_date moves on any field write to the record, not just pipeline-relevant changes, so an incremental filter on it can re-pull leads whose stage or amount never changed.

Compare this against every other documented API

Popular destinations for Odoo CRM

Choose a destination below to open the ready pipeline page.

  • A
    Airtable

    Relational spreadsheet destination for ops and go-to-market teams.

    View pipeline
  • A
    Amazon Athena

    Serverless SQL over S3 data lake tables.

    View pipeline
  • A
    Amazon DynamoDB

    Serverless key-value and document store on AWS.

    View pipeline
  • A
    Amazon QuickSight

    AWS serverless BI with SPICE and embedded analytics.

    View pipeline
  • A
    Amazon Redshift

    AWS petabyte-scale warehouse with Spectrum.

    View pipeline
  • A
    Amazon S3 Data Lake

    Object storage landing zone for parquet and snapshots.

    View pipeline
  • A
    Apache Superset

    Open-source BI for SQL exploration, charts, and dashboard publishing.

    View pipeline
  • A
    Azure Data Lake Storage

    ADLS Gen2 object storage for analytics workloads.

    View pipeline
  • A
    Azure Synapse

    Microsoft analytics workspace with SQL pools.

    View pipeline

Odoo CRM connector FAQ

What Odoo CRM data does the connector extract?
3 objects: modular CRM entities, opportunities and revenue process data. Each lands in its own table with types preserved; history-style objects (0) load as append-only streams.
Is the Odoo CRM integration incremental?
Yes. After the initial full load, every run reads only records changed since the last watermark (updated-at or event timestamp) and applies an upsert or an append depending on the object.
Where can I load Odoo CRM data?
Into 43 destinations: relational databases, cloud warehouses, data lakes, spreadsheets and BI tools. Each Odoo CRM → destination pair has its own page with the object-to-table mapping.

Related CRM sources

Other sources in the same category, each with its own connector page.

Early access

Launch your Odoo CRM pipeline with guided onboarding

Join the waitlist to get priority access for Odoo CRM integrations with guided setup, schema-aware mapping, and production-grade incremental sync.