Odoo 19.0 Community · Persistent

ir.actions.server: fields, relations and API

The ir.actions.server model ("Server Action") is a persistent model declared by the Base module, then extended by 4 other modules. It exposes 89 fields, 57 of them declared directly on the model; 5 fields from other models point 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
ir.actions.server
Label
Server Action
Type
Persistent (models.Model)
SQL table
ir_act_server
Origin module
Base (base)
Extended by
mail, sms, base_automation, website
Default order (_order)
sequence,name,id
Inherits from (mixins)
ir.actions.actionsmail.threadmail.activity.mixin

Model fields

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

89 of 89 fields shown

Technical nameLabelTypeDetails
activity_date_deadline_rangeDue Date Ininteger
computed, stored

added by Discuss (mail)

activity_date_deadline_range_typeDue typeselection
computed, stored

Values: days (Days), weeks (Weeks), months (Months)

added by Discuss (mail)

activity_noteNotehtml
computed, stored

added by Discuss (mail)

activity_summaryTitlechar
computed, stored

added by Discuss (mail)

activity_type_idActivity Typemany2one
computed, stored

added by Discuss (mail)

activity_user_field_nameUser Fieldchar
computed, stored

added by Discuss (mail)

activity_user_idResponsiblemany2one
computed, stored

added by Discuss (mail)

activity_user_typeUser Type

Use 'Specific User' to always assign the same user on the next activity. Use 'Dynamic User' to specify the field name of the user to choose on the record.

selection
computed, stored

Values: specific (Specific User), generic (Dynamic User (based on record))

added by Discuss (mail)

allowed_statesAllowed statesjson
computed
automated_nameAutomated Namechar
computed, stored
available_model_idsAvailable Modelsmany2many
computed
base_automation_idAutomation Rulemany2one

added by Automation Rules (base_automation)

child_idsChild Actions

Child server actions that will be executed. Note that the last return returned action value will be used as global return value.

one2many

inverse: parent_id

codePython Code

Write Python code that the action will execute. Some variables are available for use; help about python expression is given in the help tab.

text
crud_model_idRecord to Create

Specify which kind of record should be created. Set this field only to specify a different model than the base model.

many2one
computed, stored
crud_model_nameTarget Model Namechar
read-only

related: crud_model_id.model

evaluation_typeValue Typeselection

Values: value (Update), sequence (Sequence), equation (Compute)

followers_partner_field_nameFollowers Fieldchar
computed, stored

added by Discuss (mail)

followers_typeFollowers Type

- Specific Followers: select specific contacts to add/remove from record's followers. - Dynamic Followers: all contacts of the chosen record's field will be added/removed from followers.

selection
computed, stored

Values: specific (Specific Followers), generic (Dynamic Followers)

added by Discuss (mail)

group_idsAllowed Groups

Groups that can execute the server action. Leave empty to allow everybody.

many2many
html_valueHtml Valuehtml
ir_cron_idsScheduled Actionone2many

inverse: ir_actions_server_id

mail_post_autofollowSubscribe Recipientsboolean
computed, stored

added by Discuss (mail)

mail_post_methodSend Email Asselection
computed, stored

Values: email (Email), comment (Message), note (Note)

added by Discuss (mail)

model_idModel

Model on which the server action runs.

many2one
required
model_nameModel Namechar

related: model_id.model

nameNamechar
computed, stored
parent_idParent Actionmany2one
partner_idsPartnermany2many
computed, stored

added by Discuss (mail)

resource_refRecordreference
selection_valueCustom Valuemany2one
sequenceSequence

When dealing with multiple actions, the execution order is based on the sequence. Low number means high priority.

integer
sequence_idSequence to usemany2one
show_code_historyShow Code Historyboolean
computed
sms_methodSend SMS Asselection
computed, stored

Values: sms (SMS (without note)), comment (SMS (with note)), note (Note only)

added by SMS gateway (sms)

sms_template_idSMS Templatemany2one
computed, stored

added by SMS gateway (sms)

stateType

Type of server action. The following values are available: - 'Update a Record': update the values of a record - 'Create Activity': create an activity (Discuss) - 'Send Email': post a message, a note or send an email (Discuss) - 'Send SMS': send SMS, log them on documents (SMS)- 'Add/Remove Followers': add or remove followers to a record (Discuss) - 'Create Record': create a new record with new values - 'Execute Code': a block of Python code that will be executed - 'Send Webhook Notification': send a POST request to an external system, also known as a Webhook - 'Multi Actions': define an action that triggers several other server actions

selection
required

Values: object_write (Update Record), object_create (Create Record), object_copy (Duplicate Record), code (Execute Code), webhook (Send Webhook Notification), multi (Multi Actions)

template_idEmail Templatemany2one
computed, stored

added by Discuss (mail)

typeTypechar
update_boolean_valueBoolean Valueselection

Values: true (Yes (True)), false (No (False))

update_field_idField to Updatemany2one
computed, stored
update_field_typeUpdate Field Typeselection
read-only

related: update_field_id.ttype

update_m2m_operationMany2many Operationsselection

Values: add (Adding), remove (Removing), set (Setting it to), clear (Clearing it)

update_pathField to Update Path

Path to the field to update, e.g. 'partner_id.name'

char
usageUsageselection
required

Values: ir_actions_server (Server Action), ir_cron (Scheduled Action)

valueValue

For Python expressions, this field may hold a Python expression that can use the same values as for the code field on the server action,e.g. `env.user.name` to set the current user's name as the value or `record.id` to set the ID of the record on which the action is run. For Static values, the value will be used directly without evaluation, e.g.`42` or `My custom name` or the selected record.

text
value_field_to_showValue Field To Showselection
computed

Values: value (value), html_value (html_value), sequence_id (sequence_id), resource_ref (reference), update_boolean_value (update_boolean_value), selection_value (selection_value)

warningWarningtext
computed
webhook_field_idsWebhook Fields

Fields to send in the POST request. The id and model of the record are always sent as '_id' and '_model'. The name of the action that triggered the webhook is always sent as '_name'.

many2many
webhook_sample_payloadSample Payloadtext
computed
webhook_urlWebhook URL

URL to send the POST request to.

char
website_pathWebsite Pathchar

added by Website (website)

website_publishedAvailable on the Website

A code server action can be executed from the website, using a dedicated controller. The address is <base>/website/action/<website_path>. Set this field as True to allow users to run this action. If it is set to False the action cannot be run through the website.

boolean

added by Website (website)

website_urlWebsite Url

The full URL to access the server action through the website.

char
computed

added by Website (website)

xml_idExternal ID

ID of the action if defined in a XML file

char
computed

added by Website (website)

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_type_iconActivity Type Iconchar

related: activity_ids.icon

inherited from mail.activity.mixin

binding_model_idBinding Model

Setting a value makes this action available in the sidebar for the given model.

many2one

inherited from ir.actions.actions

binding_typeBinding Typeselection
required

Values: action (Action), report (Report)

inherited from ir.actions.actions

binding_view_typesBinding View Typeschar

inherited from ir.actions.actions

has_messageHas Messageboolean
computed

inherited from mail.thread

helpAction Description

Optional help text for the users with a description of the target view, such as its usage and purpose.

html
translatable

inherited from ir.actions.actions

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

pathPath to show in the URLchar

inherited from ir.actions.actions

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/ir.actions.server/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","state","usage","activity_type_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}/ir.actions.server/search_read",
    headers=headers,
    json={"domain": [], "fields": ["name","model_id","state","usage","activity_type_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/ir-actions-server">ir.actions.server (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.