Back to all articlesGetting Started

Building Custom Odoo Apps Without Code: A Practical Guide to Odoo Studio

How Hong Kong SMEs use Odoo Studio to build custom apps with drag-and-drop — covering models, fields, views, automation, access rights, reports, and when to choose custom development instead.

APAA
Building Custom Odoo Apps Without Code: A Practical Guide to Odoo Studio

Every business runs on workflows that no off-the-shelf software was written to handle. At APAA, this is the gap Hong Kong SMEs hit most often: the standard module covers ninety percent of what they need, and the last ten percent — the part that is unique to their business — is precisely what software cannot do. The traditional answer, custom development, is expensive, slow, and needs ongoing maintenance. For a lean SME, that is a hard cost to justify.

Odoo Studio sits in the middle ground. It hands app development to the business users themselves through a visual drag-and-drop interface. You can build custom data models, design forms, set up automation rules, and generate reports — all without writing a single line of code. This guide covers what you need to know, from creating a basic app through to automation, access rights, and reporting.

What Is Odoo Studio

Odoo Studio is a visual development environment built into the Odoo platform, aimed squarely at non-technical users who need to tailor their ERP without hiring a developer.

With Studio, you can:

  • create entirely new applications from scratch
  • add, remove, or modify fields on any Odoo module
  • design form, list, kanban, calendar, and graph views
  • configure automation rules and scheduled actions
  • build custom print reports and documents

To open it, click the Studio icon — the gear and pencil — in the top-right corner of any Odoo screen. Note one prerequisite up front: Studio is an Odoo Enterprise feature; the Community edition does not include it.

Odoo Studio vs Custom Development

The honest question is not "Studio or code?" but "which one for this particular job?" This comparison frames the decision:

CriteriaOdoo StudioCustom Development
Technical skills requiredNoYes
Build timeHours to daysWeeks to months
Maintenance costLow (self-service)High (developer needed)
FlexibilityModerate (built-in components)Full (unlimited)
Upgrade compatibilityHigh (officially supported)Requires testing
Best forField customisation, simple workflowsComplex logic, API integrations

For the bulk of day-to-day SME requirements, Studio is enough. Custom development only becomes necessary when you hit complex business logic or third-party API integrations.

The Six Core Capabilities

Studio is organised around six capabilities that together cover the whole lifecycle of building an app.

1. App Builder

Create a brand-new Odoo application from scratch. The system generates a data model, menu items, and basic views for you — you only define the app name and the type of object it manages.

2. Field Editor

Add, remove, or modify fields on any form or list view. It supports over 15 field types, including text, number, date, selection, and relational fields.

3. View Designer

Customise form layouts, list columns, kanban card content, calendar views, and chart analytics — with every change previewing in real time.

4. Automation Engine

Set condition-based rules such as "notify the manager when an order exceeds HK$50,000." It supports trigger conditions, scheduled actions, and server actions.

5. Access Control

Control read, write, create, and delete permissions by user group, so sensitive data is only reachable by the people who should have it.

6. Report Builder

Design print reports through drag-and-drop — invoices, quotations, delivery slips, and custom documents, all carrying your company branding.

Building a Custom App From Scratch

The fastest way to understand Studio is to build something. We will walk through a "Customer Complaints" app from start to finish.

Step 1: Create a New App

  1. Click the Studio icon in the top-right corner
  2. Select "New App"
  3. Enter the app name: "Customer Complaints"
  4. Choose an app icon and colour
  5. Define the managed object name: "Complaint"
  6. Select the suggested features: picture, responsible person, stages

The system generates a basic data model, menu, and views automatically.

Step 2: Add Custom Fields

In the form view, drag new fields in from the left panel:

  • Complaint Type (Selection): Product Quality, Delivery Delay, Service Attitude, Billing Error
  • Customer (Many2one): linked to the Contacts model
  • Complaint Date (Date): when the complaint was received
  • Priority (Priority): Low, Medium, High, Urgent
  • Resolution Notes (HTML): detailed text documenting how it was resolved

Step 3: Configure Stages

Set up the complaint-handling pipeline in the kanban view:

  1. New
  2. Under Investigation
  3. In Progress
  4. Awaiting Customer Reply
  5. Resolved
  6. Closed

Give each stage a colour tag so the team can read complaint status at a glance.

Step 4: Set Up Automation

