Odoo 19.0 Community · Persistent

base.automation: fields, relations and API

The base.automation model ("Automation Rule") is a persistent model declared by the Automation Rules module. It exposes 56 fields, 26 of them declared directly on the model; 1 field from other models points to it. Below you will find every field with its technical name, type, label and relations, followed by an Odoo 19 JSON-2 API call.

Model identity

Technical name
base.automation
Label
Automation Rule
Type
Persistent (models.Model)
SQL table
base_automation
Origin module
Automation Rules (base_automation)
Inherits from (mixins)
mail.threadmail.activity.mixin

Model fields

26 own fields, 24 inherited from mixins and 6 automatic ORM fields. Click a name to get a direct link to that field.

56 of 56 fields shown

Technical nameLabelTypeDetails
action_server_idsActionsone2many
computed, stored

inverse: base_automation_id

activeActive

When unchecked, the rule is hidden and will not be executed.

boolean
descriptionDescriptionhtml
filter_domainApply on

If present, this condition must be satisfied before executing the automation rule.

char
computed, stored
filter_pre_domainBefore Update Domain

If present, this condition must be satisfied before the update of the record. Not checked on record creation.

char
computed, stored
last_runLast Rundatetime
read-only
log_webhook_callsLog Callsboolean
model_idModelmany2one
required
model_is_mail_threadModel Is Mail Threadboolean

related: model_id.is_mail_thread

model_nameModel Namechar
read-only

related: model_id.model

nameAutomation Rule Namechar
requiredtranslatable
on_change_field_idsOn Change Fields Trigger

Fields that trigger the onchange.

many2many
computed, stored
previous_domainPrevious Domainchar
record_getterRecord Getter

This code will be run to find on which record the automation rule should be run.

char
trg_date_calendar_idUse Calendar

When calculating a day-based timed condition, it is possible to use a calendar to compute the date based on working days.

many2one
computed, stored
trg_date_idTrigger Date

When should the condition be triggered. If present, will be checked by the scheduler. If empty, will be checked at creation and update.

many2one
computed, stored
trg_date_rangeDelayinteger
computed, stored
trg_date_range_modeDelay modeselection
computed, stored

Values: after (After), before (Before)

trg_date_range_typeDelay unitselection
computed, stored

Values: minutes (Minutes), hour (Hours), day (Days), month (Months)

trg_field_refTrigger Reference

Some triggers need a reference to another field. This field is used to store it.

many2one_reference
computed, stored
trg_field_ref_model_nameTrigger Field Modelchar
computed
trg_selection_field_idTrigger Field

Some triggers need a reference to a selection field. This field is used to store it.

many2one
computed, stored
triggerTriggerselection
requiredcomputed, stored

Values: 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)…

trigger_field_idsTrigger Fields

The automation rule will be triggered if and only if one of these fields is updated.If empty, all fields are watched.

many2many
computed, stored
urlUrl

Use this URL in the third-party app to call this webhook.

char
computed
webhook_uuidWebhook UUIDchar
read-only
activity_calendar_event_idNext Activity Calendar Eventmany2one
computed

inherited from mail.activity.mixin

activity_date_deadlineNext Activity Deadlinedate
read-onlycomputed

inherited from mail.activity.mixin

activity_exception_decorationActivity Exception Decoration

Type of the exception activity on record.

selection
computed

Values: warning (Alert), danger (Error)

inherited from mail.activity.mixin

activity_exception_iconIcon

Icon to indicate an exception activity.

char
computed

inherited from mail.activity.mixin

activity_idsActivitiesone2many

inverse: res_id

inherited from mail.activity.mixin

activity_stateActivity State

Status based on activities Overdue: Due date is already passed Today: Activity date is today Planned: Future activities.

selection
computed

Values: overdue (Overdue), today (Today), planned (Planned)

inherited from mail.activity.mixin

activity_summaryNext Activity Summarychar

related: activity_ids.summary

inherited from mail.activity.mixin

activity_type_iconActivity Type Iconchar

related: activity_ids.icon

inherited from mail.activity.mixin

activity_type_idNext Activity Typemany2one

related: activity_ids.activity_type_id

inherited from mail.activity.mixin

activity_user_idResponsible Usermany2one
read-onlycomputed

inherited from mail.activity.mixin

has_messageHas Messageboolean
computed

inherited from mail.thread

message_attachment_countAttachment Countinteger
computed

inherited from mail.thread

message_follower_idsFollowersone2many

inverse: res_id

inherited from mail.thread

message_has_errorMessage Delivery error

If checked, some messages have a delivery error.

boolean
computed

inherited from mail.thread

message_has_error_counterNumber of errors

Number of messages with delivery error

integer
computed

inherited from mail.thread

message_has_sms_errorSMS Delivery error

If checked, some messages have a delivery error.

boolean
computed

inherited from mail.thread

message_idsMessagesone2many

inverse: res_id

inherited from mail.thread

message_is_followerIs Followerboolean
computed

inherited from mail.thread

message_needactionAction Needed

If checked, new messages require your attention.

boolean
computed

inherited from mail.thread

message_needaction_counterNumber of Actions

Number of messages requiring action

integer
computed

inherited from mail.thread

message_partner_idsFollowers (Partners)many2many
computed

inherited from mail.thread

my_activity_date_deadlineMy Activity Deadlinedate
read-onlycomputed

inherited from mail.activity.mixin

rating_idsRatingsone2many

inverse: res_id

inherited from mail.thread

website_message_idsWebsite Messages

Website communication history

one2many

inverse: res_id

inherited from mail.thread

create_dateCreated ondatetime
read-onlyautomatic
create_uidCreated bymany2one
read-onlyautomatic
display_nameDisplay Namechar
read-onlycomputedautomatic
idIDinteger
read-onlyautomatic
write_dateLast Updated ondatetime
read-onlyautomatic
write_uidLast Updated bymany2one
read-onlyautomatic

Relations

Models linked from this model

Fields of other models pointing here

Reading this model through the API

Odoo 19 JSON-2 API call reading the first five records with real fields of the model. Replace the instance, database and API key with your own.

curl
curl -X POST "https://your-instance.odoo.com/json/2/base.automation/search_read" \
  -H "Authorization: bearer $ODOO_API_KEY" \
  -H "X-Odoo-Database: your-db" \
  -H "Content-Type: application/json" \
  -d '{"domain":[],"fields":["name","model_id","trigger","trg_date_calendar_id","trg_date_id"],"limit":5}'
Python (requests)
import requests

BASE_URL = "https://your-instance.odoo.com/json/2"
headers = {"Authorization": f"bearer {API_KEY}", "X-Odoo-Database": "your-db"}

res = requests.post(
    f"{BASE_URL}/base.automation/search_read",
    headers=headers,
    json={"domain": [], "fields": ["name","model_id","trigger","trg_date_calendar_id","trg_date_id"], "limit": 5},
)
res.raise_for_status()
print(res.json())
  • External API access requires Odoo's Custom plan.
  • XML-RPC and JSON-RPC will be removed in Odoo 22 (fall 2028): use JSON-2.
  • The access rights and record rules of the key's user apply.

Cite this tool

Writing a tutorial, internal documentation or a forum answer? Copy this link to send your readers to the up-to-date reference.

<a href="https://aidoo.ai/en/outils/explorateur-modeles-odoo/base-automation">base.automation (Odoo 19.0)</a>

Sources

Data verified on September 23, 2026 · Odoo 19.0 Community

Have an Odoo project, or want to put your ERP to work with AI? Let's talk

Implementation, custom module development, connecting Claude or ChatGPT to your data: tell us about your context and we will reply within 24 business hours.