Odoo 19 Studio is an Enterprise app for adding fields, changing views, building automations and editing reports without code, and Odoo's upgrade service covers Studio customisations while Studio stays installed and the subscription is active. Use Studio for fields, layouts, simple rules and report tweaks. Write a custom module when you need new business logic, integrations, performance-sensitive code or anything you want under version control and tests.
What Odoo 19 Studio can change
Studio (web_studio) is licensed OEEL-1. On Odoo's current plans it is included in the Custom plan, and it can also be picked as the single app on the free one-app plan; check odoo.com/pricing for your case. Open it from the toolbar icon on any screen, and it edits the screen you were on.
Inside an app, the Studio bar gives you Views, Reports, Automations, Webhooks, Access Control and Filter Rules. From the Studio home screen you can also create a New App, and Export or Import customisations.
- Fields: new fields on existing models are technical-named
x_studio_…. Text, numbers, dates, selections, many2one links, related fields and more. - Views: form, list, kanban, calendar, pivot, graph, search, activity, and in Enterprise map, Gantt and cohort. Hide fields, make them required, move them, add tabs.
- Reports: edit PDF layouts such as quotations and invoices, add fields or dynamic tables.
- Approvals: rules on buttons so, for example, a sales order above a threshold needs a manager's approval before confirmation.
- New apps: a custom model with its own menu, views and fields, for a simple register such as equipment loans or site visits.
Automations, webhooks and the Community alternatives
Automations in Studio are Automation Rules (base_automation), which is a Community module. Studio gives them a friendlier editor; in Community you reach the same rules in developer mode under Settings > Technical > Automation > Automation Rules.
Rules are triggered by events such as Stage is set to, User is set, Tag is added, On create and edit, On deletion, On UI change, Based on date field, After creation, After last update, On incoming message, On outgoing message and On webhook. The actions they run are server actions: Update Record, Create Record, Duplicate Record, Execute Code, Send Webhook Notification and Multi Actions, plus sending emails, SMS or scheduling activities.
Odoo 19 also has Properties fields in Community on several records, including contacts, CRM leads (defined per sales team) and project tasks (defined per project). Properties let users add simple fields without Studio or code. For a few extra fields on a lead or a task, try them first.
Where Studio stops and a custom module is the right call
| Need | Studio | Custom module |
|---|---|---|
| Extra fields, layout changes, required fields | Yes | Overkill |
| Quotation or invoice layout tweaks | Yes | For complex, multi-company layouts |
| Simple rules: set a field, send an email, create an activity | Yes | Not needed |
| Calculations across many records, or changes to posting logic | No | Yes |
| Integrations with a bank, marketplace, GST or logistics API | Webhooks for simple pushes only | Yes |
| Heavy data volumes or scheduled batch jobs | No | Yes |
| Code your team wants in Git, with tests and review | No | Yes |
Apps built with Studio's New App deserve the same scrutiny. The model gets a technical name starting with x_, and it has fields, views and menus but no Python methods of its own; any behaviour comes from automation rules. That is fine for a register or a checklist. It becomes fragile once the app needs to post journal entries, reserve stock or talk to another system, because every rule is another piece of logic that lives only in the database.
A custom module is also the right call when a change must behave identically across several databases, such as staging and production or a group of companies on separate instances. Studio's Export produces a zip containing a module (studio_customization) that can be imported elsewhere, but it is generated data, not code you maintain.
For Indian businesses, the typical boundary cases are e-invoicing and e-way bill integrations, TDS or TCS logic beyond what the localisation provides, and data migrations from Tally. All of those belong in code. The GST localisation itself is covered in part 22.
How Studio and custom modules behave during upgrades
This is the part that decides long-term cost. Odoo's upgrade documentation states that upgrade services cover all standard apps, all customisations created with Studio as long as Studio is still installed and the subscription is active, and developments covered by a maintenance of customisations subscription.
Custom modules are different. Their source code must be updated to the target version before the database can be upgraded. That work is yours or your partner's, and it scales with how much the module overrides standard behaviour.
Studio is cheap to add and cheap to upgrade, but only while it stays within what Studio is meant for.
One practical warning: Studio view changes are stored as inherited views that target elements of the standard view. If a later version restructures that view, the customisation may need adjusting after the upgrade, so test Studio-heavy screens on the upgraded copy like any other change.
A sensible customisation policy
- Run standard for a few weeks before customising anything; many requests disappear.
- Try configuration and Properties fields first.
- Use Studio for fields, views, reports and simple automations, and keep a list of every change.
- Move anything with code, integrations or heavy logic into a module in Git.
- Review the Studio list before each upgrade and remove what nobody uses.
Whoever owns Studio in your organisation should also own that list. The next post in the series is about upgrading to Odoo 19 from 16, 17 or 18. If you already have a mix of Studio and custom code to carry forward, our upgrade service or implementation team can review it.
Questions we get asked
Is Odoo Studio included in Odoo Community?
No. Studio is an Enterprise app, licensed OEEL-1. On Odoo's current plans it is part of the Custom plan and can also be chosen as the single app on the free one-app plan; odoo.com/pricing has the details. Community users can still use Automation Rules in developer mode and Properties fields on contacts, leads and tasks, but not Studio's visual editors.
Do Studio customisations survive an Odoo upgrade?
Odoo's upgrade services cover customisations made with Studio as long as Studio is still installed and the subscription is active. Custom modules are not covered unless you have a maintenance of customisations subscription; their code must be ported to the new version first. Studio view changes can still need adjusting when a standard screen is restructured, so test them on the upgraded copy.
When should I use a custom module instead of Studio?
Use a custom module when you need new business logic, calculations across many records, changes to accounting or stock behaviour, integrations with external APIs, scheduled batch jobs or code you want in version control with tests. Studio is best for fields, view layouts, report tweaks, approval rules and simple automations that set values, send emails or create activities.
Can I move Studio customisations to another Odoo database?
Yes. The Studio home screen has an Export option that packages your customisations as a module named studio_customization, which can be imported into another database with the same apps and version. It is useful for moving work from staging to production. It is generated data rather than maintainable source code, so larger changes are better written as a proper module.