FlowRunner
Pricing
Theme

Odoo

ERP

A 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.

9 actions available
A new contact or order arrives from an upstream system
Agent reads the record and maps it to the target Odoo model
Agent runs Search Read to find an existing match and avoid duplicates
Agent confirms the required fields against the model via Fields Get
Agent runs Create or Update on the model to write the record
The originating team is updated with the Odoo record ID
Confirming a sales order via Call Method is paused for approval on large values

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

Manual re-keying Someone copies contacts and orders from other tools into Odoo by hand
Duplicates pile up New records are created without checking whether the partner already exists
Orders confirmed blind A sales order is confirmed without a check on its value or credit terms

With FlowRunner

Records synced in-flow Create and Update write the record the moment the upstream event fires
Deduped on write Search Read runs before any create, so existing partners are matched, not duplicated
Large orders reviewed Confirming a high-value order routes to a person before Call Method posts it

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 processes routinely
Detects exception requiring judgment
Clear match Continues automatically
Ambiguous Routes to human via Slack
Human decides
Agent resumes with decision

Agent Capabilities

9 actions

Records

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.