Layer on automation rules to take the manual work out of the process:

  • when a new complaint is created, auto-assign it to the on-duty service agent
  • if a complaint sits in "Under Investigation" for more than 3 days, send a reminder
  • when a complaint is marked "Resolved," auto-send a satisfaction survey email

After these four steps, you have a working customer complaint management system — built without a developer.

Field Types Explained

Choosing the right field type is the difference between clean, usable data and a mess you fight with later.

Basic Fields

Field TypePurposeExample
CharShort text inputCustomer name, phone number
TextLong text inputNotes, descriptions
HTMLFormatted textEmail content, detailed explanations
IntegerWhole numbersQuantity, floor number
FloatDecimal numbersWeight, area
MonetaryCurrency amountsQuotation, cost
DateDate selectionDue date, start date
BooleanYes/No toggleConfirmed, paid

Selection Fields

  • Selection: a dropdown for fixed options like status or type
  • Priority: a star rating for importance or urgency
  • Tags: multi-select labels for classification

Relational Fields

  • Many2one: links to a single record in another model (for example, "Responsible" links to Employee)
  • One2many: displays a list of related records (for example, the order lines on a sales order)
  • Many2many: a bidirectional multi-link (for example, products and tags)

One gotcha with relational fields: the target model has to exist already. If you want to link to data in a custom app, build that app first, then set up the relation.

Designing Views: Form, List, and Kanban

Studio supports several view types, each suited to a different job.

Form View

Form views are for viewing and editing one record at a time. Design points worth getting right:

  • Tab pages: group related fields into tabs (such as "Basic Info," "Financial," "Notes")
  • Column layout: use drag-and-drop to arrange fields across two columns
  • Status bar: show the record's current processing status across the top
  • Smart buttons: add shortcut buttons that jump to related records

List View

List views are for browsing many records at once. Design points:

  • show only the 5-8 most important fields
  • enable sorting and grouping
  • set a default sort field and direction
  • add optional columns users can switch on themselves

Kanban View

Kanban views are for pipeline-style workflow. Design points:

  • put 3-4 key fields on each card
  • enable colour coding for quick visual identification
  • give stages meaningful names
  • allow drag-and-drop between stages

Other Views

  • Calendar view: records laid out by date, for scheduling and appointments
  • Graph view: bar, pie, and line charts for analysis
  • Pivot table: multi-dimensional cross-analysis for revenue and inventory reports

Automation Rules

Automation is one of Studio's most powerful features, and the one that pays back the fastest by cutting repetitive manual tasks.

Trigger Types

TriggerDescriptionExample
On CreationFires when a record is createdNew order auto-notifies the warehouse
On UpdateFires when specific fields changeStatus changed to "Confirmed" sends an email
On DeletionFires when a record is deletedLogs the deletion to an audit trail
Based on ConditionFires when field values match criteriaOverdue by 7 days triggers a reminder
ScheduledRuns on a scheduleDaily 9 AM to-do list generation

Available Actions

A rule can carry out any of these:

  • Update record: auto-set field values (assign a responsible person, change a status)
  • Create record: auto-create related records in other models
  • Send email: send notification emails from predefined templates
  • Add activity: create a to-do item for the responsible person
  • Execute code: advanced users can run Python code

Practical Example: Auto Follow-Up

A follow-up rule, end to end:

  1. Trigger: a quotation created 3 days ago, status still "Sent"
  2. Action: auto-send a follow-up email to the customer
  3. Additional action: create a "Call to follow up" activity for the salesperson

This single rule ensures every quotation gets a timely nudge, without anyone having to track it by hand.

Access Rights Management

Once an app exists, you need to control who can touch which data. Studio handles this at the group level.

Permission Types

PermissionDescription
ReadView records
WriteEdit records
CreateAdd new records
DeleteRemove records

Configuration Steps

  1. Open the target app in Studio
  2. Click the "Access Rights" menu
  3. Select a user group (such as "Sales / User" or "Sales / Manager")
  4. Tick the appropriate read, write, create, and delete permissions for each group

Common Configurations

  • Service agents: can read and create complaint records, but not delete
  • Service managers: full permissions, including delete and export
  • Sales department: can only read complaints tied to their own customers

Set up properly, access control protects your data without getting in the way of daily work.

Report Builder

Studio's report builder lets you customise printed documents without ever touching QWeb template code.

