Odoo Studio or Custom Code? How I Decide What to Build

It always starts small. A client asks whether we can add a field for the broker's commission, or make the delivery note show the driver's name, or hide three fields nobody on the sales team ever fills in. My honest answer is almost always yes — Odoo can do it. The real question I am answering underneath every one of those requests is not whether it is possible. It is whether I open Studio or open a code editor, because that choice, made carelessly enough times, is how a clean Odoo instance turns into something nobody wants to touch two versions from now.

What Studio genuinely handles well

Odoo describes Studio, in its own documentation, as a toolbox used to customise Odoo without coding knowledge — and for a real slice of what clients ask for, that is exactly what it is. Worth knowing before anything else: Studio ships only with Enterprise, and installing it on Odoo Online's Standard plan automatically triggers an upsell to the Custom plan, the same tier that unlocks multi-company and the external API. If you have not settled which edition you are running, that decision affects far more than Studio access.

Fields are the clearest case. Studio lets you add a field that does not exist yet, or pull an existing one onto any view — and because Odoo documents fifteen underlying field types, Studio fields are saved as real columns in your database, not some parallel layer bolted on top. Views work the same way: form, kanban, list, calendar, pivot, graph and half a dozen others are, in Odoo's words, simply different ways to show the same data, and Studio lets you rearrange what each one shows without touching XML.

Automation rules cover a surprising amount of what people assume needs a developer. Studio's automation rules fire on five kinds of trigger — a value changing, an email event, a timing condition, a record being created or edited, or an external event — with actions that include updating a record, creating an activity, sending an email, SMS or WhatsApp message, and adding or removing followers. Approval rules sit next to this: they gate a button behind a required approver before an action can run, which covers a lot of the "someone senior has to sign off first" requests I get. And the PDF report editor lets you drag fields, static or dynamic tables, images and banners onto an existing report layout, with values updating live as you build.

Where Studio stops

The honest limits show up quickly once you look past the no-code pitch. Two of Studio's own action types — Execute Code and Send Webhook Notification — are themselves a form of programming, so "no-code" is more of a spectrum than a promise; the moment an automation rule needs a code snippet or a webhook payload, someone who can write and test that code is already involved, Studio interface or not.

Reports have a similar ceiling. Odoo's own documentation says the conditions inside a report's conditional blocks can only be edited in the underlying XML, not the visual editor — and that editing a report's header or footer affects every standard and custom report built on it, not just the one you are looking at. That second point catches people out: a header tweak requested for one delivery note can quietly reshape every invoice, quotation and purchase order in the system.

Past that, you are into territory Studio was never meant to cover: real business logic with multiple conditional states, an integration that calls a third-party API, a calculation that has to be provably correct rather than approximately right. None of that is a criticism of Studio — it is doing exactly what a no-code layer is for. It just means the line between a quick Studio change and a proper custom module is narrower than most demos suggest, and I would rather draw it honestly before the build starts than discover it mid-project.

The decision flow I use

Rather than re-litigate this project by project, I run every request through the same three questions, in the same order. It sounds rigid, but it saves more arguments than it starts: most "customisation" requests turn out to be either something the standard app already does, or something Studio handles cleanly. What genuinely needs custom code is a smaller category than most people walk in expecting — and when I actually counted what gets built as custom modules across ten UAE implementations, accounting still outweighed every other app by a wide margin.

How I decide between Odoo Studio and a custom module Flowchart. A new requirement or change request first asks: does standard Odoo already cover this? If yes, use the standard setup, with no build and no upgrade risk. If no, the next question asks: does it only need Studio's fields, views, automation rules or report editor? If yes, build it in Studio, which stays covered by Odoo's upgrade SLA. If no, because the requirement needs real business logic, an external integration, or code that must be tested and version-controlled, scope a proper custom module, which gives full control but makes the business responsible for its own upgrade compatibility. New requirement or change request Does standard Odoo already cover this? Yes Use standard Odoo No build required Zero upgrade risk No Only needs Studio's fields, views, automation or report editor? Yes Build it in Studio fields · views · automation · report editor Covered by the upgrade SLA No Scope a custom module Python code · staged rollout · your own upgrade work Full control, full responsibility
The same three questions I ask on every change request, before anyone opens a code editor.

The hidden long-term costs

Where a change lives does not just affect this week's build. It changes what the next three years of that Odoo instance look like.

Upgrade fragility

This is where the two paths genuinely diverge, and it is backed by Odoo's own upgrade policy rather than my opinion. Odoo's upgrade service covers customisations built with Studio, provided Studio stays installed and the subscription stays active — because those changes are stored as structured data in your database, the same upgrade process that converts your standard modules converts them too. A custom-coded module does not get that. Odoo's developer documentation on upgrading a customised database is explicit that the module's own code has to be made compatible with the target version before the database can move, and that work is the client's or their partner's to do — it is not something the upgrade service performs. I go through what that compatibility work actually costs in a closer look at what a real Odoo version upgrade involves.

