Odoo
ERPA generic ORM client for any Odoo model. Search, read, create, update, and delete records, discover model fields, and call arbitrary methods over Odoo’s External API.
What This Integration Enables
Agents work against any Odoo model with a compact, generic operation set. They query with domain filters (Search Read, Search, Search Count), read specific records (Read), and write (Create, Update, Delete). Fields Get discovers a model's fields before an agent builds a create or update payload, which keeps the flow honest against custom models and version differences. Call Method invokes arbitrary model methods, so an agent can drive real Odoo business logic, for example calling `action_confirm` to confirm a sales order or posting a message on a record. Because every operation is model-agnostic, one connector reaches the entire Odoo surface: CRM, sales, purchasing, inventory, accounting, and any custom module a team has built.
Without FlowRunner
With FlowRunner
Use Case Scenarios
Contact Sync from CRM
A new contact is created in an upstream CRM. The agent calls Search Read on `res.partner` to check for an existing match by email, then Create if the partner is new or Update if it exists. It confirms the write with a follow-up Search Read and returns the Odoo record ID to the originating system. Contacts that used to be re-keyed by hand land in Odoo deduped and complete, the moment they are created elsewhere.
Order Intake and Reporting
Orders flow in from a store. The agent maps each one to `sale.order`, runs Create to record it, and adds the lines against the right product records. On a schedule, it calls Search Read on `sale.order` for recent activity and logs each order to a reporting sheet in [Google Sheets](/integrations/google-sheets). The ERP stays current without a person exporting and pasting once a week.
Field Discovery for a Custom Model
An operation runs a custom Odoo module with its own model. Before writing to it, the agent calls Fields Get to read the model's available fields, then builds a Create payload that matches. When the module changes, the flow adapts to the new field set instead of breaking on a hardcoded assumption.
Human-in-Loop Highlight
Reading and syncing records is safe to automate. Confirming a sales order posts a commitment, and that is where an agent should stop and ask, because human-in-the-loop is the pattern where the agent pauses on the actions that carry consequence, assembles the context, and resumes on a human's answer. When a workflow is about to confirm an order via Call Method with `action_confirm` and the order value crosses a configurable threshold, the agent does not post it on its own. It presents the customer, the order total, the credit terms, and any open balance, then routes to the account owner in [Slack](/integrations/slack): "Order for Acme Inc totals $84,000 and the account has a past-due balance. Confirm the order, hold it, or escalate?" The owner decides. On approval, the agent runs Call Method and records who confirmed it. Routine orders confirm automatically; the ones with money at stake get a human.
Agent Capabilities
9 actionsRecords
7- Search Read Searches a model with a domain filter and returns matching records in one call. Used as the find step before a create or update.
- Search Searches a model with a domain filter and returns matching record IDs.
- Search Count Counts records matching a domain filter without fetching them. Used to drive branching and reporting logic.
- Read Reads specified fields from records by ID.
- Create Creates a record in any Odoo model from a values object.
- Update Updates one or more records by ID.
- Delete Deletes records by ID.
Metadata
1- Fields Get Discovers the fields a model exposes before building a payload. Used to stay correct against custom models and version differences.
Advanced
1- Call Method Calls an arbitrary model method, such as `action_confirm` on a sales order or posting a message on a record. Used to drive real Odoo business logic from a flow.
Start building with Odoo
$100 in credits. No card required. Connect in minutes.