This module allows to automate several process according to some rules.
This is useful for creating automated actions on your database like:
- Send a welcome email to all new partners (or filtered according to some rules)
- Remember to online customers that they forgot their basket with some items
- Send documents to sign to all new employees
auto_awesome What this module does
AI-generated from the code · Odoo 18.0Lets users build multi-step automations on any chatter-enabled model: send emails, create activities or run server actions, chained by triggers such as mail opened, clicked, replied or activity finished. Each run is tracked per record with graphs and click statistics.
This module adds an automation builder to Odoo. A user creates an automation configuration, picks a model that supports messages (chatter), and defines a filter to choose which records it applies to. The filter can be saved as a reusable filter and can use variables like the current user, date or references.
Each configuration is made of steps. A step can send an email from a template, create an activity (with summary, note, due date and responsible user), or run a server action with a context. Steps can be chained: a step can start at the beginning of the workflow, after another step, or when something happens to a previous email or activity — mail opened, not opened, replied, not replied, clicked, not clicked, bounced, activity finished, cancelled or not finished. Steps can have a delay (hours or days), an optional expiry, and can be based on a date field of the record.
Automations can run on demand or periodically through a scheduled job. A second scheduled job creates the records to process. Each processed record is stored with its steps, so users see what was done, what is pending, what expired or failed, and can retry or cancel a step. A test wizard lets users try a configuration on a chosen record before running it.
Dashboards show counts of records, activities, clicks and a 14-day graph of done versus failed steps. Configurations can be exported to a file and imported back, including their mail templates, activity types and server actions. Company rules restrict visibility of configurations.
Depends on
Models and fields (13)
- mail.mail · extends an existing modelautomation_record_step_id
- mail.thread · extends an existing model
- mail.activity · extends an existing modelautomation_record_step_id
- automation.tag · new modelname, color, active
- automation.filter · new modelname, model (Model), domain, model_id (Model ID)
- automation.record · new modelname, model, state, res_id (Record), is_test, resource_ref, configuration_id, is_orphan_record, automation_step_ids
- link.tracker.click · extends an existing modelautomation_record_step_id, automation_configuration_id, automation_configuration_step_id
- mail.compose.message · extends an existing modelautomation_record_step_id
- automation.record.step · new modelname, state, is_test, child_ids, parent_id, record_id, step_icon, step_name, step_type, message_id, do_not_wait, error_trace, expiry_date, mail_status, processed_on, step_actions, trigger_type, mail_opened_on, scheduled_date, mail_clicked_on, mail_replied_on, parent_position, activity_done_on, configuration_id, trigger_type_data, activity_cancel_on, configuration_step_id
- automation.configuration · new modelname, model (Model), state, active, domain, tag_ids, field_id, model_id (Model ID), filter_id, company_id, click_count, is_periodic, record_count, filter_domain, editable_domain, record_run_count, record_done_count, record_test_count, activity_mail_count, automation_step_ids, next_execution_date, activity_action_count, automation_direct_step_ids
- automation.configuration.step · new modelname, model (Model), domain, expiry, model_id (Model ID), child_ids, parent_id, step_icon, step_name, step_type, graph_data, graph_done, graph_error, allow_expiry, trigger_type, activity_note (Note), applied_domain, mail_author_id, server_context, expiry_interval, parent_position, activity_summary (Summary), activity_type_id (Activity), activity_user_id (Responsible), configuration_id, mail_template_id, server_action_id, trigger_interval, trigger_date_kind, trigger_type_data
- automation.configuration.test · new modelmodel, resource_ref, configuration_id
- automation.configuration.export · new modelfile_name, file_content, configuration_id
Text generated by AI (DeepSeek) from reading the Odoo 18.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 3 confirmed, 6 with no information of 9 versions.
Sources · Odoo 16.0
Confirmed on 2026-11-03 in branch 16.0 of OCA/automation.
terminal Installation and usage
OCA documentation · Odoo 18.0Usage
Source · Odoo 18.0Configure your processes
- Access the
Automationmenu. - Create a new Automation Configuration.
- Set the model and domains.
- Go to Configuration -> Filters to create filters as a preconfigured domains. Filters can be established in the proper field in the Automation Configuration record.
- Create the different steps by clicking the "ADD" button inside the automation configuration form.
- Create child steps by clicking the "Add child activity" at the bottom of a created step.
7.
- Select the kind of configuration you create. You can choose between:
- Periodic configurations: every 6 hours, a process will check if new records need to be created.
- On demand configurations: user need to execute manually the job.
- Press
Start. - Inside the process, you can check all the created items.
Configuration of steps
Steps can trigger one of the following options:
Mail: Sends an email using a template.Server Action: Executes a server action.Activity: Creates an activity to the related record.
All the steps need to specify the moment of execution. We will set the number of hours/days and a trigger type:
Start of workflow: It will be executed at the previously-configured time after we create the record.Execution of another step: It will be executed at the previously-configured time after the previous step is finished properly.Mail opened: It will be executed at the previously-configured time after the mail from the previous step is opened.Mail not opened: It will be executed at the previously-configured time after the mail from the previous step is sent if it is not opened before this time.Mail replied: It will be executed at the previously-configured time after the mail from the previous step is replied.Mail not replied: It will be executed at the previously-configured time after the mail from the previous step is opened if it has not been replied.Mail clicked: It will be executed at the previously-configured time after the links of the mail from the previous step are clicked.Mail not clicked: It will be executed at the previously-configured time after the mail from the previous step is opened and no links are clicked.Mail bounced: It will be executed at the previously-configured time after the mail from the previous step is bounced back for any reason.Activity has been finished: It will be executed at the previously-configured time after the activity from the previous action is done.Activity has not been finished: It will be executed at the previously-configured time after the previous action is executed if the related activity is not done.
Important to remember to define a proper template when sending the email. It will the template without using a notification template. Also, it is important to define correctly the text partner or email to field on the template
Records creation
Records are created using a cron action. This action is executed every 6 hours by default.
Step execution
Steps are executed using a cron action. This action is executed every hour by default. On the record view, you can execute manually an action.
There is a way to enforce step execution when finalize the previous one. If we set a negative value on the period, the execution will be immediate without a cron.
No verified information in OCA: Installation, Configuration.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.