> ## Documentation Index
> Fetch the complete documentation index at: https://docs.asteragents.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Odoo Manage Records

> Create, update, or delete Odoo records through a separately granted write tool.

Requires the [Odoo integration](/integrations/odoo). Grant this tool only to agents authorized to modify customer data. Odoo still enforces model permissions, record rules, and company access.

| Operation | Required parameters                       |
| --------- | ----------------------------------------- |
| `create`  | `model`, `values` for one new record      |
| `update`  | `model`, explicit `ids`, changed `values` |
| `delete`  | `model`, explicit `ids`                   |

Updates and deletes accept at most 200 positive integer IDs. A search domain is never a substitute for IDs. Read and verify the target records first.

```json theme={null}
{"model": "res.partner", "operation": "update", "ids": [123], "values": {"phone": "+1 555 0100"}}
```

Use [Odoo Get Schema](/tools/odoo_get_schema) to discover field names. Many-to-one values use an integer ID or `false`. Relational fields use Odoo command arrays; for example, `[[6, 0, [1, 2]]]` replaces a many-to-many list. Nested relational commands can themselves create, change, or delete related records.

Writes may trigger customer automations. CRUD does not execute business actions such as confirming orders, validating transfers, or posting invoices. There is no arbitrary method-call escape hatch.

Accepts `instance` and `context`. Aster never automatically retries a write. After a timeout or connection failure, verify the affected records before retrying because the write may already have committed.
