Ask AI in Odoo 19: we tested 5 real leadership questions
In short, We asked Odoo 19's native AI 5 real leadership questions, then asked the exact same ones to a dedicated steering layer, on the same database. The pattern repeats: the native AI returns raw data, a list, or instructions to go find it yourself, and honestly admits its limits when the calculation gets complex. The dedicated layer returns a decision: a quantified total, a ranking by impact, an identified cause and a proposed action. The same question, two answers of a different nature.
In our comparison Odoo 19 native AI versus a dedicated solution, we made a simple case: Odoo's native AI can attempt cross-module questions, but it returns data, not a decision. Rather than leave it at theory, we ran the test. Five questions every business leader actually asks, posed first to Odoo 19's native AI, then to a dedicated steering layer plugged into the same database. Here are the results, reproduced faithfully.
Method: transparent and reproducible#
Every question was posed on a single Odoo 19 demonstration instance, in French, with no special agent configuration. Odoo's native AI comes in two surfaces, which we used as-is: "Ask AI" (for the first three questions) and "Odoo Agent" (for the last two). The answers are reproduced faithfully, summarised when they were long, never embellished nor made worse.
One important note of honesty: the data belongs to a demonstration instance. So we are not assessing the business accuracy of the figures, but the FORM and the STRUCTURE of the answers. Is an answer a piece of data or a decision? Is there a ranking by impact, a quantified total, a cause, an action? That is what we compare. One more detail: for the fifth question, the wording given to the dedicated layer was slightly more detailed than the one posed to the native AI, and we flag it where relevant.
Question 1: eroded margins and the supplier behind them#
"Which customers are eroding my margin over the last 3 months, and because of which supplier?"
This is the real-profitability question: a leader wants to know where the margin leaks, and why. It crosses sales and purchasing, two worlds the standard reports keep apart.
Odoo's native AI returned a list of ten customers with a margin indicator, from lowest to highest. Then this admission: it cannot determine which suppliers are responsible, because the system does not directly link sales lines to purchase lines. Half the question goes unanswered, and the first half is just a list with no total and no cause.
The steering layer first reframed the question: no customer is in negative margin this quarter, the average gross margin holds at 37 %. The real problem lies elsewhere, in two products sold at a flat loss (a USB key on promotion at -45.6 % per unit, an engraved pen at -57.1 %), for 1,285 € of direct margin destroyed over 521 units. On the supplier side, no price increase detected: the problem comes from promo pricing, not from purchasing. Data on one side, diagnosis on the other.
Question 2: dormant stock and locked-up value#
"Which products have been dormant in stock for more than 12 months, and for what total value?"
Dormant stock is a quiet cash leak, a topic we detail in our guide to calculating and reducing dormant stock in Odoo. But first you have to be able to identify it.
Odoo's native AI answered in one sentence: "I couldn't find any products that have been in stock for more than 12 months." Correct on substance for this instance, but raw: no value, no perspective, no caveat on data quality.
The steering layer reached the same zero, but dressed it: a table (zero dormant SKU, 0 € of value, 0 % of total stock), then three possible readings of that zero (genuinely healthy stock, incomplete movement history, or a threshold to refine), and finally a question back about coverage and turnover to flag the cash that's slowing down before it becomes dormant. The same zero, but turned into a line of inquiry.
Question 3: systematically late payers#
"Which customers systematically pay me late, and by how many days on average?"
The collections and DSO question: identify the chronic bad payers, not just one-off delays.
Odoo's native AI acknowledged its inability: it cannot compute the gap in days between two dates in an aggregated query. It offered to provide the raw list of paid invoices with their dates, leaving you to compute the delay manually.
The steering layer hit the same data limit, and said so plainly: without twelve months of payment history, it cannot tell chronic delay from one-off delay. But instead of stopping there, it quantified what was available: 524,463 € currently overdue, 45 invoices, all in the 1-30 day bucket (23 days on average). Then a ranking of the top ten customers by outstanding amount, and two isolated signals: one customer with three unpaid invoices at once, to call first, and another at high credit risk at 64 % of its limit. The same honesty about the limit, but a decision all the same.
Question 4: quotes with no follow-up#
"Which quotes over 5,000 € have received no follow-up in 30 days?"
Revenue that's asleep: quotes sent, never chased, expiring in silence.
Odoo's native AI provided no data. It returned instructions: go to the Sales module, open the Quotations view, apply a filter on amount above 5,000 €, then a filter on the date of the last follow-up. In other words, do it yourself.
The steering layer answered on substance: 173 dormant quotes for 4.3 M€ at risk, including the top fifteen by amount, nearly all already expired. One immediate-action signal stands out: a quote worth 83,959 € is the only one still valid in the list, and it expires the next day. A piece of data to handle within hours, not a report to comb through.
Question 5: real customer profitability#
"Which are my 5 least profitable customers over the last 6 months, accounting for discounts granted?"
The most cross-functional question: combine revenue, margins and service costs to find the customers who cost more than they bring in.
Odoo's native AI stated it did not have access to customer data, and offered a procedure to generate a sales report yourself, including discounts and sorting by profitability.
The steering layer (which received the question in a slightly more detailed wording) crossed three modules, sales, support and accounting, over 99 active customers. Two customers come out structurally loss-making, their support cost exceeding half their revenue. Two others are in the watch zone, one of which concentrates 12 % of total support cost for 0.3 % of revenue. It even flags a special case: a customer with support cost and zero recorded revenue, to clarify urgently.
Reading grid: data or decision?#
The table below summarises, question by question, what Odoo's native AI delivered. It is filled strictly from the answers obtained.
| Question | Answered on substance? | Ranked by impact | Quantified total | Cause identified | Action proposed |
|---|---|---|---|---|---|
| Q1 margins | Partial (list, supplier part dropped) | No | No | No | No |
| Q2 dormant stock | Yes (zero) | Not applicable | No | No | No |
| Q3 late payers | No (returns a list to compute) | No | No | No | No |
| Q4 quotes | No (returns instructions) | No | No | No | No |
| Q5 profitability | No (returns a procedure) | No | No | No | No |
The pattern is clear, and it holds across all five rows. When the calculation is simple, the native AI answers, but as raw data. When it turns cross-functional or aggregated, it honestly acknowledges its limit and points you back to the data or to a how-to. At no point does it rank by impact, quantify a total, identify a cause or propose an action. That's not a flaw: it simply isn't its job.
An honest conclusion#
Let's first recognise what the native AI does well. It is candid about its limits, it doesn't fabricate an answer when it can't compute one, and for simple in-app lookups it is fast and useful. It's excellent assistance, included in Odoo, and it will keep improving.
What it lacks to move from observation to decision is just as clear, because the tests show it row after row: prioritisation by impact, quantification in euros, identification of the cause, a recommended action, tracking over time. That is precisely the job of a dedicated steering layer, which comes alongside the native assistance, not instead of it. The two coexist well, as we explained in our native AI versus dedicated solution comparison.
Want to see what this looks like on YOUR data rather than a demonstration instance? The UpBoard scan shows in 8 minutes, read-only, what steering agents draw from your Odoo: ranking by impact and quantification in euros included.
Read next
- Odoo 19 native AI vs dedicated solution: the 2026 choiceOdoo 19 AI: what the native AI does well, where it falls short for steering the business, and when a dedicated layer is worth it. An honest comparison.
- Dormant stock in Odoo: how to calculate, value and reduce itDormant stock in Odoo: a step-by-step method to identify it, value it in euros, understand its real cost and reduce it for good. A practical SME guide.
- Real margin at the point of sale: what your Odoo POS doesn't tell youReal margin in Odoo POS: discounts, shrinkage, stockouts, product mix. A practical method to compute what each product really earns.
See what your Odoo data has to tell you
A 30-minute demo on your own data, leave with your first quantified opportunities.