Automated actions are one of the most useful tools in Odoo that most businesses never fully use. They let you trigger actions automatically based on record changes or time conditions, without writing a custom module — but the domain filters and trigger logic take some getting used to.
What automated actions actually do
An automated action watches for something to happen on a model — a record being created, updated, deleted, or a scheduled time being reached — and then runs one or more actions in response: updating a field, sending an email, creating a related record, or executing custom Python code. They’re built on top of domains, which define exactly which records and which conditions trigger the action.
Setting one up
To view or create automated actions, go to Settings > Technical > Automation > Automated Actions (Developer Mode needs to be enabled to see this menu). Click Create to start a new one.
Every automated action needs four things defined: the Model it applies to, the Trigger (when it runs), the Apply On filter (which records qualify), and the Action itself (what happens).
The six trigger types
Odoo gives you six ways to trigger an automated action: On Creation (a record is created and saved), On Update (an existing record is edited and saved), On Creation and Update (both), On Deletion, Based on Time Condition (a date field is reached, with an optional delay before or after), and — for state-change logic — combining On Update with a Before Update Domain to check the record’s state before the change alongside the Apply On filter checking its state after.
The eight action types
Once triggered, an automated action can: execute Python code directly, create a new record (optionally linked to the triggering record), update the current record, execute several actions in sequence, send an email, add followers to a record, create a follow-up activity, or send a text message. Most day-to-day automations use just two or three of these — update-the-record and send-email cover a large share of real use cases.
Where this commonly goes wrong
The most common mistake we see is an On Update trigger with a domain filter that’s too broad, causing the action to fire far more often than intended and quietly slow down the database. The fix is almost always a tighter Before Update Domain and Apply On combination that only matches the specific state transition you actually care about — not “any update to this record.”
Building automations yourself is genuinely powerful, but getting the domain filters and trigger logic right takes real Odoo experience, especially for anything beyond a simple email trigger. If you’d rather not learn this the hard way on a live database, Mediod Consulting’s development team can build and test automated actions for you.
Frequently Asked Questions
Do I need to know Python to use Odoo automated actions?
Not for the basics — triggers, domains, and most action types (create record, send email, add followers) are fully configurable through the UI. Python code is only needed for the “Execute Python Code” action type or complex field logic.
Can automated actions slow down my Odoo database?
Yes, if the trigger and domain are too broad — particularly “On Update” without a tight filter. This is exactly the kind of issue an experienced Odoo partner catches during a build review.
What’s the difference between an automated action and a custom module?
Automated actions handle event-driven logic (do X when Y happens) without writing or deploying code. A custom module is needed for genuinely new functionality — new fields, new views, new business logic that doesn’t fit the trigger/action model. See our Odoo Customization guide for more on that distinction.
Get Automated Actions Set Up Correctly
Automated actions are one of the fastest ways to get more value out of an existing Odoo setup — but poorly scoped ones cause exactly the kind of quiet problems that are hard to trace later. Talk to Mediod Consulting’s development team about auditing or building your Odoo automated actions properly.