Who can maintain it

Most Studio work — a new field, an adjusted view, a straightforward automation rule — is something a trained administrator or functional consultant can maintain without opening a terminal. A custom module needs someone who can read Python, understand the ORM, and safely change code other parts of the system depend on. That is a staffing question to answer before you build, not after the person who wrote it has moved on.

Testability and how changes behave

Custom modules can live in version control, get reviewed, and be tested in a staging copy before anyone touches production — the same discipline you would want from any software change. Studio changes are made directly against the live database through a visual editor, which is what makes them fast, but it also means there is no built-in equivalent of a pull request. I get around that by keeping a written log of every Studio change outside Odoo, so there is at least a record of what changed and why.

Fit the standard first

My rule, after ten years of this, is to implement the standard app first and resist customising anything until I can say plainly why the business needs it. Much of what gets requested as customisation is really just unfamiliarity with how Odoo already does the job — and every hour spent rebuilding a standard screen to look like an old spreadsheet is an hour that did not go toward what actually differentiates the business. I break down where that budget typically goes in what actually drives Odoo implementation cost in the UAE.

Some businesses are the exception, and it shows in what earns a real module rather than a Studio patch. A bill-of-quantities estimate rolling into job costing and progress billing is genuinely how the engineering and contracting builds I run differ from a standard trading company, so I scope that as custom development rather than bending Studio around it. The same is true of milestone-based tracking and margin-guarded rate quoting in the freight-forwarding projects I build — that logic is the business, so it earns a proper module.

The rule I give every client: if you cannot say what the business would lose by using the standard screen, you are not customising — you are decorating. Save the custom-module budget for the thing that actually differentiates you.

Studio's feature set has grown across Odoo versions — the fields, automation triggers and report-editor tools described here reflect Odoo's 19.0 documentation. If you are running an older version, check what your release actually supports before you plan a build around it.

Frequently asked questions

Can Odoo Studio replace custom development for my business?
For a real share of what gets requested as customisation, yes. Studio handles new fields, view changes, approval workflows, straightforward automation rules and PDF report layout edits without a developer. In my experience, most of what clients first describe as customisation turns out to be exactly one of those. What it does not do is real business logic, third-party integrations, or anything that needs code you can test and version — that is custom-module territory, whatever the Studio interface makes it feel like.
Does Odoo Studio require the Enterprise edition?
Yes. Studio does not ship with Odoo's free Community edition — it is an Enterprise feature, and installing it on Odoo Online's Standard pricing plan automatically triggers an upsell to the Custom plan, the same tier that adds multi-company and the external API. If you have not settled which edition fits your business, that choice determines Studio access along with a long list of other apps.
Do changes made in Odoo Studio survive a version upgrade?
Generally yes, and this is one of Studio's genuine advantages. Odoo's upgrade service covers customisations built with Studio as long as Studio stays installed and the subscription stays active, because those changes are stored as structured data in the database rather than as separate program files. A custom-coded module is treated differently — Odoo's developer documentation is explicit that the module's own code must be made compatible with the target version before the database can be upgraded, and that work falls to you or your partner, not Odoo's upgrade service.
Can my own team maintain Studio changes, or do I need a developer?
Most Studio work — a new field, an adjusted view, a simple automation rule — is something a trained administrator or functional consultant can maintain without touching code. The moment an automation rule's Execute Code action or a webhook is doing real work, or a report needs its conditional logic edited in raw XML, you are back in developer territory even though it is technically still happening inside Studio.
How do I decide between Studio and a custom module for a specific request?
I ask three questions in order, the same ones in the decision diagram above: does a standard Odoo app already cover this without changes? If not, does it stay entirely inside Studio's fields, views, automation rules and report editor? If it still needs real business logic, an outside integration, or code that has to be tested and version-controlled before going live, I scope it as a custom module. Running every request through the same three questions is what keeps the decision consistent across a project instead of case-by-case.

Related reading

More from my desk: Odoo Community vs Enterprise — how to choose — the edition decision that determines whether you have Studio at all; what actually drives Odoo implementation cost in the UAE — where the Studio-versus-custom-module call shows up in your budget; and how to choose an Odoo implementation partner in the UAE — including the question I think every buyer should ask about what not to customise.

Want a second opinion before you customise?

I'm Muhammad Salman Ali Khan, an Odoo Techno-Functional Consultant in Dubai and Head of Projects at Techbot Information Technology LLC, a UAE Odoo partner — 10+ years, 100+ implementations, certified on Odoo v13, v14, v15, v16, v18 and v19, and I presented Odoo 19's new features at Odoo Experience 2025 in Brussels. Tell me what you are trying to build and I'll give you an honest, scoped view of what belongs in Studio and what earns a custom module — at no cost.

Get a free business evaluation