Write permissions
odoo_write_modelsWhich Odoo models this workspace may write, and what each one allows: create, write, unlink, execute. action='get' returns one model's flags (all false when the model is not on the whitelist); 'list' returns the whitelist, or searches it with 'query' (an exact technical name returns only that model). Check the model you are creating or writing, not the models of its lines: lines sent as x2many commands inside that record ride its permission. Workspace admins also have 'save' (add a model or change its flags) and 'delete' (remove it: after that nothing in Tuqui can write to that model). 'pre_domain' narrows what may be touched (e.g. [["state","=","draft"]]); it is validated against your Odoo and the answer says how many records it matches. It scopes write, unlink and execute on existing records; it does NOT scope create, so never present a create grant as limited to some records. Do not add a line model to unblock a create. 'scoped': true in place of 'pre_domain' means only some existing records may be touched.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"action": "<action>"
},
"name": "odoo_write_models"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| model | No | Odoo model technical name, e.g. 'sale.order'. Required except for 'list'. | |
| query | No | On 'list': a model name or part of it. Without it, the whole whitelist. | |
| action | Yes | REQUIRED. 'list' and 'get' read the whitelist; 'save' and 'delete' change it. | |
| offset | No | On 'list': records to skip. Pass the previous page's 'next_offset'. | |
| can_write | No | Allow updating records of this model. | |
| can_create | No | Allow creating records of this model. | |
| can_unlink | No | Allow deleting records of this model. | |
| pre_domain | No | Odoo domain that narrows what may be written, e.g. [["state","=","draft"]]. Send an empty array with clear_pre_domain=true to remove it. | |
| can_execute | No | Allow calling methods on this model. | |
| consent_token | No | The approval a person gave for THIS call in Tuqui. Bound to these arguments and valid once. | |
| clear_pre_domain | No | On 'save' of an existing model: remove the pre_domain entirely. |