Skip to main content
iVentureTeam
Odoo 19

Odoo Automation Rules in Odoo 19 and 20: Triggers, Actions, Examples

Odoo automation rules in Odoo 19 and 20: every trigger and action, worked examples, why rules fail to fire, what changed in 20 and when to use code instead.

Siddharth JambukiyaSiddharth JambukiyaOdoo Techno-Functional Consultant
November 7, 202613 min read3 views
Odoo Automation Rules in Odoo 19 and 20: Triggers, Actions, Examples cover

This guide shows the exact trigger and action names in Odoo 19 and 20, worked rules you can rebuild, and why rules silently skip records. When rules are not enough, our Odoo customization services build the code version.

It is for Odoo admins and operations leads who want fewer manual follow-ups. If you are still deciding what to automate first, start with our guide to enterprise workflow automation.

What are Odoo automation rules, and how do they differ from server actions?

An Odoo automation rule is a trigger plus conditions that runs one or more server actions automatically, while a server action on its own only runs when someone clicks it or code calls it. Older guides call automation rules "Odoo automated actions"; the idea is the same.

Every action inside a rule is an Odoo server action; the rule adds the "when" and "for which records".

ToolWhat starts itBest forNeeds code?
Automation ruleA record event, a date or a webhookFollow-ups tied to a record changeNo, unless you pick Execute Code
Server actionA button, the Action menu or another ruleReusable one-click jobsNo for most types
Scheduled actionA timer, for example every 4 hoursBatch jobs and pollingUsually yes
Studio approval ruleA button click on a formSign-off before a stepNo
Custom modulePython overrides in the ORMComplex logic, high volume, testsYes

Approvals are a separate tool, covered in our guide to Odoo sales order approval.

Where do you find automation rules in Odoo 19 and 20?

Automation rules live in the Automation Rules module, which is not installed by default; once installed, you open them from Studio or from Settings, Technical, Automation Rules in developer mode. The module itself is part of Odoo Community under the LGPL-3 license.

On the Odoo forum, an admin reported automation rules missing in Odoo 19; the module simply was not installed yet. In Community, remove the "Apps" filter to find it.

Odoo Studio is listed on the Custom plan on the Odoo pricing page. In the same forum thread, one Odoo Online user on 19.3 said installing the module on Standard prompted a switch to Custom.

Treat that as one user report and check it in your own database before you plan around it.

Which triggers does an Odoo automation rule offer?

Odoo 19 and 20 group triggers into five categories, and the list you see depends on the fields of the model you pick. The exact labels below come from the Odoo 19 and 20 source code and the official documentation.

CategoryTrigger labels in Odoo 19 and 20Typical use
Values UpdatedStage is set to, User is set, Tag is added, State is set to, Priority is set to, On archived, On unarchivedReact to a business status change
Email EventsOn incoming message, On outgoing messageReopen a ticket when a customer replies
Timing ConditionsBased on date field, After creation, After last updateReminders, escalations, clean-up
CustomOn create, On create and edit, On deletion, On UI changeDefaults, numbering, guard rails
ExternalOn webhookLet another system update Odoo

The picker hides triggers your model cannot support. Our page on the automation trigger selection widget explains that filtering, and why the deprecated "On update" trigger only shows on rules already using it.

Email Events only work on models with a chatter; Odoo raises an error otherwise.

Which actions can an Odoo automation rule run?

Odoo automation rule actions: What changed from Odoo 19 to 20?

A rule can run any mix of record updates, messages, activities, webhooks, Python code and, in Odoo 20, AI instructions, in the order you set. Order matters: a message sent after an update shows the new values, and one sent before shows the old ones.

ActionOdoo 19Odoo 20
Update RecordUpdate, Update with AI, Sequence, ComputeSame four options
MessagesSend Email as Email, Message or NoteSend Message and Log Note split
Create ActivityOne activity type, specific or dynamic userActivity type or full activity plan
Execute CodePython with env, record and recordsSame Python variables available
WebhooksSend Webhook Notification, On webhook triggerSame POST of selected fields
AIUpdate with AI on one fieldNew AI action and AI Agents

Both versions also offer Create Record, Duplicate Record, Add or Remove Followers, Send SMS, Send WhatsApp and Multi Actions. The 20.0 page of the Odoo automation rules documentation adds a Request Signature section.

Update with AI, the AI action and AI Agents run on Odoo AI credits in Odoo 20. Budget for them before you switch them on; our Odoo 20 AI features and IAP credits breakdown shows the monthly cost.

How do you create an Odoo automation rule step by step?

