Delete Records
odoo.unlink
ActionCRM & salesconnection required
Calls the Odoo API with the connection's credentials.
Delete records by id. Odoo refuses the whole call if any record is still referenced by another one, so nothing is deleted in that case.
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
3 fields, 1 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.
| Field | Type | Required | Default | Constraints | Example |
|---|---|---|---|---|---|
model Technical name of the Odoo model to act on, such as 'res.partner' or 'sale.order'. | string | Yes | — | — | res.partner |
ids Record ids to act on, as a JSON array of whole numbers. | array | No | — | array of number | [1,2] |
id A single record id — the convenient form when only one record is affected. | number | No | — | ≥ 1 | — |
- At least one of ids, id must be set.
Example configuration
Every value below is the contract’s own example or default — nothing invented.
{
"ids": [
1,
2
],
"model": "res.partner"
}Output
One shape.
result
| Field | Type | Example |
|---|---|---|
deleted True when Odoo confirmed the deletion. | boolean | — |
result Exactly what Odoo returned, unflattened. | any | — |
ids The record ids the delete was applied to. | array | — |
count How many records the call returned or affected. | number | — |
model The model the call was made against. | string | — |
{
"count": 0,
"deleted": false,
"ids": [],
"model": "",
"result": null
}See Delete 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.