Configuration
Every setting in AI Assistant for Odoo, and what each one changes.
Three steps: choose a vendor, decide what the assistant may look at, and decide who may ask.
1. The account
AI Assistant > Configuration > Accounts
A new account uses the simulated provider. Leave it there to begin with: it runs the entire assistant - the tool loop, the permission scope, the audit trail - and sends nothing anywhere. It is the honest way to see what the assistant could read before deciding whether to point it at a vendor.
When you are ready:
| Field | What it is |
|---|---|
| Provider | Anthropic, OpenAI, or Simulated |
| Model | The vendor's model identifier. Empty uses the provider's default |
| Endpoint override | For Azure OpenAI, a proxy, or a self-hosted deployment |
| Tool rounds | How many times the model may call tools within one question. This is the loop bound |
| Timeout | Seconds to wait for the vendor |
| Instructions | The system prompt, prepended to every conversation |
The API key
Press Set API key. The key is stored in Odoo's encrypted ir.config_parameter store, never on a field, and is never displayed again. Only a system administrator can set it.
There is no "show key" action anywhere in this module. The only person who benefits from one is somebody who should not have it.
2. Exposed data
AI Assistant > Configuration > Exposed Data
This list is empty on install. Add one entry per model the assistant may read.
| Field | What it does |
|---|---|
| Model | What may be read |
| What this is | One line, written for the language model. It chooses which tool to call from this text, so a vague line produces a wrong choice |
| Readable fields | Leave empty to offer every stored field the asker can read. Naming fields explicitly is narrower and better |
| Additional filter | An extra domain applied on top of the reader's own rights, never instead of them |
| Row limit | The most records one call may return |
| Allow totals | Let it count and sum without reading the rows behind the number |
Exposing a model grants nothing
Each person still reads it with their own access rights. Two people asking the same question get different answers, and somebody with no rights on the model gets nothing at all - the tool is not even offered to them.
What is never sent
Whatever you select, these never reach a language model:
- fields whose name contains password, secret, token, api_key, credential, otp, session, signature and similar
- binary and image fields
This is a floor, not a default. No setting lifts it.
3. Who may ask
Give people the User role. Give the person who decides what may be exposed the Manager role.
A suggested first configuration
| Model | Description | Fields |
|---|---|---|
| res.partner | Customers, suppliers and contacts | name, email, phone, city, country_id |
| account.move | Customer invoices, with amount and payment state | name, partner_id, invoice_date_due, amount_residual, payment_state |
Two models is enough to see whether the assistant is useful in your business. Add more once you have read the tool calls it makes.