Build each rule on a duplicate database first, name it clearly, set the narrowest trigger and conditions you can, then add actions and test with real records. The steps below work in both Odoo 19 and 20.

  1. Activate developer mode so you can see the model, the Before Update Domain and the Apply on domain.
  2. Open Studio, click Automations, then New, or go to Settings, Technical, Automation Rules.
  3. Name the rule after its outcome, for example "Overdue invoice: call after 7 days".
  4. Pick the Trigger. For On create and edit, always fill the When updating field.
  5. Add conditions: Before Update Domain for the state before the change, Apply on for the state after it.
  6. Click Add an action in the Actions To Do tab, choose the Type and save.
  7. Write the purpose in the Notes tab.
  8. Test with three records: one that should fire, one that should not, and one edge case.

Six worked Odoo automation rule examples

These six rules cover the requests we see most often, and each one uses only documented triggers and actions. Rebuild them on a copy of your database, adjust field names to your setup, and test before going live.

GoalModelTriggerConditionsActions
Chase overdue invoicesJournal EntryBased on date field: Due Date, 7 days AfterCustomer invoice, posted, not paidCreate Activity: Call, Dynamic User salesperson
Revive stale quotesSales OrderAfter last update, 14 daysState is Quotation SentCreate Activity for salesperson, Log Note
Number new customersContactOn createIs a Company is setUpdate Record with a Sequence on Reference
Escalate urgent tasksTaskPriority is set toPriority is the highest levelCompute an Escalated on date, Add Followers
Reopen on replyHelpdesk TicketOn incoming messageStage is SolvedUpdate Record: stage to In Progress
Tell another systemManufacturing OrderState is set to ConfirmedWebhook flag not yet sentSend Webhook Notification, then Update Record flag

The first two use Timing Conditions, so they need one extra step. After saving, open the "Automation Rules: check and execute" scheduled action and click Run manually, or the rule may fire on old records.

The webhook example sends only the fields you select as a POST request, and the flag stops repeat sends.

Sometimes no rule is needed: service products already create tasks from sales orders, one per line. One task listing every line needs Execute Code.

Why is my Odoo automation rule not firing?

Most "broken" rules are working as designed: the trigger never saw the change, the condition was checked at the wrong moment, or the timer has not run yet. Check these causes in order.

  • Before Update Domain on create: Odoo does not check the Before Update Domain when a record is created, so rules that depend on it skip new records.
  • Timing rules waiting: the check-and-execute scheduled action runs every 4 hours by default; Odoo speeds it up, for example to every 18 minutes, when a rule has a delay under 40 hours.
  • Retroactive firing: a timing rule only acts when its execution time falls between the scheduler's last run and the current run, so run it manually once after setup.
  • On UI change limits: it only works with Execute Code and only for manual edits on the form, never for changes made by another rule.
  • Background records: an MRP order created and confirmed in one step by a make-to-order flow did not fire a rule watching for confirmation in one forum report on MTO orders.
  • Loop guard: within one run, Odoo marks records a rule has processed so the same rule does not re-run on them, which stops loops but also surprises chained rules.
  • Mail triggers: internal notes and system notifications do not fire On incoming message or On outgoing message.

For background records, the forum's most reliable fix was a scheduled action that polls for records in the right state.

When should you use code instead of an Odoo automation rule?

Use a plain automation rule for single-record follow-ups, and move to Execute Code, a scheduled action or a custom module when you need loops, cross-record logic, volume or tests. The table is the checklist we use with clients.

SituationUseWhy
Set a field, send a message, add an activityAutomation rule, no codeFast to build, easy for admins to read
Build text from order lines or totalsExecute Code actionField mapping cannot loop over lines
Records created by procurement or importsScheduled action that pollsRules may miss one-step create and confirm
Thousands of records an hourCustom moduleRule overhead adds up on every write
Logic that must survive upgrades unchangedCustom module with testsDatabase rules are harder to review and test
Two-way sync with another appWebhook or integration layerRetries and errors need a proper home

Execute Code is still Python in your database. Odoo's documentation states that maintenance of custom code is not included in the Standard or Custom plans and incurs extra fees, so write it down and review it at every upgrade.

See where Studio stops in Odoo Studio vs custom development, and webhook patterns in our n8n Odoo integration guide.

What changed for automation rules in Odoo 20?

Odoo 20 keeps the same five trigger groups and adds AI options, activity plans and clearer messaging actions. Comparing the 19.0 and 20.0 docs, these are the changes that affect rule design.

  • Send Message and Log Note: Odoo 19's Send Email action, with Email, Message or Note, becomes two actions in the 20.0 docs.
  • AI action and AI Agents: a rule can now take written instructions, with optional tools that call server actions, instead of a fixed action list.
  • Activity plans: Create Activity can launch a full plan, and can assign to a Specific Role as well as a user.
  • Explanation tab: each action can carry its own note, which helps future admins.

Existing single-activity rules keep working. Our Odoo 20 Studio release notes list the activity plan change with where to find it.

A fixed rule does the same thing every time; an AI instruction may not. Keep AI for drafting and classifying, and money, stock and approvals on fixed actions. Our guide to automating Odoo workflows with AI covers where AI belongs.

