| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/19.0/base_automation |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Sales/Sales |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo S.A. |
| MAINTAINERS | |
| MAINTAINERS | Odoo S.A. |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Thibault Delavallée, Nicolas Martinelli, Aaron Bohy, Lucas Perais, Julien Castiaux, Julien Mougenot, std-odoo, Achraf (abz), Tiffany Chang (tic), Rémy Voet (ryv), Gorash, Mathieu Duckerts-Antoine, luvi, Julien Banken, Gaetan Vanden Bergh (gavb), Maximilien (malb), Victor Piryns (pivi), Levi Siuzdak (sile), Dylan Kiss (dyki), Bruno Boi, omra-odoo, Zelong Lin, Cyrus Robins, “Beekan”, Bruno Boi (boi), Lopes Marc (loma), Julien Segers (juse), Michaël Mattiello, Corentin Heinix (cohe), Krzysztof Magusiak (krma), Elijah Tay (elct), ramh, Bruno BOI |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 01:51:43 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - digest - base_setup - web - bus - web_tour - html_editor - portal - http_routing - auth_signup - resource - sms - iap_mail - iap - phone_validation |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
This module allows to implement automation rules for any object.
================================================================
Use automation rules to automatically trigger actions for various screens.
**Example:** A lead created by a specific user may be automatically set to a specific
Sales Team, or an opportunity which still has status pending after 14 days might
trigger an automatic reminder email.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_base_automation_form |
Automations | base.automation | form | New |
view_base_automation_kanban |
base.automation.kanban | base.automation | kanban | New |
view_base_automation_search |
base.automation.search | base.automation | search | New |
view_base_automation_tree |
base.automation.list | base.automation | list | New |
view_server_action_form |
Server Actions | ir.actions.server | xpath | Inherits base.view_server_action_form |
action_server_ids
One2many → ir.actions.server
compute='_compute_action_server_ids'
context={'default_usage': 'base_automation'}
readonly=False
store=True
string='Actions'
args: 'ir.actions.server', 'base_automation_id'
active
Boolean
default=True
help='When unchecked, the rule is hidden and will not be executed.'
description
Html
string='Description'
filter_domain
Char
compute='_compute_filter_domain'
help='If present, this condition must be satisfied before executing the automation rule.'
readonly=False
store=True
string='Apply on'
filter_pre_domain
Char
compute='_compute_filter_pre_domain'
help='If present, this condition must be satisfied before the update of the record. Not checked on record creation.'
readonly=False
store=True
string='Before Update Domain'
last_run
Datetime
copy=False
readonly=True
log_webhook_calls
Boolean
default=False
string='Log Calls'
model_id
Many2one → ir.model
domain=[('abstract', '=', False)]
ondelete='cascade'
required=True
string='Model'
tracking=True
args: 'ir.model'
model_is_mail_thread
Boolean
related='model_id.is_mail_thread'
model_name
Char
inverse='_inverse_model_name'
readonly=True
related='model_id.model'
string='Model Name'
name
Char
required=True
string='Automation Rule Name'
tracking=True
translate=True
on_change_field_ids
Many2many → ir.model.fields
compute='_compute_on_change_field_ids'
help='Fields that trigger the onchange.'
readonly=False
relation='base_automation_onchange_fields_rel'
store=True
string='On Change Fields Trigger'
args: 'ir.model.fields'
previous_domain
Char
default=<expr>
store=False
record_getter
Char
default="model.env[payload.get('_model')].browse(int(payload.get('_id')))"
help='This code will be run to find on which record the automation rule should be run.'
trg_date_calendar_id
Many2one → resource.calendar
compute='_compute_trg_date_calendar_id'
help='When calculating a day-based timed condition, it is possible to use a calendar to compute the date based on working days.'
readonly=False
store=True
string='Use Calendar'
args: 'resource.calendar'
trg_date_id
Many2one → ir.model.fields
compute='_compute_trg_date_id'
domain="[('model_id', '=', model_id), ('ttype', 'in', ('date', 'datetime'))]"
help='When should the condition be triggered.\n If present, will be checked by the scheduler. If empty, will be checked at creation and update.'
readonly=False
store=True
string='Trigger Date'
tracking=True
args: 'ir.model.fields'
trg_date_range
Integer
compute='_compute_trg_date_range_data'
readonly=False
store=True
string='Delay'
tracking=True
trg_date_range_mode
Selection
compute='_compute_trg_date_range_data'
readonly=False
store=True
string='Delay mode'
tracking=True
args: [('after', 'After'), ('before', 'Before')]
trg_date_range_type
Selection
compute='_compute_trg_date_range_data'
readonly=False
store=True
string='Delay unit'
tracking=True
args: [('minutes', 'Minutes'), ('hour', 'Hours'), ('day', 'Days'), ('month', 'Months')]
trg_field_ref
Many2oneReference
compute='_compute_trg_field_ref'
help='Some triggers need a reference to another field. This field is used to store it.'
model_field='trg_field_ref_model_name'
readonly=False
store=True
string='Trigger Reference'
trg_field_ref_model_name
Char
compute='_compute_trg_field_ref_model_name'
string='Trigger Field Model'
trg_selection_field_id
Many2one → ir.model.fields.selection
compute='_compute_trg_selection_field_id'
domain="[('field_id', 'in', trigger_field_ids)]"
help='Some triggers need a reference to a selection field. This field is used to store it.'
readonly=False
store=True
string='Trigger Field'
args: 'ir.model.fields.selection'
trigger
Selection
compute='_compute_trigger'
readonly=False
required=True
store=True
string='Trigger'
tracking=True
args: [('on_stage_set', 'Stage is set to'), ('on_user_set', 'User is set'), ('on_tag_set', 'Tag is added'), ('on_state_set', 'State is set to'), ('on_priority_set', 'Priority is set to'), ('on_archive', 'On archived'), ('on_unarchive', 'On unarchived'), ('on_create', 'On create'), ('on_create_or_write', 'On create and edit'), ('on_write', 'On update'), ('on_unlink', 'On deletion'), ('on_change', 'On UI change'), ('on_time', 'Based on date field'), ('on_time_created', 'After creation'), ('on_time_updated', 'After last update'), ('on_message_received', 'On incoming message'), ('on_message_sent', 'On outgoing message'), ('on_webhook', 'On webhook')]
trigger_field_ids
Many2many → ir.model.fields
compute='_compute_trigger_field_ids'
help='The automation rule will be triggered if and only if one of these fields is updated.If empty, all fields are watched.'
readonly=False
store=True
string='Trigger Fields'
args: 'ir.model.fields'
url
Char
compute='_compute_url'
help='Use this URL in the third-party app to call this webhook.'
webhook_uuid
Char
copy=False
default=<expr>
readonly=True
string='Webhook UUID'
action_open_scheduled_action(self)
action_rotate_webhook_uuid(self)
action_view_webhook_logs(self)
copy(self, default=None)
create(self, vals_list)
unlink(self)
write(self, vals: dict)
base_automation_id
Many2one → base.automation
index='btree_not_null'
ondelete='cascade'
string='Automation Rule'
args: 'base.automation'
usage
Selection
ondelete={'base_automation': 'cascade'}
selection_add=[('base_automation', 'Automation Rule')]
action_open_automation(self)
No new fields.
Public methods (1)action_open_automation(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/18.0/base_automation |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Sales/Sales |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Xavier Morel, Nicolas Martinelli, Aaron Bohy, Damien Bouvy, Yannick Tivisse, Odoo Online, Lucas Perais, Julien Castiaux, Xavier-Do, Sébastien Theys, Julien Mougenot, Achraf (abz), Tiffany Chang (tic), Rémy Voet (ryv), Gorash, Stanislas Sobieski, Abdelouahab (abla), Julien Banken, bve-odoo, Thomas Lefebvre (thle), Gaetan Vanden Bergh (gavb), Louis Wicket (wil), nda, Maximilien (malb), amdi-odoo, Levi Siuzdak (sile), Dylan Kiss (dyki), Bruno Boi, Mattis Megevand (mmeg), omra-odoo, Cyrus Robins, “Beekan”, Bruno Boi (boi), Bastien Fafchamps (bafa), Julien Carion (juca), Lopes Marc (loma), Julien Segers (juse), sami odoo, Louis (wil), sabr, Pierre Pulinckx (pipu), Corentin Heinix (cohe), Elijah Tay (elct), Bruno BOI, saurabh |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 01:25:56 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - digest - base_setup - web - bus - web_tour - html_editor - portal - web_editor - http_routing - auth_signup - resource - sms - iap_mail - iap - phone_validation |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
This module allows to implement automation rules for any object.
================================================================
Use automation rules to automatically trigger actions for various screens.
**Example:** A lead created by a specific user may be automatically set to a specific
Sales Team, or an opportunity which still has status pending after 14 days might
trigger an automatic reminder email.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
ir_actions_server_view_form_automation |
ir.actions.server.view.form.automation | ir.actions.server | xpath | Inherits base.view_server_action_form |
view_base_automation_form |
Automations | base.automation | form | New |
view_base_automation_kanban |
base.automation.kanban | base.automation | kanban | New |
view_base_automation_search |
base.automation.search | base.automation | search | New |
view_base_automation_tree |
base.automation.list | base.automation | list | New |
action_server_ids
One2many → ir.actions.server
compute='_compute_action_server_ids'
context={'default_usage': 'base_automation'}
readonly=False
store=True
string='Actions'
args: 'ir.actions.server', 'base_automation_id'
active
Boolean
default=True
help='When unchecked, the rule is hidden and will not be executed.'
description
Html
string='Description'
filter_domain
Char
compute='_compute_filter_domain'
help='If present, this condition must be satisfied before executing the automation rule.'
readonly=False
store=True
string='Apply on'
filter_pre_domain
Char
compute='_compute_filter_pre_domain'
help='If present, this condition must be satisfied before the update of the record. Not checked on record creation.'
readonly=False
store=True
string='Before Update Domain'
last_run
Datetime
copy=False
readonly=True
least_delay_msg
Char
compute='_compute_least_delay_msg'
log_webhook_calls
Boolean
default=False
string='Log Calls'
model_id
Many2one → ir.model
domain=[('field_id', '!=', False)]
help='Model on which the automation rule runs.'
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
model_is_mail_thread
Boolean
related='model_id.is_mail_thread'
model_name
Char
inverse='_inverse_model_name'
readonly=True
related='model_id.model'
string='Model Name'
name
Char
required=True
string='Automation Rule Name'
translate=True
on_change_field_ids
Many2many → ir.model.fields
compute='_compute_on_change_field_ids'
help='Fields that trigger the onchange.'
readonly=False
relation='base_automation_onchange_fields_rel'
store=True
string='On Change Fields Trigger'
args: 'ir.model.fields'
record_getter
Char
default="model.env[payload.get('_model')].browse(int(payload.get('_id')))"
help='This code will be run to find on which record the automation rule should be run.'
trg_date_calendar_id
Many2one → resource.calendar
compute='_compute_trg_date_calendar_id'
help='When calculating a day-based timed condition, it is possibleto use a calendar to compute the date based on working days.'
readonly=False
store=True
string='Use Calendar'
args: 'resource.calendar'
trg_date_id
Many2one → ir.model.fields
compute='_compute_trg_date_id'
domain="[('model_id', '=', model_id), ('ttype', 'in', ('date', 'datetime'))]"
help='When should the condition be triggered.\n If present, will be checked by the scheduler. If empty, will be checked at creation and update.'
readonly=False
store=True
string='Trigger Date'
args: 'ir.model.fields'
trg_date_range
Integer
compute='_compute_trg_date_range_data'
help='Delay after the trigger date. You can put a negative number if you need a delay before the trigger date, like sending a reminder 15 minutes before a meeting.'
readonly=False
store=True
string='Delay after trigger date'
trg_date_range_type
Selection
compute='_compute_trg_date_range_data'
readonly=False
store=True
string='Delay type'
args: [('minutes', 'Minutes'), ('hour', 'Hours'), ('day', 'Days'), ('month', 'Months')]
trg_field_ref
Many2oneReference
compute='_compute_trg_field_ref'
help='Some triggers need a reference to another field. This field is used to store it.'
model_field='trg_field_ref_model_name'
readonly=False
store=True
string='Trigger Reference'
trg_field_ref_model_name
Char
compute='_compute_trg_field_ref_model_name'
string='Trigger Field Model'
trg_selection_field_id
Many2one → ir.model.fields.selection
compute='_compute_trg_selection_field_id'
domain="[('field_id', 'in', trigger_field_ids)]"
help='Some triggers need a reference to a selection field. This field is used to store it.'
readonly=False
store=True
string='Trigger Field'
args: 'ir.model.fields.selection'
trigger
Selection
compute='_compute_trigger'
readonly=False
required=True
store=True
string='Trigger'
args: [('on_stage_set', 'Stage is set to'), ('on_user_set', 'User is set'), ('on_tag_set', 'Tag is added'), ('on_state_set', 'State is set to'), ('on_priority_set', 'Priority is set to'), ('on_archive', 'On archived'), ('on_unarchive', 'On unarchived'), ('on_create_or_write', 'On save'), ('on_create', 'On creation'), ('on_write', 'On update'), ('on_unlink', 'On deletion'), ('on_change', 'On UI change'), ('on_time', 'Based on date field'), ('on_time_created', 'After creation'), ('on_time_updated', 'After last update'), ('on_message_received', 'On incoming message'), ('on_message_sent', 'On outgoing message'), ('on_webhook', 'On webhook')]
trigger_field_ids
Many2many → ir.model.fields
compute='_compute_trigger_field_ids'
help='The automation rule will be triggered if and only if one of these fields is updated.If empty, all fields are watched.'
readonly=False
store=True
string='Trigger Fields'
args: 'ir.model.fields'
url
Char
compute='_compute_url'
webhook_uuid
Char
copy=False
default=<expr>
readonly=True
string='Webhook UUID'
action_rotate_webhook_uuid(self)
action_view_webhook_logs(self)
copy(self, default=None)
create(self, vals_list)
unlink(self)
write(self, vals: dict)
base_automation_id
Many2one → base.automation
ondelete='cascade'
string='Automation Rule'
args: 'base.automation'
name
Char
compute='_compute_name'
readonly=False
store=True
usage
Selection
ondelete={'base_automation': 'cascade'}
selection_add=[('base_automation', 'Automation Rule')]
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/17.0/base_automation |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Sales/Sales |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Thibault Delavallée, Xavier Morel, Aaron Bohy, Damien Bouvy, Yannick Tivisse, Odoo Online, Jorge Pinna Puissant, Lucas Perais, Julien Castiaux, Xavier-Do, Sébastien Theys, Samuel Degueldre, Achraf (abz), Ivan Yelizariev, Tiffany Chang (tic), Rémy Voet (ryv), Gorash, Stanislas Sobieski, Abdelouahab (abla), Hubert Van De Walle, luvi, bve-odoo, Thomas Lefebvre (thle), Gaetan Vanden Bergh (gavb), Louis Wicket (wil), nda, Mahamadasif Ansari, Levi Siuzdak (sile), Dylan Kiss (dyki), Bruno Boi, FrancoisGe, Michael (mcm), Mattis Megevand (mmeg), Cyrus Robins, “Beekan”, Bruno Boi (boi), Julien Segers (juse), sami odoo, Louis (wil), sabr, Corentin Heinix (cohe), Elijah Tay (elct) |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 01:02:07 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - resource - web - base_setup - bus - web_tour - sms - iap_mail - iap - phone_validation |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
This module allows to implement automation rules for any object.
================================================================
Use automation rules to automatically trigger actions for various screens.
**Example:** A lead created by a specific user may be automatically set to a specific
Sales Team, or an opportunity which still has status pending after 14 days might
trigger an automatic reminder email.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
ir_actions_server_view_form_automation |
ir.actions.server.view.form.automation | ir.actions.server | xpath | Inherits base.view_server_action_form |
view_base_automation_form |
Automations | base.automation | form | New |
view_base_automation_kanban |
base.automation.kanban | base.automation | kanban | New |
view_base_automation_search |
base.automation.search | base.automation | search | New |
view_base_automation_tree |
base.automation.tree | base.automation | tree | New |
action_server_ids
One2many → ir.actions.server
compute='_compute_action_server_ids'
context={'default_usage': 'base_automation'}
readonly=False
store=True
string='Actions'
args: 'ir.actions.server', 'base_automation_id'
active
Boolean
default=True
help='When unchecked, the rule is hidden and will not be executed.'
description
Html
string='Description'
filter_domain
Char
compute='_compute_filter_domain'
help='If present, this condition must be satisfied before executing the automation rule.'
readonly=False
store=True
string='Apply on'
filter_pre_domain
Char
compute='_compute_filter_pre_domain'
help='If present, this condition must be satisfied before the update of the record. Not checked on record creation.'
readonly=False
store=True
string='Before Update Domain'
last_run
Datetime
copy=False
readonly=True
least_delay_msg
Char
compute='_compute_least_delay_msg'
log_webhook_calls
Boolean
default=False
string='Log Calls'
model_id
Many2one → ir.model
domain=[('field_id', '!=', False)]
help='Model on which the automation rule runs.'
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
model_is_mail_thread
Boolean
related='model_id.is_mail_thread'
model_name
Char
inverse='_inverse_model_name'
readonly=True
related='model_id.model'
string='Model Name'
name
Char
required=True
string='Automation Rule Name'
translate=True
on_change_field_ids
Many2many → ir.model.fields
compute='_compute_on_change_field_ids'
help='Fields that trigger the onchange.'
readonly=False
relation='base_automation_onchange_fields_rel'
store=True
string='On Change Fields Trigger'
args: 'ir.model.fields'
record_getter
Char
default="model.env[payload.get('_model')].browse(int(payload.get('_id')))"
help='This code will be run to find on which record the automation rule should be run.'
trg_date_calendar_id
Many2one → resource.calendar
compute='_compute_trg_date_calendar_id'
help='When calculating a day-based timed condition, it is possibleto use a calendar to compute the date based on working days.'
readonly=False
store=True
string='Use Calendar'
args: 'resource.calendar'
trg_date_id
Many2one → ir.model.fields
compute='_compute_trg_date_id'
domain="[('model_id', '=', model_id), ('ttype', 'in', ('date', 'datetime'))]"
help='When should the condition be triggered.\n If present, will be checked by the scheduler. If empty, will be checked at creation and update.'
readonly=False
store=True
string='Trigger Date'
args: 'ir.model.fields'
trg_date_range
Integer
compute='_compute_trg_date_range_data'
help='Delay after the trigger date. You can put a negative number if you need a delay before the trigger date, like sending a reminder 15 minutes before a meeting.'
readonly=False
store=True
string='Delay after trigger date'
trg_date_range_type
Selection
compute='_compute_trg_date_range_data'
readonly=False
store=True
string='Delay type'
args: [('minutes', 'Minutes'), ('hour', 'Hours'), ('day', 'Days'), ('month', 'Months')]
trg_field_ref
Many2oneReference
compute='_compute_trg_field_ref'
help='Some triggers need a reference to another field. This field is used to store it.'
model_field='trg_field_ref_model_name'
readonly=False
store=True
string='Trigger Reference'
trg_field_ref_display_name
Char
compute='_compute_trg_field_ref__model_and_display_names'
string='Trigger Reference Display Name'
trg_field_ref_model_name
Char
compute='_compute_trg_field_ref__model_and_display_names'
string='Trigger Field Model'
trg_selection_field_id
Many2one → ir.model.fields.selection
compute='_compute_trg_selection_field_id'
domain="[('field_id', 'in', trigger_field_ids)]"
help='Some triggers need a reference to a selection field. This field is used to store it.'
readonly=False
store=True
string='Trigger Field'
args: 'ir.model.fields.selection'
trigger
Selection
compute='_compute_trigger_and_trigger_field_ids'
readonly=False
required=True
store=True
string='Trigger'
args: [('on_stage_set', 'Stage is set to'), ('on_user_set', 'User is set'), ('on_tag_set', 'Tag is added'), ('on_state_set', 'State is set to'), ('on_priority_set', 'Priority is set to'), ('on_archive', 'On archived'), ('on_unarchive', 'On unarchived'), ('on_create_or_write', 'On save'), ('on_create', 'On creation'), ('on_write', 'On update'), ('on_unlink', 'On deletion'), ('on_change', 'On UI change'), ('on_time', 'Based on date field'), ('on_time_created', 'After creation'), ('on_time_updated', 'After last update'), ('on_message_received', 'On incoming message'), ('on_message_sent', 'On outgoing message'), ('on_webhook', 'On webhook')]
trigger_field_ids
Many2many → ir.model.fields
compute='_compute_trigger_and_trigger_field_ids'
help='The automation rule will be triggered if and only if one of these fields is updated.If empty, all fields are watched.'
readonly=False
store=True
string='Trigger Fields'
args: 'ir.model.fields'
url
Char
compute='_compute_url'
webhook_uuid
Char
copy=False
default=<expr>
readonly=True
string='Webhook UUID'
action_rotate_webhook_uuid(self)
action_view_webhook_logs(self)
copy(self, default=None)
create(self, vals_list)
unlink(self)
write(self, vals: dict)
base_automation_id
Many2one → base.automation
ondelete='cascade'
string='Automation Rule'
args: 'base.automation'
name
Char
compute='_compute_name'
readonly=False
store=True
usage
Selection
ondelete={'base_automation': 'cascade'}
selection_add=[('base_automation', 'Automation Rule')]
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/16.0/base_automation |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Sales/Sales |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Thibault Delavallée, Nicolas Lempereur, GitHub, Yannick Tivisse, Christophe Monniez, Jorge Pinna Puissant, Xavier-Do, Victor Feyens, Sébastien Theys, Florent de Labarre, Julien Mougenot, Samuel Degueldre, Ivan Yelizariev, Rémy Voet (ryv), Gorash, Stanislas Sobieski, bve-odoo, Bruno Boi, Michael (mcm), “Beekan”, Martin Trigaux (mat) |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:40:50 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - resource - web - base_setup - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
This module allows to implement action rules for any object.
============================================================
Use automated actions to automatically trigger actions for various screens.
**Example:** A lead created by a specific user may be automatically set to a specific
Sales Team, or an opportunity which still has status pending after 14 days might
trigger an automatic reminder email.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_base_automation_form |
Automations | base.automation | xpath | Inherits base.view_server_action_form |
view_base_automation_search |
base.automation.search | base.automation | search | New |
view_base_automation_tree |
base.automation.tree | base.automation | tree | New |
action_server_id
Many2one → ir.actions.server
delegate=True
domain="[('model_id', '=', model_id)]"
ondelete='restrict'
required=True
args: 'ir.actions.server', 'Server Actions'
active
Boolean
default=True
help='When unchecked, the rule is hidden and will not be executed.'
filter_domain
Char
help='If present, this condition must be satisfied before executing the action rule.'
string='Apply on'
filter_pre_domain
Char
compute='_compute_filter_pre_domain'
help='If present, this condition must be satisfied before the update of the record.'
readonly=False
store=True
string='Before Update Domain'
last_run
Datetime
copy=False
readonly=True
least_delay_msg
Char
compute='_compute_least_delay_msg'
on_change_field_ids
Many2many → ir.model.fields
compute='_compute_on_change_field_ids'
help='Fields that trigger the onchange.'
readonly=False
relation='base_automation_onchange_fields_rel'
store=True
string='On Change Fields Trigger'
args: 'ir.model.fields'
trg_date_calendar_id
Many2one → resource.calendar
compute='_compute_trg_date_calendar_id'
help='When calculating a day-based timed condition, it is possible to use a calendar to compute the date based on working days.'
readonly=False
store=True
string='Use Calendar'
args: 'resource.calendar'
trg_date_id
Many2one → ir.model.fields
compute='_compute_trg_date_id'
domain="[('model_id', '=', model_id), ('ttype', 'in', ('date', 'datetime'))]"
help='When should the condition be triggered.\n If present, will be checked by the scheduler. If empty, will be checked at creation and update.'
readonly=False
store=True
string='Trigger Date'
args: 'ir.model.fields'
trg_date_range
Integer
compute='_compute_trg_date_range_data'
help='Delay after the trigger date.\n You can put a negative number if you need a delay before the\n trigger date, like sending a reminder 15 minutes before a meeting.'
readonly=False
store=True
string='Delay after trigger date'
trg_date_range_type
Selection
compute='_compute_trg_date_range_data'
readonly=False
store=True
string='Delay type'
args: [('minutes', 'Minutes'), ('hour', 'Hours'), ('day', 'Days'), ('month', 'Months')]
trigger
Selection
required=True
string='Trigger'
args: [('on_create', 'On Creation'), ('on_write', 'On Update'), ('on_create_or_write', 'On Creation & Update'), ('on_unlink', 'On Deletion'), ('on_change', 'Based on Form Modification'), ('on_time', 'Based on Timed Condition')]
trigger_field_ids
Many2many → ir.model.fields
compute='_compute_trigger_field_ids'
help='The action will be triggered if and only if one of these fields is updated. If empty, all fields are watched.'
readonly=False
store=True
string='Trigger Fields'
args: 'ir.model.fields'
create(self, vals_list)
unlink(self)
write(self, vals)
usage
Selection
ondelete={'base_automation': 'cascade'}
selection_add=[('base_automation', 'Automated Action')]
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/15.0/base_automation |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Sales/Sales |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Olivier Dony, Thibault Delavallée, Xavier Morel, Goffin Simon, Nicolas Lempereur, Géry Debongnie, Aaron Bohy, GitHub, Lucas Perais (lpe), Yannick Tivisse, Julien Castiaux, Xavier-Do, Florent de Labarre, Julien Mougenot, Ivan Yelizariev, Stanislas Sobieski, bve-odoo, Louis Wicket (wil) |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:25:28 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - resource - web - base_setup - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
This module allows to implement action rules for any object.
============================================================
Use automated actions to automatically trigger actions for various screens.
**Example:** A lead created by a specific user may be automatically set to a specific
Sales Team, or an opportunity which still has status pending after 14 days might
trigger an automatic reminder email.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_base_automation_form |
Automations | base.automation | xpath | Inherits base.view_server_action_form |
view_base_automation_search |
base.automation.search | base.automation | search | New |
view_base_automation_tree |
base.automation.tree | base.automation | tree | New |
action_server_id
Many2one → ir.actions.server
delegate=True
domain="[('model_id', '=', model_id)]"
ondelete='restrict'
required=True
args: 'ir.actions.server', 'Server Actions'
active
Boolean
default=True
help='When unchecked, the rule is hidden and will not be executed.'
filter_domain
Char
help='If present, this condition must be satisfied before executing the action rule.'
string='Apply on'
filter_pre_domain
Char
help='If present, this condition must be satisfied before the update of the record.'
string='Before Update Domain'
last_run
Datetime
copy=False
readonly=True
least_delay_msg
Char
compute='_compute_least_delay_msg'
on_change_field_ids
Many2many → ir.model.fields
help='Fields that trigger the onchange.'
relation='base_automation_onchange_fields_rel'
string='On Change Fields Trigger'
args: 'ir.model.fields'
trg_date_calendar_id
Many2one → resource.calendar
help='When calculating a day-based timed condition, it is possible to use a calendar to compute the date based on working days.'
string='Use Calendar'
args: 'resource.calendar'
trg_date_id
Many2one → ir.model.fields
domain="[('model_id', '=', model_id), ('ttype', 'in', ('date', 'datetime'))]"
help='When should the condition be triggered.\n If present, will be checked by the scheduler. If empty, will be checked at creation and update.'
string='Trigger Date'
args: 'ir.model.fields'
trg_date_range
Integer
help='Delay after the trigger date.\n You can put a negative number if you need a delay before the\n trigger date, like sending a reminder 15 minutes before a meeting.'
string='Delay after trigger date'
trg_date_range_type
Selection
default='hour'
string='Delay type'
args: [('minutes', 'Minutes'), ('hour', 'Hours'), ('day', 'Days'), ('month', 'Months')]
trigger
Selection
required=True
string='Trigger'
args: [('on_create', 'On Creation'), ('on_write', 'On Update'), ('on_create_or_write', 'On Creation & Update'), ('on_unlink', 'On Deletion'), ('on_change', 'Based on Form Modification'), ('on_time', 'Based on Timed Condition')]
trigger_field_ids
Many2many → ir.model.fields
help='The action will be triggered if and only if one of these fields is updated.If empty, all fields are watched.'
string='Trigger Fields'
args: 'ir.model.fields'
create(self, vals_list)
onchange_model_id(self)
onchange_trigger(self)
unlink(self)
write(self, vals)
usage
Selection
ondelete={'base_automation': 'cascade'}
selection_add=[('base_automation', 'Automated Action')]
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/14.0/base_automation |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Sales/Sales |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Olivier Dony, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Xavier Morel, Goffin Simon, Nicolas Martinelli, Nicolas Lempereur, Aaron Bohy, GitHub, Barad Mahendra, Yannick Tivisse, Julien Castiaux, Xavier-Do, Moisés López, Florent de Labarre, Julien Mougenot, fw-bot, Ivan Yelizariev, bve-odoo |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:14:29 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - resource - web - base_setup - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
This module allows to implement action rules for any object.
============================================================
Use automated actions to automatically trigger actions for various screens.
**Example:** A lead created by a specific user may be automatically set to a specific
Sales Team, or an opportunity which still has status pending after 14 days might
trigger an automatic reminder email.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
base_automation assets | ir.ui.view | qweb | Inherits web.assets_backend |
qunit_suite |
base_automation_tests | ir.ui.view | qweb | Inherits web.qunit_suite_tests |
view_base_automation_form |
Automations | base.automation | xpath | Inherits base.view_server_action_form |
view_base_automation_search |
base.automation.search | base.automation | search | New |
view_base_automation_tree |
base.automation.tree | base.automation | tree | New |
action_server_id
Many2one → ir.actions.server
delegate=True
domain="[('model_id', '=', model_id)]"
ondelete='restrict'
required=True
args: 'ir.actions.server', 'Server Actions'
active
Boolean
default=True
help='When unchecked, the rule is hidden and will not be executed.'
filter_domain
Char
help='If present, this condition must be satisfied before executing the action rule.'
string='Apply on'
filter_pre_domain
Char
help='If present, this condition must be satisfied before the update of the record.'
string='Before Update Domain'
last_run
Datetime
copy=False
readonly=True
least_delay_msg
Char
compute='_compute_least_delay_msg'
on_change_field_ids
Many2many → ir.model.fields
help='Fields that trigger the onchange.'
relation='base_automation_onchange_fields_rel'
string='On Change Fields Trigger'
args: 'ir.model.fields'
trg_date_calendar_id
Many2one → resource.calendar
help='When calculating a day-based timed condition, it is possible to use a calendar to compute the date based on working days.'
string='Use Calendar'
args: 'resource.calendar'
trg_date_id
Many2one → ir.model.fields
domain="[('model_id', '=', model_id), ('ttype', 'in', ('date', 'datetime'))]"
help='When should the condition be triggered.\n If present, will be checked by the scheduler. If empty, will be checked at creation and update.'
string='Trigger Date'
args: 'ir.model.fields'
trg_date_range
Integer
help='Delay after the trigger date.\n You can put a negative number if you need a delay before the\n trigger date, like sending a reminder 15 minutes before a meeting.'
string='Delay after trigger date'
trg_date_range_type
Selection
default='hour'
string='Delay type'
args: [('minutes', 'Minutes'), ('hour', 'Hours'), ('day', 'Days'), ('month', 'Months')]
trigger
Selection
required=True
string='Trigger'
args: [('on_create', 'On Creation'), ('on_write', 'On Update'), ('on_create_or_write', 'On Creation & Update'), ('on_unlink', 'On Deletion'), ('on_change', 'Based on Form Modification'), ('on_time', 'Based on Timed Condition')]
trigger_field_ids
Many2many → ir.model.fields
help='The action will be triggered if and only if one of these fields is updated.If empty, all fields are watched.'
string='Trigger Fields'
args: 'ir.model.fields'
create(self, vals_list)
onchange_model_id(self)
onchange_trigger(self)
unlink(self)
write(self, vals)
usage
Selection
ondelete={'base_automation': 'cascade'}
selection_add=[('base_automation', 'Automated Action')]
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/13.0/base_automation |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Sales/Sales |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Denis Ledoux, Christophe Simonis, Xavier Morel, Nicolas Martinelli, Damien Bouvy, Yannick Tivisse, Adrian Torres, Xavier-Do, Ivan Yelizariev |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:06:42 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - resource - web - base_setup - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
This module allows to implement action rules for any object.
============================================================
Use automated actions to automatically trigger actions for various screens.
**Example:** A lead created by a specific user may be automatically set to a specific
Sales Team, or an opportunity which still has status pending after 14 days might
trigger an automatic reminder email.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
base_automation assets | ir.ui.view | qweb | Inherits web.assets_backend |
qunit_suite |
base_automation_tests | ir.ui.view | qweb | Inherits web.qunit_suite |
view_base_automation_form |
Automations | base.automation | xpath | Inherits base.view_server_action_form |
view_base_automation_search |
base.automation.search | base.automation | search | New |
view_base_automation_tree |
base.automation.tree | base.automation | tree | New |
action_server_id
Many2one → ir.actions.server
delegate=True
domain="[('model_id', '=', model_id)]"
ondelete='restrict'
required=True
args: 'ir.actions.server', 'Server Actions'
active
Boolean
default=True
help='When unchecked, the rule is hidden and will not be executed.'
filter_domain
Char
help='If present, this condition must be satisfied before executing the action rule.'
string='Apply on'
filter_pre_domain
Char
help='If present, this condition must be satisfied before the update of the record.'
string='Before Update Domain'
last_run
Datetime
copy=False
readonly=True
on_change_fields
Char
help='Comma-separated list of field names that triggers the onchange.'
string='On Change Fields Trigger'
trg_date_calendar_id
Many2one → resource.calendar
help='When calculating a day-based timed condition, it is possible to use a calendar to compute the date based on working days.'
string='Use Calendar'
args: 'resource.calendar'
trg_date_id
Many2one → ir.model.fields
domain="[('model_id', '=', model_id), ('ttype', 'in', ('date', 'datetime'))]"
help='When should the condition be triggered.\n If present, will be checked by the scheduler. If empty, will be checked at creation and update.'
string='Trigger Date'
args: 'ir.model.fields'
trg_date_range
Integer
help='Delay after the trigger date.\n You can put a negative number if you need a delay before the\n trigger date, like sending a reminder 15 minutes before a meeting.'
string='Delay after trigger date'
trg_date_range_type
Selection
default='day'
string='Delay type'
args: [('minutes', 'Minutes'), ('hour', 'Hours'), ('day', 'Days'), ('month', 'Months')]
trigger
Selection
required=True
string='Trigger Condition'
args: [('on_create', 'On Creation'), ('on_write', 'On Update'), ('on_create_or_write', 'On Creation & Update'), ('on_unlink', 'On Deletion'), ('on_change', 'Based on Form Modification'), ('on_time', 'Based on Timed Condition')]
trigger_field_ids
Many2many → ir.model.fields
help='The action will be triggered if and only if one of these fields is updated.If empty, all fields are watched.'
string='Watched fields'
args: 'ir.model.fields'
create(self, vals)
onchange_model_id(self)
onchange_trigger(self)
unlink(self)
write(self, vals)
usage
Selection
selection_add=[('base_automation', 'Automated Action')]
No public methods.
No new fields.
Public methods (1)install_demo(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/12.0/base_automation |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Sales |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Christophe Simonis, Nicolas Martinelli, GitHub, Lucas Perais (lpe), Yannick Tivisse, Alexandre Kühn, Christophe Monniez, Xavier-Do, Ivan Yelizariev |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:57:01 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - resource - base_setup - web - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
This module allows to implement action rules for any object.
============================================================
Use automated actions to automatically trigger actions for various screens.
**Example:** A lead created by a specific user may be automatically set to a specific
Sales Team, or an opportunity which still has status pending after 14 days might
trigger an automatic reminder email.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_base_automation_form |
Automations | base.automation | xpath | Inherits base.view_server_action_form |
view_base_automation_search |
base.automation.search | base.automation | search | New |
view_base_automation_tree |
base.automation.tree | base.automation | tree | New |
action_server_id
Many2one → ir.actions.server
delegate=True
domain="[('model_id', '=', model_id)]"
ondelete='restrict'
required=True
args: 'ir.actions.server', 'Server Actions'
active
Boolean
default=True
help='When unchecked, the rule is hidden and will not be executed.'
filter_domain
Char
help='If present, this condition must be satisfied before executing the action rule.'
string='Apply on'
filter_pre_domain
Char
help='If present, this condition must be satisfied before the update of the record.'
string='Before Update Domain'
last_run
Datetime
copy=False
readonly=True
on_change_fields
Char
help='Comma-separated list of field names that triggers the onchange.'
string='On Change Fields Trigger'
trg_date_calendar_id
Many2one → resource.calendar
help='When calculating a day-based timed condition, it is possible to use a calendar to compute the date based on working days.'
string='Use Calendar'
args: 'resource.calendar'
trg_date_id
Many2one → ir.model.fields
domain="[('model_id', '=', model_id), ('ttype', 'in', ('date', 'datetime'))]"
help='When should the condition be triggered.\n If present, will be checked by the scheduler. If empty, will be checked at creation and update.'
string='Trigger Date'
args: 'ir.model.fields'
trg_date_range
Integer
help='Delay after the trigger date.\n You can put a negative number if you need a delay before the\n trigger date, like sending a reminder 15 minutes before a meeting.'
string='Delay after trigger date'
trg_date_range_type
Selection
default='day'
string='Delay type'
args: [('minutes', 'Minutes'), ('hour', 'Hours'), ('day', 'Days'), ('month', 'Months')]
trigger
Selection
oldname='kind'
required=True
string='Trigger Condition'
args: [('on_create', 'On Creation'), ('on_write', 'On Update'), ('on_create_or_write', 'On Creation & Update'), ('on_unlink', 'On Deletion'), ('on_change', 'Based on Form Modification'), ('on_time', 'Based on Timed Condition')]
create(self, vals)
onchange_model_id(self)
onchange_trigger(self)
unlink(self)
write(self, vals)
usage
Selection
selection_add=[('base_automation', 'Automated Action')]
No public methods.
No new fields.
Public methods (1)install_demo(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/11.0/base_automation |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Sales |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Olivier Dony, Thibault Delavallée, Christophe Simonis, Richard Mathot, Jeremy Kersten, GitHub, Yannick Tivisse, Martin Geubelle, Odoo Online, Julien (juc) Castiaux |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:53:43 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - resource - base_setup - web - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
This module allows to implement action rules for any object.
============================================================
Use automated actions to automatically trigger actions for various screens.
**Example:** A lead created by a specific user may be automatically set to a specific
sales channel, or an opportunity which still has status pending after 14 days might
trigger an automatic reminder email.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_base_automation_form |
Automations | base.automation | xpath | Inherits base.view_server_action_form |
view_base_automation_search |
base.automation.search | base.automation | search | New |
view_base_automation_tree |
base.automation.tree | base.automation | tree | New |
action_server_id
Many2one → ir.actions.server
delegate=True
domain="[('model_id', '=', model_id)]"
ondelete='restrict'
required=True
args: 'ir.actions.server', 'Server Actions'
active
Boolean
default=True
help='When unchecked, the rule is hidden and will not be executed.'
filter_domain
Char
help='If present, this condition must be satisfied before executing the action rule.'
string='Apply on'
filter_pre_domain
Char
help='If present, this condition must be satisfied before the update of the record.'
string='Before Update Domain'
last_run
Datetime
copy=False
readonly=True
on_change_fields
Char
help='Comma-separated list of field names that triggers the onchange.'
string='On Change Fields Trigger'
trg_date_calendar_id
Many2one → resource.calendar
help='When calculating a day-based timed condition, it is possible to use a calendar to compute the date based on working days.'
string='Use Calendar'
args: 'resource.calendar'
trg_date_id
Many2one → ir.model.fields
domain="[('model_id', '=', model_id), ('ttype', 'in', ('date', 'datetime'))]"
help='When should the condition be triggered.\n If present, will be checked by the scheduler. If empty, will be checked at creation and update.'
string='Trigger Date'
args: 'ir.model.fields'
trg_date_range
Integer
help='Delay after the trigger date.\n You can put a negative number if you need a delay before the\n trigger date, like sending a reminder 15 minutes before a meeting.'
string='Delay after trigger date'
trg_date_range_type
Selection
default='day'
string='Delay type'
args: [('minutes', 'Minutes'), ('hour', 'Hours'), ('day', 'Days'), ('month', 'Months')]
trigger
Selection
oldname='kind'
required=True
string='Trigger Condition'
args: [('on_create', 'On Creation'), ('on_write', 'On Update'), ('on_create_or_write', 'On Creation & Update'), ('on_unlink', 'On Deletion'), ('on_change', 'Based on Form Modification'), ('on_time', 'Based on Timed Condition')]
create(self, vals)
onchange_model_id(self)
onchange_trigger(self)
unlink(self)
write(self, vals)
usage
Selection
selection_add=[('base_automation', 'Automated Action')]
No public methods.