Upload Data to Odoo.

Parameters:
Create, update, or delete records in Odoo models (e.g.,
res.partner,sale.order) from your ETL tables.
OdooWrite authenticates to your Odoo server, maps incoming table columns to Odoo field API names, and executes one of three operations:
Create, update, or delete records in Odoo models (e.g.,
res.partner,sale.order) from your ETL tables.
createwrite (requires record id)unlink (requires record id)Writes typically do not execute in Preview. Run the pipeline normally to commit changes.
5 is fineinsert | update | deleteres.partner). Click the lookup button to populate the list after connection fields are set--proxy http://user:pass@proxy-host:8080res.partner).Your input table headers must use Odoo API names, e.g., name, email, phone, x_studio_custom__c.
Provide only the fields you need to set. Odoo will apply defaults for the rest.
For update/delete, include column id (integer record id).
Booleans: true/false or 1/0
Dates/Datetimes: ISO-8601 strings, e.g., 2025-08-11 or 2025-08-11 14:30:00
Many2one (single relation): supply the integer id of the related record in that field (e.g., country_id=233)
Many2many / One2many:
Supply an array of ids using Odoo XML-RPC array format (the connector converts it to the proper Odoo command under the hood).
Example for ids [4,5,6]:
<array><data>
<value><int>4</int></value>
<value><int>5</int></value>
<value><int>6</int></value>
</data></array>
For One2many where you create child rows, prefer creating children first and then link by ids; or use your ETL to build the array of existing child ids.
Use View fields names (eye icon) to confirm data types and API names for the chosen model.
InlineTable or readCSV) using the API field names.Authentication error / Access denied
Unknown field / ValueError: Wrong value for ...
__c or x_ depending on your Odoo)Many2many / One2many not applied
No changes after Preview
Proxy/Network issues
--proxy http://user:pass@host:port in extra parameters for cURL if required by your networkNumber of retries on connection error: 5
Extra cURL params: leave blank unless you need proxy/timeout; examples:
--proxy http://proxy:8080--max-time 120