Search Records

odoo.search_read
ActionCRM & salesconnection required

Calls the Odoo API with the connection's credentials.

Search a model with a domain and read the matching records in one call. This is the list operation most workflows want.

Connection

Required
Yes — the node will not save without one
Auth type
API key
Providers
Odoo
Secret shape
the API key, or {"api_key": "…"} — Odoo takes it in place of the password
Config it needs
base_url, db, username, uid
Resolved by
config.connection_id, else node.connection_id

Configuration

6 fields, 1 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.

FieldTypeRequiredDefaultConstraintsExample
model
Technical name of the Odoo model to act on, such as 'res.partner' or 'sale.order'.
stringYes——res.partner
domain
Odoo search domain: a JSON array of conditions, e.g. [["is_company", "=", true]]. Leave it empty to match every record the user may read.
arrayNo——[["is_company","=",true]]
fields
Field names to return, as a JSON array. Leave it empty for every readable field, which is slower and much larger.
arrayNo—array of string["name","email"]
offset
How many matching records to skip before the first one returned.
numberNo0≥ 0—
limit
Maximum number of records to return; 0 asks Odoo for all of them.
numberNo0≥ 0—
order
Sort clause in SQL form, such as 'create_date desc, name asc'.
stringNo——create_date desc

Example configuration

Every value below is the contract’s own example or default — nothing invented.

{
  "domain": [
    [
      "is_company",
      "=",
      true
    ]
  ],
  "fields": [
    "name",
    "email"
  ],
  "limit": 0,
  "model": "res.partner",
  "offset": 0,
  "order": "create_date desc"
}

Output

One shape.

result

FieldTypeExample
records
The matching records, one object per record.
array—
count
How many records the call returned or affected.
number—
model
The model the call was made against.
string—
{
  "count": 0,
  "model": "",
  "records": []
}

Notes

  • A many2one field comes back as a [id, display name] pair and is written as a bare id; one2many and many2many fields are written with Odoo's command triplets, e.g. [[6, 0, [1, 2]]] to replace the whole set.
  • Each call authenticates first unless the connection carries a 'uid', which halves the requests this node makes.

See Search Records run in a workflow.

In a technical demo we add the Odoo connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.