Dieser Artikel ist derzeit nur auf Englisch verfügbar. Die Übersetzung folgt bald.
Odoo 19 Studio: Low-Code Form and Field Builder Updates
Odoo Studio is the marketing name for the platform's no-code/low-code customization layer. In Odoo 17 it was capable but uneven — great for adding fields and tweaking views, awkward for anything involving relations or computed values. Odoo 19's Studio rewrote the field builder, modernized the view editor, and added automated-action templates that cover most workflow customizations without leaving the browser.
This article walks through what Studio can do in 19, where it still falls short of a custom Python module, and the decision rule for when to escalate from Studio to a developer module.
Key Takeaways
- Field builder added "smart" types: computed (Python expression), related, image with thumbnail
- View editor supports kanban, list, form, search, calendar, gantt, pivot in one tool
- Automated actions cover create/update triggers + scheduled cron + on-button-click
- App builder lets non-developers ship a basic app (model + views + menu) without IDE
- Studio changes export as a real Odoo module — version-controllable
- Limits remain for: complex computed fields, multi-record actions, custom reports
- Performance impact is minimal but compounding — audit Studio fields periodically
What Studio is good at
Studio in 19 handles 80-85% of common ERP customization requests cleanly:
- Adding a custom field to an existing model (text, number, date, boolean, selection, relation)
- Modifying the form view to add/remove/reorder fields
- Adding a new section or tab to a form
- Building a custom kanban or list view
- Creating a simple automated action ("when invoice is paid, send a Slack notification")
- Building a small standalone app (custom model with form + list + menu)
For these tasks, the browser experience is sufficient. No git, no PR, no deploy.
The new field builder
Field types you can create from Studio in 19:
| Type | Description | New in 19? |
|---|---|---|
| Char | Short text | No |
| Text | Long text | No |
| Integer | Whole number | No |
| Float | Decimal | No |
| Boolean | True/false | No |
| Date / Datetime | Calendar field | No |
| Selection | Dropdown of fixed values | No |
| Many2one | Relation to one record | No |
| One2many / Many2many | Relation to many records | No |
| Image | Photo with thumbnail variants | Improved |
| Computed | Python expression evaluated on read | Yes |
| Related | Mirrors another field via path | Improved (now multi-hop) |
| Currency / Monetary | Money with currency_id link | No |
| Tags | Color-coded tags | New |
| Phone | Click-to-call formatted phone | New |
The computed-field option is the headline addition. Previously you had to write a Python module for any field that needed to combine other fields into a derived value. In 19, Studio lets you express simple Python:
# Studio computed field — example: full address as one string
record.street + ' ' + (record.street2 or '') + ', ' + record.city + ' ' + (record.zip or '') + ' ' + record.country_id.name
The expression evaluates in a sandbox with access to record, env (limited), and a small library of helpers (date arithmetic, string formatting, math). Loops and complex logic are blocked — Studio explicitly nudges toward "if you need that, build a real module."
View editor — unified
Odoo 17 had separate flows for editing form vs list vs kanban vs search. Odoo 19 unified them into one editor that lets you toggle between view types and edit each.
Common improvements:
- Drag-and-drop field placement
- Field properties panel with all attributes (required, readonly, invisible, widget, domain)
- Conditional display via Python expression on
invisibleattribute - Visual preview while editing (live data shown when possible)
- Undo/redo stack with view-level granularity
For users coming from Salesforce Lightning Builder or HubSpot's customization tools, the experience now feels comparable.
Automated actions
Automated actions in 19 categorize:
- On create — runs when a record is first inserted
- On update — runs when specific fields change
- On delete — runs before record is removed (can block)
- Scheduled — cron-style time-based
- On button click — runs when a custom action button is pressed
Each action can:
- Send an email (using email templates)
- Update field(s) on the triggering record
- Update field(s) on related records (one hop)
- Create a record on another model
- Make a webhook call (POST to URL)
- Run a Python expression (sandboxed)
- Create activity / mail thread post
Multi-step actions (run A, then B) chain via the action's "next action" field. For workflow logic with branching, the Approval module ships separately and integrates with Studio actions.
App builder for non-developers
Studio lets a non-developer ship a basic app:
- Click "New App" in Studio
- Define the model (e.g.,
Equipment) with fields - Generate default form, list, kanban views
- Add a menu entry
- Configure access rights via the security tab
- Save → the app appears in the apps menu
Limits: you can't define record rules visually (must use Studio's record-rules editor, which is a structured form), can't define a custom report (use the QWeb editor separately), can't define multi-table joins beyond single-hop relations.
Useful for: equipment registries, project asset tracking, internal request forms, simple inventory of non-stocked items.
Studio outputs a real module
A common misconception: "Studio changes are stored in some database table I can't version-control." In Odoo 19, every Studio change generates a regular Odoo module under the hood. You can:
- Export the module as a zip
- Commit it to git
- Apply it to other databases (staging, prod)
- Modify it manually if needed
This means Studio is suitable for production use cases — your customizations migrate, version, and deploy cleanly.
When to escalate to a developer module
Studio in 19 falls short for:
| Customization | Studio | Developer module |
|---|---|---|
| Single field on existing model | Yes | Yes (overkill) |
| Computed field with simple expression | Yes | Yes |
| Computed field with complex business logic | No | Yes |
Override _compute_* to depend on multi-hop fields | No | Yes |
| Custom QWeb report | No | Yes |
Override stock workflow (e.g., custom _action_assign) | No | Yes |
| Add cron job with complex queries | Limited | Yes |
| Integrate with external API beyond webhook | No | Yes |
| Multi-record bulk action | Limited | Yes |
| Performance-critical computed field | No (sandbox slow) | Yes |
| Custom widget (frontend) | No | Yes |
| Custom OWL component | No | Yes |
Rule of thumb: if the customization requires more than 5 lines of Python or any frontend code, escalate to a developer module.
Performance considerations
Studio computed fields run in a Python sandbox that's slower than a native compiled compute method. For fields read frequently (e.g., shown in list views), this matters:
- 5-10x slower per evaluation than native
- Cached per record-and-field, so repeat reads are fast
- Bulk reads (list view of 100 records) feel slower
Mitigation: use store=True on Studio computed fields where the input fields don't change often. The sandbox compute runs once at write-time, then reads from storage.
Migration considerations
If you used Odoo 17 Studio, your changes migrate cleanly. Specific things to re-check:
- Computed fields whose expression depends on a field that moved between modules (rare, but happens)
- Automated actions that webhook to URLs — verify the URLs still respond
- View customizations on views that materially changed (POS, accounting, manufacturing)
Frequently Asked Questions
Is Studio included in all Odoo Editions?
Studio is an Enterprise-only feature. Community edition does not include Studio. If you migrate from a custom community installation to Enterprise, Studio becomes available; you can build customizations that previously required Python modules.
Can I edit Studio output as a regular module?
Yes. Export the Studio module, edit the Python/XML by hand, re-import, or maintain it as a regular addon in your repo. Once you start hand-editing, future Studio UI changes to the same module may conflict; manage carefully.
Does Studio block custom Python modules from coexisting?
No. Studio modules and traditional addon modules coexist fine. Best practice: name Studio modules with a prefix (studio_*) so they're easy to identify, and keep behavioral logic in traditional modules where possible.
How do I move Studio changes from staging to production?
Three options: (1) Export from staging, import to prod (manual but explicit). (2) Apply the same module via git deployment (recommended for CI/CD pipelines). (3) Re-do the changes in production Studio (only if changes are very small).
Can Studio do multi-record updates (e.g., "for all open orders, set field X to Y")?
Not directly. Automated actions trigger per-record. For bulk operations, write a server action (Python) and trigger it from Studio. For one-time operations, use the Odoo shell or a small server action ran from the developer mode.
Studio in Odoo 19 is the right tool for fast, iterative ERP customization — until it isn't, at which point a developer module is the right escalation. ECOSIRE's Odoo customization team can audit your Studio customizations, identify which should stay in Studio vs migrate to proper modules, and build the developer modules for the cases Studio can't cover. See our Odoo implementation service for end-to-end customization workflows.
Geschrieben von
ECOSIRE TeamTechnical Writing
The ECOSIRE technical writing team covers Odoo ERP, Shopify eCommerce, AI agents, Power BI analytics, GoHighLevel automation, and enterprise software best practices. Our guides help businesses make informed technology decisions.
ECOSIRE
Transformieren Sie Ihr Unternehmen mit Odoo ERP
Kompetente Odoo-Implementierung, Anpassung und Support zur Optimierung Ihrer Abläufe.
Verwandte Artikel
So fügen Sie einer Odoo-Formularansicht eine benutzerdefinierte Schaltfläche hinzu (2026)
Fügen Sie benutzerdefinierte Aktionsschaltflächen zu Odoo 19-Formularansichten hinzu: Python-Aktionsmethode, Ansichtsvererbung, bedingte Sichtbarkeit, Bestätigungsdialoge. Produktionsgeprüft.
So fügen Sie ein benutzerdefiniertes Feld in Odoo ohne Studio hinzu (2026)
Fügen Sie benutzerdefinierte Felder über ein benutzerdefiniertes Modul in Odoo 19 hinzu: Modellvererbung, Ansichtserweiterung, berechnete Felder, Store/Non-Store-Entscheidungen. Code-First, versioniert.
So fügen Sie einen benutzerdefinierten Bericht in Odoo mithilfe eines externen Layouts hinzu
Erstellen Sie einen gebrandeten PDF-Bericht in Odoo 19 mit web.external_layout: QWeb-Vorlage, Papierformat, Aktionsbindung. Mit gedrucktem Logo + Fußzeilenüberschreibungen.