Odoo 19.0 Community · Persistent

mail.alias: fields, relations and API

The mail.alias model ("Email Aliases") is a persistent model declared by the Discuss module, then extended by 1 other module. It exposes 19 fields, 13 of them declared directly on the model; 7 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
mail.alias
Label
Email Aliases
Type
Persistent (models.Model)
SQL table
mail_alias
Origin module
Discuss (mail)
Extended by
hr
Default order (_order)
alias_model_id, alias_name
Display field (_rec_name)
alias_name

Model fields

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

19 of 19 fields shown

Technical nameLabelTypeDetails
alias_bounced_contentCustom Bounced Message

If set, this content will automatically be sent out to unauthorized users instead of the default message.

html
translatable
alias_contactAlias Contact Security

Policy to post a message on the document using the mailgateway. - everyone: everyone can post - partners: only authenticated partners - followers: only followers of the related document or members of following channels

selection
required

Values: everyone (Everyone), partners (Authenticated Partners), followers (Followers only)

alias_defaultsDefault Values

A Python dictionary that will be evaluated to provide default values when creating new records for this alias.

text
required
alias_domainAlias domain namechar

related: alias_domain_id.name

alias_domain_idAlias Domainmany2one
alias_force_thread_idRecord Thread ID

Optional ID of a thread (record) to which all incoming messages will be attached, even if they did not reply to it. If set, this will disable the creation of new records completely.

integer
alias_full_nameAlias Emailchar
computed, stored
alias_incoming_localLocal-part based incoming detectionboolean
alias_model_idAliased Model

The model (Odoo Document Kind) to which this alias corresponds. Any incoming email that does not reply to an existing record will cause the creation of a new record of this model (e.g. a Project Task)

many2one
required
alias_nameAlias Name

The name of the email alias, e.g. 'jobs' if you want to catch emails for <[email protected]>

char
alias_parent_model_idParent Model

Parent model holding the alias. The model holding the alias reference is not necessarily the model given by alias_model_id (example: project (parent_model) and task (model))

many2one
alias_parent_thread_idParent Record Thread ID

ID of the parent record holding the alias (example: project holding the task creation alias)

integer
alias_statusAlias Status

Alias status assessed on the last message received.

selection
computed, stored

Values: not_tested (Not Tested), valid (Valid), invalid (Invalid)

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/mail.alias/search_read" \
  -H "Authorization: bearer $ODOO_API_KEY" \
  -H "X-Odoo-Database: your-db" \
  -H "Content-Type: application/json" \
  -d '{"domain":[],"fields":["alias_name","alias_contact","alias_defaults","alias_model_id","alias_domain_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}/mail.alias/search_read",
    headers=headers,
    json={"domain": [], "fields": ["alias_name","alias_contact","alias_defaults","alias_model_id","alias_domain_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/mail-alias">mail.alias (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.