Skip to Content

Odoo Update

The Odoo Update transform is a critical output operation in Putki that enables you to modify existing records in your Odoo database. This transform integrates seamlessly with Apache Hop workflows and allows you to update large volumes of data based on specific criteria, maintain data synchronization across systems, and automate record modifications as part of larger orchestration pipelines.

Icon

Usage

The Odoo Update transform requires the following configuration settings:

Parameter

Description

Transform Name

A unique identifier for this transform step in your workflow. Used for logging and error tracking. Example: "update-B2B-contacts"

Odoo Connection

The configured Odoo server connection from your Hop environment. Dropdown selector displays all available connections. Example: "odoo-testing" or "odoo-production"

Odoo Model

The target business object/model in Odoo to update. Uses Odoo's internal model naming convention. Examples: res.partner (contacts), crm.lead (leads), sale.order (orders). Click "Get Odoo Fields" to see all available fields.

ID Field

The stream field (from your input data) that contains the unique identifier for records to update. Usually "id" (primary key) but can be any field that uniquely identifies a record (email, SKU, etc.). The ID values MUST exist in Odoo.

Batch Size

Number of records to update in each batch. Default: 100. Typical range: 100-1000. Larger batches are faster but may timeout. Smaller batches are safer. Start with 100-500 and adjust based on performance.

Connection configuration

Before using the transform, you must define an Odoo database connection. The fields required are:


Field

Required

Description

Odoo connection name

Yes

A descriptive name for the connection in Hop.

Base URL (domain)

Yes

Full URL of the Odoo instance, e.g., https://mycompany.odoo.com.

Username

Yes

Odoo username for authentication (or API user).

Password

Yes

Odoo password or API key, depending on authentication method.

Database

Yes

Name of the Odoo database to query.


Practical examples

Example 1: Updating B2B Contact Information

Scenario: Your company maintains a B2B contact database in an external CRM system. You need to regularly sync contact information to Odoo, updating phone numbers, addresses, and comments.

  1. Workflow Steps:

  • Read existing contacts from Odoo with their IDs

  • Filter to include only B2B contacts

  • Add enrichment data like comments or status updates

  • Update contact records with new information

  1. Configuration Settings:

Parameter

Value

Transform Name

update-B2B-contacts

Odoo Connection

odoo-testing

Odoo Model

res.partner

ID Field

id

Batch Size

100

  1. Field Mappings:

  • comment (Stream) → comment (Odoo)

  • phone (Stream) → phone (Odoo)

  • street (Stream) → street (Odoo)

  • city (Stream) → city (Odoo)

  1. Result: 150 B2B contacts updated with latest information from external CRM, maintaining synchronization without creating duplicates.

Example 2: Automated Lead Status Updates

Scenario: Your marketing automation system identifies qualified leads. You automatically update lead statuses in Odoo when they meet qualification criteria.

  1. Configuration Settings:

Parameter

Value

Transform Name

qualify-marketing-leads

Odoo Connection

odoo-production

Odoo Model

crm.lead

ID Field

id

Batch Size

50

  1. Field Mappings:

  • stage_id (Stream) → stage_id (Odoo)

  • priority (Stream) → priority (Odoo)

Example 3: Inventory Level Synchronization

Scenario: Your warehouse system tracks real-time inventory. You sync inventory quantities to Odoo products hourly to keep stock levels accurate.

  1. Configuration Settings:

Parameter

Value

Transform Name

sync-inventory-levels

Odoo Connection

odoo-production

Odoo Model

product.product

ID Field

id

Batch Size

200

  1. Field Mappings:

  • qty_available (Stream) → qty_on_hand (Odoo)

  • warehouse_location (Stream) → location_id (Odoo)