At Fanto, we spend most of our time inside Odoo — not just configuring it, but building on top of it. Custom modules, approval workflows, automated pipelines, portal customizations. Real things, for real clients, with real deadlines.
One of our ongoing projects is for a construction company. We built them a task approval workflow inside Odoo — when a site supervisor marks a task complete, it doesn't just close. It triggers a review chain, notifies the project manager, checks against milestone conditions, and if everything lines up, it unlocks the next billing cycle. The logic took us a few weeks to get right. It involved cron jobs, computed fields, a custom button with state transitions, and some Python overrides we're not exactly proud of.
It works. The client loves it. And Odoo 20 is about to make a version of it buildable in a fraction of the time — possibly without a single line of Python.
That's what I want to talk about.
The shift from "AI that responds" to "AI that acts"
Odoo 18 gave us OCR and automated invoice processing. Useful, but narrow. You'd still describe it as AI sitting in the corner, waiting to be asked something.
Odoo 19 went further — AI agents, a natural language search called "Ask Odoo," voice-to-action transcripts. Again, genuinely helpful. But if you actually used these in production, you'd notice something: they're still reactive. You ask, they answer. The agent doesn't take initiative. It doesn't look at an open task and decide it needs attention. It waits.
Odoo 20 is where that changes.
The direction Odoo has been building toward — and this is visible in their roadmap trajectory, not just speculation — is agentic AI. Not a chatbot embedded in your CRM. A system that can observe a state, make a decision, and execute an action without being asked. It sees a sales order stuck in draft for 5 days with no activity and it follows up. It notices a stock level crossing a reorder threshold and creates the purchase order. It detects an anomaly in a vendor invoice and flags it before your accountant opens their laptop.
That's a fundamentally different kind of software.
Why this changes what we build
Here's where I want to be specific, because vague AI hype helps nobody.
Take our construction client's approval workflow. Right now, here's roughly what we built:
- A custom state field on the task model (draft, pending_review, approved, invoiceable)
- A Python method that checks milestone conditions and advances the state
- An automated action triggered by a cron job every few hours
- A mail template that fires at each state transition with the right recipient and language
- A button that only appears for the right user group at the right stage
Each of those pieces required us to understand Odoo internals pretty deeply. The cron timing, the ORM layer, the mail template rendering per recipient language, the domain filters on the button visibility. None of it is magic — it's craft. And we're proud of it.
But here's the honest question: if Odoo 20's agentic layer can watch a task's state, understand that a condition has been met, and trigger a sequence of actions — natively, through configuration — how much of that Python survives?
Maybe not much.
And before anyone panics: that's actually fine. That's progress. We didn't build that module because we love writing Python. We built it because our client needed that outcome. If Odoo 20 delivers the outcome faster, with less risk of bugs and less maintenance overhead, that's a win for the client. Which means it's a win for us.
What this means for Odoo developers (and for clients)
There are two ways to react to this kind of shift.
The first is to feel threatened and do nothing. Keep building the same way, charge the same rates, and slowly watch the work thin out as the platform absorbs more of it natively.
The second — the better one — is to move up the stack.
The things agentic AI will handle well are the things that are definable. Clear conditions, known outcomes, repeatable logic. "When X happens, do Y." That's exactly what we've been automating manually. And yes, that work will compress.
But what AI won't replace — not in Odoo 20, not in Odoo 30 — is understanding what X and Y should be in the first place. That's a business problem, not a technical one. It requires someone who has sat with a construction company and understood how their billing actually works — not how they think it works, but how it actually works, including the exception that happens every third month when a subcontractor delays delivery.
That knowledge doesn't live in Odoo. It lives in conversations. And translating it into logic that a system can execute — whether that system is hand-coded Python or an Odoo 20 agent — that's still the job. It just changes shape.
What we're doing about it (and what you should probably consider)
We've already started shifting how we scope work for clients.
Less time estimating "how long will it take to code this?" and more time on "what does this process actually need to do, and what's the best way to express that inside Odoo?" The implementation layer is getting faster. The design layer matters more.
We're also paying close attention to what Odoo 20 is actually building toward — specifically the AI agent architecture, the accounting audit tools, and the deeper automation triggers across modules. Not to speculate, but to be ready. When the beta drops, we want to be testing real workflows, not reading blog posts about what might be possible.
And for our clients: if you're on Odoo 16 or 17, now is genuinely the time to think about your path forward. Not because Odoo 20 will break things (it won't, immediately), but because the customizations you lock in today will either age gracefully into a more automated world or create friction in it. That's a design decision, and it's one worth making deliberately.
Have a custom Odoo workflow you're wondering about — whether it'll still need building or whether Odoo 20 might handle it natively? We're happy to think through it with you. No pitch, just a conversation.