Skip to Content
Odoo and AI

An AI assistant over your Odoo data: doing retrieval-augmented answers right

dooPartners· 23 June 2026 · 15 min read
An AI assistant over your Odoo data: doing retrieval-augmented answers right

An AI assistant over your Odoo data is only as good as three things: structured access to live records instead of a document dump, clean data underneath, and permissions that cap the assistant at what the user may see. Get those right and the one-sentence question replaces the pivot hunt.

You ask your AI assistant a simple question: "Which customers are over their credit limit and have an open order?" In ten seconds you get a confident, well-written answer with three names. It reads great. The only problem is that one of those customers paid last week, and a fourth name that should be on the list is missing. The assistant did not lie on purpose. It just did not actually look in Odoo. It guessed from whatever it had seen before.

This is the gap between an AI that sounds right and an AI that is right. Asking questions over your own ERP data is genuinely useful: no more digging through filters and pivot views to answer a question a colleague could ask in one sentence. But it only works if the assistant reads your live data, knows what it is allowed to see, and that data is clean enough to trust. Get those three things in order and the answers are real. Skip them and you have a very articulate guesser sitting on top of your business. Here is how the pieces fit, and how to do it right.

Why a general AI cannot answer questions about your business

A general AI model knows a lot about the world and nothing about your company. It has never seen your customers, your stock levels, or last month's margin. So when you ask it a question about your data, it has two options: say it does not know, or produce a plausible answer from patterns. Left alone, it tends to do the second, and a plausible wrong answer is worse than no answer, because you act on it.

The fix has a name: retrieval-augmented generation, usually shortened to RAG. The idea is simple. Before the model answers, it retrieves the actual relevant data from your systems, and then it generates the answer from that data instead of from memory. "Retrieval-augmented" just means "look it up first, then answer". For an ERP, the data it looks up is your Odoo records: the live customers, orders, invoices and stock, queried at the moment you ask.

That one design choice is the whole difference. An assistant that retrieves first can say "based on these four orders" and show its work. An assistant that does not retrieve is improvising, however fluent it sounds. So the real question is not "can AI answer questions about my data". It is "how does the AI reach my data, and can I trust what it does when it gets there". Three things decide that: structured access, clean data, and permissions.

Comparison of an AI answering from memory versus retrieving live Odoo data first (RAG)
From Odoo 19, a built-in AI assistant can answer questions over your data and inherits Odoo's access rights.

What it takes to do this right

1

Structured access to the data, not a document dump

The assistant needs a reliable way to query Odoo, not a folder of exported spreadsheets. Odoo is a structured database: customers, orders, invoices and products are records with fields and links between them. The assistant should read those records through a defined channel that returns current data, so "open orders" means the orders that are open right now, not a snapshot from last Tuesday.

This matters because the alternative, dumping exports into the model, ages instantly and loses the relationships. A pile of PDFs cannot tell the assistant that this invoice belongs to that order for that customer. A structured query can. Live, structured access is what lets the assistant answer a relational question ("customers over their limit with an open order") correctly, because it can follow the links the way Odoo does.

2

Clean data underneath, or you automate the mess

An AI assistant is a magnifying glass on your data quality. If the same customer exists three times with slightly different names, the assistant will happily report three customers. If half your products have no category, "sales by category" will quietly leave them out. The assistant does not fix bad data. It reports on it confidently, which is worse, because the confidence hides the gaps.

So the unglamorous work comes first: deduplicate the master data, fill the fields the questions depend on, and agree what each field means. If "delivered" is recorded three different ways across your team, no assistant can give you a clean delivery number. Clean data is not a nice-to-have for AI over ERP. It is the thing that decides whether the answers are usable at all.

3

Permissions, so the assistant cannot see or do more than the user

This is the part people skip and regret. An AI assistant over Odoo must respect Odoo's own permission model: access rights (what a user may do on a type of record) and record rules (which specific records a user may see). The assistant should answer as the person asking, with that person's access, not as a superuser that can read everyone's salary and every margin.

There are two real risks. The first is exposure: if the assistant runs with broad access, a sales rep could ask a question and get back data they were never allowed to see. The second is prompt injection: a malicious instruction hidden in a record or a document tricks the assistant into doing something it should not, like exfiltrating data or changing a record. The defences are not exotic. Scope the assistant to the asking user's permissions, keep it read-only unless an action is genuinely needed, and require a human confirmation for anything high-risk like approving an invoice or changing access rights. An assistant that can read everything and act on anything is a breach waiting for a bad prompt.

The three ways to put an assistant over Odoo

There is more than one way to build this, and they sit at different points on a line from quick-and-bounded to flexible-and-involved.

Odoo's own AI features. From Odoo 19 there is a built-in AI app with an "Ask AI" assistant and configurable AI agents that can answer questions about your data and perform actions inside Odoo, from a chat interface. The big advantage is that it lives inside Odoo, so it inherits Odoo's access rights and record rules by default. It is the fastest path if your needs sit within one Odoo database and the standard agents cover your questions. The limit is the same as its strength: it is Odoo's assistant, scoped to Odoo, configured the Odoo way.