Document Types You Can Customise

  • invoices and receipts
  • quotations and contracts
  • delivery notes and packing slips
  • custom business reports

Report Design Elements

  • Company logo and brand colours: keep your documents consistently branded
  • Header and footer: company info, page numbers, dates
  • Dynamic data fields: auto-populated from the record's values
  • Conditional display: show or hide sections depending on the data
  • Tables: line items with subtotals and grand totals

Design Tips

  • keep layouts clean — go easy on decorative elements
  • put the important information (amounts, dates, reference numbers) where the eye lands first
  • include payment terms and contact details in the footer
  • preview with varying data volumes so the layout still holds when content overflows

Email Gateway: Create Records on the Go

Studio supports an email gateway that lets people create records simply by sending an email — a real win for teams who spend their days out of the office.

Setup Steps

  1. Enable the "Chatter" widget on the form view
  2. Configure an email alias in Studio settings (such as complaints@yourcompany.com)
  3. Send an email to that address, and the system creates a new record automatically

How It Works

  • the email subject becomes the record name
  • the email body becomes a note on the record
  • attachments are uploaded to the record automatically
  • follow-up replies are threaded under the same record

For a field team, this means submitting data without ever logging in — a meaningful lift in how much gets captured and how quickly.

Practical Tips for Hong Kong SMEs

Drawn from real implementation experience, here is how to get the most out of Studio.

Start Small

Resist the urge to build a complex app on day one. Pick a simple process — quotation tracking, sample management — build a basic version in Studio, let the team use it, then expand from there.

Lean on Existing Modules

Before building a new app from scratch, check whether Odoo already has a module close to what you need. Often, adding a few custom fields to an existing module beats starting from zero. For example:

  • Need to track renovation project progress? Add custom fields to the "Project" module.
  • Need to manage membership expiry dates? Add a date field and an automation reminder to the "Contacts" model.

Naming Conventions

Keep your field naming disciplined:

  • field labels in your local language, technical names in lowercase English with underscores (such as x_complaint_type)
  • arrange selection-field options in a logical order
  • avoid creating duplicate fields that do roughly the same job

Back Up Regularly

Studio changes take effect immediately in the production environment, so:

  • test major changes in a staging environment first
  • document every change along with its purpose
  • keep regular database backups

Consider Upgrade Impact

Studio customisations usually migrate automatically across Odoo version upgrades. Even so:

  • avoid modifying the core fields of standard Odoo modules
  • custom fields use the x_ prefix (Studio handles this for you)
  • always validate in a test environment before upgrading

Common Questions

Is Odoo Studio included in every Odoo plan?

No. Studio is only in the Enterprise edition; the Community edition does not include it. You need an Odoo Enterprise subscription to use it.

Will Studio-built apps slow the system down?

Generally not. Studio apps use the same underlying architecture as standard modules. That said, if you add a large number of computed fields or complex automation rules, keep an eye on response times.

Can I edit apps another Studio user created?

Yes. Any app built through Studio can be modified by anyone with Studio access rights. Keep an internal change log so team members do not overwrite each other's configurations.

Can Studio changes be undone?

There is no automatic undo — every change takes effect immediately. Document existing configurations before you change them, or test in staging first, and always back up the database before a major change.

When should I choose custom development over Studio?

Reach for custom development when you need:

  • third-party API integrations (payment gateways, logistics APIs)
  • complex business logic (dynamic pricing formulas, for instance)
  • substantial changes to how a core module behaves
  • a highly customised frontend interface

The Takeaway

Odoo Studio gives Hong Kong SMEs a genuinely practical low-code tool. It lets business users build and adjust applications on their own, without depending on an outside development team.

The points worth holding onto:

  • Studio is ideal for field customisation, simple workflow automation, and report design
  • start with small apps and grow them gradually
  • use automation rules to remove repetitive manual tasks
  • configure access rights properly to keep data secure
  • complex requirements still call for custom development

If you are weighing up customising Odoo to fit your business processes, Studio is a low-risk place to start. And if you would like a second opinion on where Studio ends and custom development should begin, talk to the APAA team — we will help you draw that line for your specific case.

Tags:odooodoo-studiono-codecustomizationgetting-started

Considering Odoo for your business?

Talk to APAA about a tailored Odoo implementation for your Hong Kong SME.

Enquire about Odoo services
Building Custom Odoo Apps Without Code: A Practical Guide to Odoo Studio | APAA