TIP: You can type at any time to perform a new search.
Automation Rules
base_automation · odoo/odoo
Security findings
- Repository
- odoo/odoo · module folder
- Module version
- 0.1.0
- Category
- Sales/Sales
- Folder size
- 2.29 MB
- License
- LGPL-3
- Application
- No
- Auto-installable
- No
- Website
- None
- Last tracking update
- 2026-10-05 00:19:50
- Authors
- Odoo S.A.
- Maintainers
- Odoo S.A.
- Committers
- Xavier Morel, Raphael Collet, Odoo Translation Bot, Aaron Bohy, Géry Debongnie, Lucas Perais (lpe), Julien Castiaux, Victor Feyens, Julien Mougenot, Achraf (abz), Tiffany Chang (tic), Romain Estievenart, Dylan Kiss (dyki), Chong Wang (cwg), Brieuc-brd, Michaël Mattiello, Krzysztof Magusiak (krma), Julien Launois (jula), Saurabh, Bruno BOI, Séna Nshimiyimana, ELCO, Julien Piron
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- test_base_automation
- 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.
Code Analysis
Views touched (5)
| 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 | form | Inherits base.view_server_action_form |
HTTP endpoints (1)
| Route(s) | Handler | Auth | Type | Methods | Flags |
|---|---|---|---|---|---|
/web/hook/<string:rule_uuid> |
BaseAutomationController.call_webhook_http |
public | http | GET, POST | csrf off sudo |
Models touched (3)
New fields (26)
-
action_server_idsOne2many → ir.actions.servercompute='_compute_action_server_ids'context={'default_usage': 'base_automation'}readonly=Falsestore=Truestring='Actions' args: 'ir.actions.server', 'base_automation_id' -
activeBooleandefault=Truehelp='When unchecked, the rule is hidden and will not be executed.' -
descriptionHtmlstring='Description' -
filter_domainCharcompute='_compute_filter_domain'help='If present, this condition must be satisfied before executing the automation rule.'readonly=Falsestore=Truestring='Apply on' -
filter_pre_domainCharcompute='_compute_filter_pre_domain'help='If present, this condition must be satisfied before the update of the record. Not checked on record creation.'readonly=Falsestore=Truestring='Before Update Domain' -
last_runDatetimecopy=Falsereadonly=True -
log_webhook_callsBooleandefault=Falsestring='Log Calls' -
model_idMany2one → ir.modeldomain=[('abstract', '=', False)]ondelete='cascade'required=Truestring='Model'tracking=True args: 'ir.model' -
model_is_mail_threadBooleanrelated='model_id.is_mail_thread' -
model_nameCharinverse='_inverse_model_name'readonly=Truerelated='model_id.model'string='Model Name' -
nameCharrequired=Truestring='Automation Rule Name'tracking=Truetranslate=True -
on_change_field_idsMany2many → ir.model.fieldscompute='_compute_on_change_field_ids'help='Fields that trigger the onchange.'readonly=Falserelation='base_automation_onchange_fields_rel'store=Truestring='On Change Fields Trigger' args: 'ir.model.fields' -
previous_domainCharcompute='_compute_previous_domain' -
record_getterChardefault="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_idMany2one → resource.calendarcompute='_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=Falsestore=Truestring='Use Calendar' args: 'resource.calendar' -
trg_date_idMany2one → ir.model.fieldscompute='_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=Falsestore=Truestring='Trigger Date'tracking=True args: 'ir.model.fields' -
trg_date_rangeIntegercompute='_compute_trg_date_range_data'readonly=Falsestore=Truestring='Delay'tracking=True -
trg_date_range_modeSelectioncompute='_compute_trg_date_range_data'readonly=Falsestore=Truestring='Delay mode'tracking=True args: [('after', 'After'), ('before', 'Before')] -
trg_date_range_typeSelectioncompute='_compute_trg_date_range_data'readonly=Falsestore=Truestring='Delay unit'tracking=True args: [('minutes', 'Minutes'), ('hour', 'Hours'), ('day', 'Days'), ('month', 'Months')] -
trg_field_refMany2oneReferencecompute='_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=Falsestore=Truestring='Trigger Reference' -
trg_field_ref_model_nameCharcompute='_compute_trg_field_ref_model_name'string='Trigger Field Model' -
trg_selection_field_idMany2one → ir.model.fields.selectioncompute='_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=Falsestore=Truestring='Trigger Field' args: 'ir.model.fields.selection' -
triggerSelectioncompute='_compute_trigger'readonly=Falserequired=Truestore=Truestring='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_idsMany2many → ir.model.fieldscompute='_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=Falsestore=Truestring='Trigger Fields' args: 'ir.model.fields' -
urlCharcompute='_compute_url'help='Use this URL in the third-party app to call this webhook.' -
webhook_uuidCharcopy=Falsedefault=<expr>readonly=Truestring='Webhook UUID'
-
action_open_scheduled_action(self) -
action_rotate_webhook_uuid(self) -
action_view_webhook_logs(self) -
copy(self, default=None)Copy the actions of the automation while copying the automation itself. -
create(self, vals_list)@api.model_create_multi -
unlink(self) -
write(self, vals: dict)
New fields (2)
-
base_automation_idMany2one → base.automationindex='btree_not_null'ondelete='cascade'string='Automation Rule' args: 'base.automation' -
usageSelectionondelete={'base_automation': 'cascade'}selection_add=[('base_automation', 'Automation Rule')]
-
action_open_automation(self)
New fields (0)
No new fields.
Public methods (1)-
action_open_automation(self)
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…