HADOOPT
TECHNOLOGIES
Schedule a Tech Consultation
Home
Services
Odoo ERP implementation Rollout, custom modules, migration and support. Web application development SaaS products, portals and internal platforms. Mobile application development Offline-first field apps and customer apps. AI development & automation LLM assistants, document processing, forecasting. Odoo version upgrades ↗ Move to a newer release, scoped and priced on its own site.
Products
OrgExp ↗ Budget, CAPEX and OPEX management.
Blog About Contact Schedule a Tech Consultation
Blog / Odoo 19: Complete Guide for Businesses
Odoo 19 6 min read

Customising Odoo 19 with Studio, and when to write a module instead

What Odoo 19 Studio does with fields, views, automations and reports, where it stops, when a custom module is the right call, and what that means for upgrades.

· ERP practice 22 Sep 2026

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

NeedStudioCustom module
Extra fields, layout changes, required fieldsYesOverkill
Quotation or invoice layout tweaksYesFor complex, multi-company layouts
Simple rules: set a field, send an email, create an activityYesNot needed
Calculations across many records, or changes to posting logicNoYes
Integrations with a bank, marketplace, GST or logistics APIWebhooks for simple pushes onlyYes
Heavy data volumes or scheduled batch jobsNoYes
Code your team wants in Git, with tests and reviewNoYes

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

  1. Run standard for a few weeks before customising anything; many requests disappear.
  2. Try configuration and Properties fields first.
  3. Use Studio for fields, views, reports and simple automations, and keep a list of every change.
  4. Move anything with code, integrations or heavy logic into a module in Git.
  5. 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.

← Previous Documents, Sign and Knowledge in Odoo 19: files, e-signatures and internal wikis Next → Upgrading to Odoo 19 from Odoo 16, 17 or 18
Keep reading
Odoo 19 Getting started with Odoo 19: what changed and where to begin 6 min read Odoo 19 Installing Odoo 19 from source, Docker or packages 7 min read Odoo 19 Odoo 19 hosting: Odoo Online vs Odoo.sh vs on-premise 6 min read