An AI agent in Odoo 20 is set up in the AI app from four parts: a system prompt, knowledge sources, skills with their tools, and triggers. Every AI request uses In-App Purchase (IAP) credits, which Odoo's IAP page prices at €1 each. The main guardrail is simple: an agent with no skills can only answer questions. It can't change your database. Write access, scheduled runs and outside connections through MCP are things you switch on one by one.
If you used AI in Odoo 19, start with our Odoo 19 AI guide. For the full list of Odoo 20 changes, see what's new in the Odoo 20 release notes.
What an Odoo 20 AI agent is made of
The 20.0 documentation builds each agent from four parts:
| Component | Where you set it | What it controls |
|---|---|---|
| Instructions | Instructions tab (the System Prompt) | The agent's role, responsibilities, constraints and tone. |
| Knowledge | Knowledge tab (Sources) | What the agent can refer to: uploaded files, web page links, files from the Documents app and Knowledge articles. |
| Skills and tools | Skills tab | What the agent can actually do. Each skill carries its own instructions and one or more tools. |
| Triggers | Trigger tab | When the agent runs: in a chat, on a schedule, on a date, or when records are created or updated. |
Odoo 20 renamed Odoo 19's "topics" to skills. The release notes describe them as "collections of instructions and tools that define how an AI agent behaves within a specific context". If your Odoo 19 agents used topics, expect to find them under the new name after an upgrade.
How to set up an AI agent in Odoo 20
Many AI features work without the AI app, but creating and customising agents needs it installed. The documentation carries a warning first: installing the AI app on a database on the Standard pricing plan automatically triggers an upsell to the Custom plan. Check your plan before you click Install.
- Create the agent. In the AI app, click New, enter a name and, if you want, a short description.
- Write the system prompt on the Instructions tab. Say what the agent is for, what it must not do and how it should reply.
- Add skills on the Skills tab. The same tab has toggles for three built-in tools: Generate image, Web Search and Self Update. Subagents, meaning other agents this one can hand work to, are added further down the tab.
- Add knowledge sources on the Knowledge tab. If a document changes after it was indexed, open the source's menu and click Reprocess so the agent uses the new version.
- Decide whether to restrict answers. With Restrict answers to Sources switched on, the agent only uses the uploaded and active sources.
- Add a trigger only when you need one. Without one, people start the agent from an AI chat, opened from the AI icon at the top of the screen or the command palette (Ctrl + K).
IAP credits: what AI costs in Odoo 20
The Odoo 20 release notes are direct about this: "All AI features now need credits, which can be bought via IAP." The AI documentation adds that AI usage consumes IAP credits. Odoo's IAP page for the Odoo AI service lists these packs:
| Pack | Credits | Price |
|---|---|---|
| Starter | 10 | €10 |
| Standard | 100 | €100 |
| Advanced | 500 | €500 |
| Expert | 1,000 | €1,000 |
The same page mentions 20 free credits and says credit usage "varies based on the specific AI feature, task complexity, and the size of your request". Odoo doesn't publish a fixed number of credits per question or per agent run, so you can't budget from a price list. The only reliable way to estimate is to run your actual use case on a test database and watch the balance.
According to the IAP page's FAQ, credits belong to one service and one database and don't expire. Named users get a warning email before the balance hits your threshold, auto-refill is available, and unused credits can be refunded on request within 30 days of purchase.
What AI agents can do in Odoo 20
The release notes list what agents can now do in Odoo 20:
- Create records, including from a file of instructions such as a PDF.
- Update existing records when asked.
- Answer questions about a file while you preview it, and take dictated requests by voice.
- Run from automated and scheduled actions, with "automation chats" that show how the agent handled each run.
Reading is low risk: answering staff questions from your Knowledge articles, summarising a file, searching records. Writing is not. A wrong update to a price, a payment term or a stock quantity costs real money. Start with reading.
The guardrails: skills, permissions, tool-call limits and triggers
No skills means no changes
The documentation says that an agent with no skills "can only provide information. It cannot complete tasks or make changes to the database." That makes it the safest way to begin. Build an agent with sources but no skills, check that its answers hold up, then add one skill at a time.
Permission requests and the tool-call limit
The release notes say agents now ask questions, request permission and make suggestions through buttons in their replies. If an agent reaches its "maximum tool call limit", it asks the user for confirmation before carrying on. Odoo doesn't publish the limit itself, and we couldn't find a setting for it in the 20.0 documentation. Treat that prompt as a sign the request was too broad. Don't just click through it.
Self Update and subagents
The Self Update tool lets an agent spot missing or incomplete instructions and skills, then "propose or make changes to its configuration". Useful while building. For an agent other people rely on, leave it off so its configuration only changes when you decide. Subagents spread a request across several agents, which makes it harder to see which instructions produced a result.
Scheduled and automated triggers
The Trigger tab has four options: On a schedule, Based on a Date Field (once per record when a date is reached), After creation and After update of a specific field. Each of these runs without a person asking, so give a triggered agent the narrowest skills it needs. Read its automation chats for the first few weeks.
AI server actions run the tool you give them
The AI server actions page splits the work in two. The AI server action is the manager: it decides which tool to call and with what arguments. The tool is a normal server action with Use in AI enabled. The documentation says a tool called this way "will execute unconditionally, unless the code itself prevents it", and that business rules must be enforced in the tool's Python code. If a tool shouldn't touch a posted invoice, the tool's code has to check for that. The AI won't.
Access through MCP
Odoo 20 can also act as an MCP server, so an outside assistant (the docs name Claude Code, Codex and others) can read and change your data. The documentation's safeguards:
- You connect with OAuth (recommended, internal users only) or an API key with the MCP scope and an expiry date.
- Each request authenticates as the user, with that user's permissions. The query tools list only the models and menus "the current user can access".
- By default only five tools are exposed, all read-only: Get Fields, Get Models, MCP Retrieve initial context, Search and Read group. Any tool that writes has to be exposed by hand with Available in MCP.
- The Readonly Tool box doesn't hide a tool. It only tells the client the tool is safe to run without asking.
- Each connection appears as an API key under My Preferences › Security. Delete the key to revoke access.
A sensible first rollout
- Answers only. One agent, sources from Knowledge, no skills, Restrict answers to Sources on.
- One write skill. Add a single skill that creates draft records, such as tasks from a specification, that a person then confirms.
- One trigger. Move it to a trigger only after it has run correctly by hand, and read its automation chats every week.
- MCP last. Expose write tools to outside assistants only for named users, with keys that expire.
Conversations with agents are now kept for up to 30 days after the last message, so check older results while they are still there. For help choosing a first use case, talk to us.
Questions we get asked
How much do AI credits cost in Odoo 20?
Odoo's IAP page for the Odoo AI service lists credits at €1 each, sold in packs of 10, 100, 500 and 1,000, and mentions 20 free credits. Odoo says usage varies with the AI feature, the complexity of the task and the size of the request, so there is no fixed cost per question. Run your real use case on a test database to estimate monthly spend.
Do I need the AI app to use AI in Odoo 20?
Not for every feature. Odoo's documentation says many AI features work without the AI app, but creating and customising agents requires it. It also warns that installing the AI app on a database on the Standard pricing plan automatically triggers an upsell to the Custom plan. Check your subscription with Odoo or your partner before installing it on a live database.
Can an Odoo 20 AI agent change records on its own?
Only if you give it the means. Odoo's documentation says an agent with no skills can only provide information and cannot change the database. With skills, agents can create and update records. With a trigger they can run from scheduled or automated actions. When an agent reaches its tool-call limit, it asks the user to confirm before continuing.
What is the Odoo MCP server used for?
The Odoo MCP server lets an outside AI assistant connect to your Odoo 20 database to read data and run tools. You authenticate with OAuth or an API key, and each request carries the user's permissions. By default only five read-only tools are exposed. Tools that write must be exposed by hand, and you revoke access by deleting the key in My Preferences.