Skip to main content

Odoo ERP

Odoo is a comprehensive open-source Enterprise Resource Planning (ERP) platform that unifies business operations across sales, accounting, inventory, manufacturing, human resources, project management, and marketing into a single, integrated system. Built on a modular architecture with over 30 core applications, Odoo enables organizations to streamline workflows, share real-time data across departments, and automate business processes—eliminating the need for multiple disconnected tools. Available in both Community (open-source) and Enterprise editions, Odoo serves businesses of all sizes seeking a flexible, customizable ERP solution with extensive API capabilities for third-party integrations.

Odoo ERP icon

Power end-to-end data operations for your Odoo ERP API with Nexla. Our bi-directional Odoo ERP connector is purpose-built for Odoo ERP, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Odoo ERP or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Odoo ERP workflows fast, secure, and fully governed.

Features

Type: API

SourceDestination

  • Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
  • Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
  • API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
  • Request optimization with intelligent batching, retry, and caching to minimize API calls and costs

Prerequisites

To connect Nexla to your Odoo instance, you will need the following information from your Odoo deployment and user account.

Odoo Instance Details

You will need your Odoo Server URL and Database Name before creating a credential in Nexla.

  • Server URL: This is the domain of your Odoo instance (e.g., https://mycompany.odoo.com for Odoo Online, or your self-hosted URL such as https://erp.example.com). You can find this in your browser's address bar when logged into Odoo.

  • Database Name: For Odoo Online accounts, the database name is typically the subdomain of your instance URL (e.g., mycompany for https://mycompany.odoo.com). For self-hosted Odoo, the database name can be found in Settings > Technical > Database Structure or by contacting your Odoo administrator.

User Account with API Access

You will need an Odoo user account with sufficient permissions to access the data models you wish to integrate. The user must have at minimum read access to the Odoo models (database tables) that you plan to use as data sources, and write access for any models you intend to use as destinations.

Authentication Credential: Password or API Key

Odoo supports two methods for authenticating external API connections: using a standard account password, or using a dedicated API key (available in Odoo 14 and later). Using an API key is the recommended approach for integrations because it can be revoked or regenerated independently without changing your main account password.

To generate an API key for use with Nexla, follow these steps in your Odoo instance:

  1. Log in to your Odoo account.

  2. Click on your profile icon (your name or avatar) in the top-right corner of the screen to open the user menu.

  3. Select Preferences from the dropdown menu.

  4. In the Preferences screen, click on the Account Security tab.

  5. Scroll down to the API Keys section and click the New API Key button.

  6. Enter your account password when prompted to confirm your identity, then click Confirm Password.

  7. Enter a clear, descriptive name for the key in the Key Description field (e.g., "Nexla Integration"). This description is the only way to identify the key later, so choose a name that clearly indicates its purpose.

  8. Click Generate Key.

  9. Copy the generated API key immediately and store it in a secure location such as a password manager. Odoo will not display this key again after you close the dialog.

The API key provides the same level of access as your account password for API operations. Treat it with the same care as your password. If the key is compromised, you can revoke it from the Account Security tab without affecting your main account credentials or other API keys.

Authenticate

Credentials required

FieldRequiredSecretDescription
Odoo Server URLYesNoThe server url is the instance's domain (e.g. https://mycompany.odoo.com)
Odoo Database NameYesNoThe database name is the name of the instance (e.g. mycompany)
UsernameYesNoThe username is the configured user's login as shown by the Change Password screen.
PasswordYesNoPassword or API Key

Create a credential in Nexla

  1. After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.

  2. Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.

  3. Enter the URL of your Odoo instance in the Odoo Server URL field. This should be the complete base URL including the protocol (e.g., https://mycompany.odoo.com). Do not include a trailing slash or any path segments.

  4. Enter the name of your Odoo database in the Odoo Database Name field. For Odoo Online accounts, this is typically the subdomain of your instance URL (e.g., mycompany). For self-hosted deployments, enter the database name configured during setup.

  5. Enter the login email address associated with your Odoo user account in the Username field.

  6. Enter your account password or API key in the Password field. Using an API key is recommended for integrations—see Prerequisites above for instructions on generating an API key.

    Nexla authenticates with Odoo using the XML-RPC API over HTTPS. Ensure that your Odoo instance is accessible from the internet and that external API access has not been disabled in your Odoo configuration. For self-hosted deployments, verify that your server's firewall allows HTTPS traffic from Nexla's IP ranges.

  7. Click the Save button at the bottom of the overlay to save the configured credential. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation.

Use as a data source

To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Odoo ERP connector tile, then select the credential that will be used to connect to the Odoo instance, and click Next; or, create a new Odoo ERP credential for use in this flow.

Manual configuration

Odoo ERP sources are configured entirely through the Advanced tab, since Odoo does not expose separate pre-built endpoint templates. The Odoo external API supports both the XML-RPC protocol (available in all Odoo versions) and a REST API (available in Odoo 17 and later). First, select GET (for Odoo REST API endpoints) or POST (for XML-RPC calls, or REST endpoints that require a request body, such as search operations) from the Method pulldown menu. Then enter the endpoint URL in the Set API URL field—for example, https://mycompany.odoo.com/api/sale.order (REST API, sales orders) or https://mycompany.odoo.com/xmlrpc/2/object (XML-RPC object operations). Follow the instructions in Connect to Any API to configure date/time and lookup macros, path to data, metadata, and request headers.

The Odoo REST API (Odoo 17+) supports filtering records directly in the URL using query parameters such as domain and fields—for example, append ?domain=[["state","=","sale"]]&fields=["name","partner_id","amount_total"] to retrieve only confirmed sales orders with specific fields. Date/time macros are useful in the domain filter parameter to retrieve only records modified after a given date, enabling incremental ingestion. For Path to Data, the REST API returns results as a JSON array at the root level ($[*]), while XML-RPC responses return results inside a result property ($.result[*]). Additional request headers may be required for REST API versioning or API key authentication via the X-Api-Key header. For complete endpoint and parameter details, see the Odoo External API documentation.

Once all of the relevant settings have been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched, and click the Create button in the upper right corner of the screen to save and create the new Odoo ERP data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.

Use as a destination

Click the + icon on the Nexset that will be sent to the Odoo ERP destination, and select the Send to Destination option from the menu. Select the Odoo ERP connector from the list of available destination connectors, then select the credential that will be used to connect to the Odoo instance, and click Next; or, create a new Odoo ERP credential for use in this flow.

Manual configuration

Odoo ERP destinations can be manually configured to send data to any valid Odoo API endpoint. Common use cases include creating or updating records in Odoo models such as contacts (res.partner), sales orders (sale.order), invoices (account.move), inventory (stock.quant), and HR records (hr.employee). Select the API method that matches the operation from the Method pulldown menu—POST to create new records or make XML-RPC/JSON-RPC calls, PUT to replace existing records entirely, PATCH to update specific fields on an existing record, or DELETE to remove records. Select JSON as the Content Format for most Odoo REST API and JSON-RPC endpoints. Then enter the endpoint URL in the URL field, including the record ID at the end of the URL for update or upsert operations (e.g., https://mycompany.odoo.com/api/sale.order/42 with PATCH to update order 42). Follow the instructions in Connect to Any API to configure request headers, attribute exclusions, record batching, and response webhooks.

When using the Odoo REST API (Odoo 17+) to update records, you must include the record's numeric ID in the endpoint URL; to create records, use the base model endpoint without an ID. For XML-RPC operations, the method, model, and parameters are specified in the request body rather than the URL. Odoo's standard REST API processes one record per request—if your use case requires bulk operations, consider using Odoo XML-RPC with the create method, which accepts a list of records in a single call, when configuring record batching. Refer to the Odoo External API documentation for complete endpoint and parameter specifications.

Save & activate

Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To send the data to the configured Odoo endpoint, open the destination resource menu, and select Activate.

The Nexset data will not be sent to Odoo until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.