Odoo automation rules by industry

The best first rules differ by industry, but they all target a costly manual follow-up that happens dozens of times a week. These are common starting points; the trigger names are the Odoo 19 and 20 labels.

IndustryPain or cost driverOdoo approachHow iVentureTeam helps
ManufacturingConfirmed orders not passed to the shop floorState is set to, then Create Activity or webhookAdd scheduled actions for MTO orders
DistributionLate supplier deliveries spotted too lateBased on date field on scheduled dateMap vendor follow-up roles
Professional servicesUnbilled time at month endAfter last update on tasksBuild billing reminders
SaaS and supportSolved tickets reopened by emailOn incoming message on ticketsDesign stage and SLA rules
Retail and eCommerceAbandoned quotes from the webshopAfter creation on quotationsPair rules with email templates

How iVentureTeam helps with Odoo automation rules

Planning automations? Price the work first

We help teams pick the right rules, build them safely and replace them with code when a rule is the wrong tool. We have delivered 150+ ERP projects across 35+ countries with 40+ Odoo specialists over 13+ years.

  • Rule audit: list every active rule, its trigger, conditions and owner, and switch off duplicates.
  • Rule design: build and test new rules on a duplicate database before they touch live data.
  • Code when needed: our Odoo development company team writes Execute Code actions, scheduled actions and modules with tests.
  • Upgrade checks: review rules and code before an Odoo 20 upgrade so nothing fires twice.
  • Quick scoping: price a set of automations with the Odoo project estimate tool.

Odoo automation rules case study: Mechanical Products IL

A US precision components maker needed product data to update itself, and the answer was scheduled actions and custom code, not more rules. The project ran on Odoo 17 and took 6 weeks.

Mechanical Products IL ran its whole product lifecycle on manual Excel imports. Sales and cost prices did not update on import, and purchase orders created from sales orders did not pick up the latest vendor price.

We built a custom product-lifecycle module that creates, updates and archives products from the uploaded sheet. Scheduled actions keep cost prices in sync, and we overrode core purchase methods so orders always use the current vendor price.

The result was 3 product workflows automated and 90% less manual import effort. Read the Mechanical Products Odoo product data automation case study.

The bottom line on Odoo automation rules

Automation rules are the right first tool for routine follow-ups in Odoo 19 and 20, as long as you know when they fire and when to hand the job to code. Start small and test each rule.

Pick three manual follow-ups, build each as a narrow rule on a copy of your database, and check them a week later. Move anything with loops, volume or background records to code.

Ready to put your Odoo follow-ups on rules that actually fire?

Review my automation rules

Get your automation rules designed, tested and documented by people who also write the code behind them. Talk to us about your Odoo automation rules, call +91-90235-15208, or email business@iventureteam.com.

Frequently Asked Questions

What is the difference between automation rules and automated actions in Odoo?

+

They are the same feature. Older Odoo versions and many guides call them automated actions; Odoo 19 and 20 call them automation rules. Each rule runs one or more server actions when its trigger fires.

Are Odoo automation rules available in Community edition?

+

Yes. The Automation Rules module (base_automation) is part of Odoo Community under LGPL-3. It is not installed by default, so remove the Apps filter in the Apps menu to find and install it.

Do I need Odoo Studio to create automation rules?

+

No. With developer mode on, you can create rules from Settings, Technical, Automation Rules. Studio gives a friendlier editor and is part of the Custom plan, so check your plan before relying on it.

Why does my time-based automation rule not run?

+

Timing rules run through the "Automation Rules: check and execute" scheduled action, every 4 hours by default. The execution time must fall between its last run and the current run, so run it manually once after setup.

What is the difference between a server action and an automation rule?

+

A server action is the job itself, such as updating a record or sending a message. An automation rule decides when that job runs, based on a trigger and conditions. Server actions can also run from a button.

Can an Odoo automation rule send a webhook?

+

Yes. The Send Webhook Notification action sends a POST request with the fields you select to an external URL. The On webhook trigger works the other way, letting another system update Odoo records.

How do I stop an automation rule from running twice?

+

Fill the When updating field for On create and edit rules, and add a Before Update Domain so the rule only fires on a real change. A flag field that the rule sets after acting also prevents repeats.

When should I use Python code instead of an automation rule?

+

Use code when you need to loop over lines, combine several records, handle high volume, catch records created in the background, or write tests. Odoo bills maintenance of custom code separately from the plan.

What is new for automation rules in Odoo 20?

+

Odoo 20 splits messages into Send Message and Log Note, adds an AI action and AI Agents, and lets Create Activity launch a full activity plan. The five trigger groups stay the same.

Free Odoo implementation plan

Planning your Odoo implementation?

A senior consultant reviews your processes and sends a phased roadmap, what to set up first and a fixed-price range.

Free, with no obligation. A senior consultant replies within 12 business hours.