An MCP server in front of Odoo. MCP (Model Context Protocol) is an open standard for letting an AI assistant call external tools and data sources. An Odoo MCP server exposes your Odoo records to an assistant like Claude through that standard, usually by translating the assistant's requests into Odoo API calls and returning the records in a form the model can read. This is the route when you want a specific assistant (not only Odoo's own) to query Odoo, or when Odoo is one of several sources the assistant should reach. A good MCP server enforces Odoo's permissions and lets you keep it read-only, so the access question is answered at the layer, not left to hope. The cost is that it is a component to run and secure, not a checkbox.

An iPaaS or integration layer that the assistant reads from. If the answers should span more than Odoo (Odoo plus a webshop, a WMS, a separate finance package), the assistant needs a place where those sources already agree. That is what a sync layer is for. It holds the systems in agreement, and the assistant queries the layer instead of stitching three live systems together itself. This is the heavier option, and it only earns its place when the questions genuinely cross systems. When they do, it is the difference between an answer you can trust and an assistant guessing which system is right.

These are not ranked. Odoo's own AI is the natural start when everything lives in Odoo. An MCP server fits when a particular assistant must reach Odoo, or Odoo among other tools. A sync layer is for questions that span systems. Most companies grow through them in that order.

The part that trips people up

A few things catch almost everyone

A few things catch almost everyone.

A fluent answer is not a correct answer. The whole risk of AI over data is that wrong answers arrive beautifully written. Until the assistant retrieves from live data and can show which records it used, treat its answers as drafts, not facts.

"It read my data once" is not the same as live access. An assistant working from an old export will answer today's question with last month's numbers and never warn you. The retrieval has to be live, or the freshness problem just moves out of sight.

Permissions are not a later phase. If you wire up the assistant with admin access "to get it working" and plan to lock it down afterwards, the lockdown rarely happens and the exposure is already there. Scope it on day one, to the asking user, read-only by default.

Dirty data makes AI worse, not better. Putting an articulate assistant on top of duplicated customers and half-empty fields does not hide the mess. It states the mess with confidence. Clean first, then connect.

Prompt injection is a real attack, not a theory. Content the assistant reads can contain instructions. If the assistant can act, a hidden instruction can make it act wrongly. Keep it read-only where you can, and require human confirmation for anything that changes data or money.

Quick checklist

  • The assistant retrieves from live Odoo data before it answers, and can show which records it used.
  • Access is structured (real queries against records), not a dump of exported files.
  • Master data is deduplicated and the fields your questions rely on are filled.
  • The assistant answers with the asking user's permissions, not as a superuser.
  • It is read-only unless an action is genuinely required, with human confirmation for high-risk steps.
  • You decided whether the questions stay inside Odoo or cross systems, and picked the approach to match.
  • Someone owns this as both ends change: new Odoo versions, new data, new questions.

FAQ

Can an AI assistant answer questions about my own Odoo data?

Yes, if it reads your live Odoo data before answering rather than guessing from what it has seen before. The technique is called retrieval-augmented generation: the assistant retrieves the relevant records from Odoo, then generates the answer from those records. This works through Odoo's own AI features, through an MCP server that exposes Odoo to an external assistant, or through a sync layer when the questions span several systems. Three things decide whether the answers are trustworthy: structured access to live data, clean data underneath, and permissions that match the user asking.

Is it safe to connect an AI assistant to my ERP data?

It is safe if the assistant runs with the asking user's permissions and not as a superuser. An AI assistant over Odoo should respect Odoo's access rights and record rules, so a person only gets answers from data they are already allowed to see. Keep the assistant read-only unless an action is genuinely needed, and require human confirmation for high-risk actions like approving invoices or changing access rights. The main risks are over-broad access (the assistant returning data the user should not see) and prompt injection (a hidden instruction in a record making the assistant act wrongly), and both are managed by scoping access tightly.

What is RAG (retrieval-augmented generation) for an ERP?

RAG means the AI looks up real data before it answers, instead of answering from memory. For an ERP like Odoo, that data is your live records: customers, orders, invoices and stock, queried at the moment you ask. Without retrieval, a general AI model produces plausible answers that may be wrong because it has never seen your business. With retrieval, the answer is built from your actual records and the assistant can show which ones it used.

Does Odoo have a built-in AI assistant?

Yes. From Odoo 19 there is a built-in AI app with an "Ask AI" assistant and configurable AI agents that can answer questions about your data and perform actions inside Odoo from a chat interface. Because it lives inside Odoo, it inherits Odoo's access rights and record rules by default. If you want a different assistant to reach Odoo, or Odoo alongside other systems, you can instead use an MCP server in front of Odoo or query a sync layer that holds your systems in agreement.

Do I need clean data before using AI over my ERP?

Yes, and it is the step most people underestimate. An AI assistant reports on your data quality with full confidence, so duplicated customers, empty fields and inconsistent definitions turn into confident wrong answers. Deduplicate the master data, fill the fields your questions depend on, and agree what each field means before you connect an assistant. Clean data is what decides whether the answers are usable at all.

Read next AI-assisted writing in Odoo: drafts, summaries and replies without losing your voice

Open knowledge. Are you an Odoo partner who solves these problems too? Contribute your own solutions and grow toward Gold with the network.

For partners
When to get a partner

Some problems need a pair of hands, not a how-to.

dooPartners is a worldwide network of independent, Odoo-certified partners. Local where you are, with the network behind them when a project grows beyond one agency. You keep one point of contact, and you choose who you work with.

Find a partner near you