For AI agents: the complete documentation index is available at https://docs.ovhcloud.com/pt/llms.txt, the full documentation bundle is available at https://docs.ovhcloud.com/pt/llms-full.txt, and this page is available as Markdown at https://docs.ovhcloud.com/pt/guides/public-cloud/data-platform/connectors-sources-odoo.md.

Extract Odoo ERP data with the Data Platform connector

Ver como Markdown

The Odoo connector extracts data from any Odoo ERP instance: contacts, CRM leads, sales orders, invoices, products, inventory, HR, projects, and more

Objective

The Odoo connector extracts data from any Odoo ERP instance: contacts, CRM leads, sales orders, invoices, products, inventory, HR, projects, and more.

26 predefined models covering 9 domains + a custom model endpoint for any Odoo model + a model fields endpoint for schema introspection.

The connector returns raw JSON from the Odoo JSON-RPC API. The platform automatically flattens nested objects into columns and stores the result in the lakehouse. No manual schema definition needed.

Compatible with Odoo 14–19.

1. Get an API Key

  1. Log in to your Odoo instance
  2. Click your avatar (top right) > My Profile
  3. Go to the Account Security tab
  4. Click New API Key
  5. Enter a description (e.g., data-platform-connector)
  6. Click Generate Key
  7. Copy the key immediately: it is shown only once
Info

Odoo Online: API access requires the Custom plan. See Odoo Pricing.

2. Configure Credentials

FieldRequiredDescription
URLYesYour Odoo instance URL (e.g., https://mycompany.odoo.com)
LoginYesYour Odoo login email
API KeyYesThe API key generated above
DatabaseNoAuto-detected for *.odoo.com URLs. Required for self-hosted instances.

3. Available Endpoint Types

models: Predefined Models

26 commonly-used Odoo models, grouped by domain:

DomainModels
Contactsres.partner
CRMcrm.lead, crm.stage, crm.team
Salessale.order, sale.order.line
Purchasespurchase.order, purchase.order.line
Invoicingaccount.move, account.move.line, account.journal
Productsproduct.template, product.product, product.category
Inventorystock.picking, stock.move, stock.warehouse, stock.location
HRhr.employee, hr.department
Projectsproject.project, project.task
Systemres.users, res.company, res.country, res.currency

Parameters:

ParameterTypeRequiredDescription
ModelselectYesOdoo model to extract
Fields FiltertagsNoSpecific fields to include (empty = all)
Domain FiltertextNoOdoo domain filter in JSON (empty = all records)
Max ItemsnumberNoMax records to extract (empty = all)

custom_model: Any Odoo Model

For models not in the predefined list (e.g., helpdesk.ticket, mrp.production, fleet.vehicle).

ParameterTypeRequiredDescription
Model NametextYesFull technical model name (e.g., helpdesk.ticket)
Fields FiltertagsNoSpecific fields to include
Domain FiltertextNoDomain filter in JSON
Max ItemsnumberNoMax records

model_fields: Schema Introspection

Returns field definitions for any model (name, type, required, help text, relation). Useful to discover available fields before extracting data.

ParameterTypeRequiredDescription
Model NametextYesModel to inspect (e.g., res.partner)

4. Add an Odoo source on Data Platform

  1. In the Data Platform Connectors, find Odoo in the source store and click Select.
  2. Fill in the connection fields from step 2, URL, Login, API Key, and (for self-hosted) Database.
  3. Click Connect to verify the credentials. The connector authenticates via JSON-RPC and resolves your Odoo uid.
  4. Click Add an Endpoint, choose models, custom_model, or model_fields from the dropdown, and fill in the parameters that endpoint requires (e.g. Model, optional Fields Filter, optional Domain Filter, optional Max Items).
  5. Repeat step 4 for every additional endpoint you want to ingest in this source. Each becomes a separate table in the lakehouse.
  6. Name the source and click Create.
Warning

The technical name cannot be changed after the source is created. It is used when opening the source via the Data Platform SDK.

5. Quick Example: Extract Contacts

  1. Endpoint: models
  2. Model: res.partner (Contacts)
  3. Fields Filter: name, email, phone, is_company, city, country_id
  4. Max Items: 100 (or empty to extract all)

The connector returns raw JSON from the Odoo API. The platform automatically flattens nested objects and stores the result in the lakehouse.

6. Domain Filter Syntax

The domain filter uses Odoo's Polish (prefix) notation. Enter it as a JSON array:

[["state", "=", "sale"], ["amount_total", ">", 1000]]

Common operators: =, !=, >, <, >=, <=, in, not in, like, ilike

OR conditions use the | prefix:

["|", ["type", "=", "lead"], ["type", "=", "opportunity"]]

Leave empty [] to extract all records.

7. Best Practices

Use the fields filter

Without a filter, Odoo returns all fields: some models have 200+ fields. Use the fields filter to keep only what you need, especially for large models like res.partner.

Start with max_items

Set max_items to 10 or 100 to test quickly. Remove the limit once satisfied.

Use model_fields to discover fields

The model_fields endpoint returns the complete schema for any model. Use it to find field names, types, and relationships before setting up extraction.

Stages and reference tables

Extract crm.stage, account.journal, product.category as reference tables. Join them with main data on the stage/journal/category ID fields.

8. Known Limitations

  • Model availability depends on installed apps. Models like crm.lead require the CRM app, sale.order requires Sales, etc. Use custom_model to test if a model exists on your instance.
  • Some fields require specific user groups. For example, project.project.stage_id requires the "Use Stages on Project" group. If you get a permission error, use fields_filter to exclude restricted fields.
  • Odoo Online API access requires the Custom plan. See Odoo Pricing.
Info

For detailed technical information (auth internals, full endpoint reference, pagination, rate limits, output format, domain filter reference, version compatibility, limitations), see the Odoo Technical Reference.

Go further

If you need training or technical assistance to implement our solutions, contact your sales representative or click on this link to get a quote and ask our Professional Services experts for a custom analysis of your project.

Ask questions, give your feedback and interact directly with the team building the Data Platform on the dedicated Discord channel.

If you need support with your OVHcloud services, create a request in our Help Centre.

Join our community of users.

Esta página foi útil?