mail.activity: fields, relations and API
The mail.activity model ("Activity") is a persistent model declared by the Discuss module, then extended by 6 other modules. It exposes 39 fields, 33 of them declared directly on the model. Below you will find every field with its technical name, type, label and relations, followed by an Odoo 20 JSON-2 API call.
Model identity
- Technical name
mail.activity- Label
- Activity
- Type
- Persistent (models.Model)
- SQL table
mail_activity- Origin module
- Discuss (
mail) - Extended by
- phone_validation, calendar, crm, project, hr, website_slides
- Default order (_order)
date_deadline ASC, id ASC- Display field (_rec_name)
summary
Model fields
33 own fields, 0 inherited from mixins and 6 automatic ORM fields. Click a name to get a direct link to that field.
39 of 39 fields shown
| Technical name | Label | Type | Details |
|---|---|---|---|
| active | Active | boolean | |
| activity_category | Activity Category | selection | read-only related: |
| activity_decoration | Activity Decoration | selection | read-only related: |
| activity_plan_id | Plan | many2one | |
| activity_template_id | Generated From | many2one | |
| activity_type_id | Activity Type | many2one | |
| attachment_ids | Attachments | many2many | |
| automated | Automated activity Indicates this activity has been created automatically and not by any user. | boolean | read-only |
| calendar_event_id | Calendar Meeting | many2one | added by Calendar ( |
| can_write | Can Write | boolean | computed |
| date_deadline | Due Date | date | requiredcomputed, stored |
| date_done | Done Date | date | computed, stored |
| feedback | Feedback | text | |
| icon | Icon | char | read-only related: |
| mail_template_ids | Mail Template | many2many | read-only related: |
| note | Note | html | computed, stored |
| phone | Phone | char | computed, stored |
| request_partner_id | Requesting Partner | many2one | added by eLearning ( |
| res_access_create | Res Access Create | boolean | computed |
| res_access_read | Res Access Read | boolean | computed |
| res_access_unlink | Res Access Unlink | boolean | computed |
| res_access_write | Res Access Write | boolean | computed |
| res_id | Related Document ID | many2one_reference | |
| res_model | Related Document Model | char | read-only related: |
| res_model_id | Document Model | many2one→ ir.model | |
| res_model_name | Model | char | related: |
| res_name | Document Name | char | read-onlycomputed, stored |
| role_id | Role | many2one→ res.role | computed, stored |
| state | State | selection | computed Values: |
| summary | Summary | char | computed, stored |
| technical_usage | Technical Usage Technical identifier | selection | read-only Values: |
| user_id | Assigned to | many2one | computed, stored |
| user_tz | Timezone | selection | related: |
| create_date | Created on | datetime | read-onlyautomatic |
| create_uid | Created by | many2one | read-onlyautomatic |
| display_name | Display Name | char | read-onlycomputedautomatic |
| id | ID | integer | read-onlyautomatic |
| write_date | Last Updated on | datetime | read-onlyautomatic |
| write_uid | Last Updated by | many2one | read-onlyautomatic |
Relations
Models linked from this model
- calendar.event: calendar_event_id
- ir.attachment: attachment_ids
- ir.model: res_model_id
- mail.activity.plan: activity_plan_id
- mail.activity.plan.template: activity_template_id
- mail.activity.type: activity_type_id
- mail.template: mail_template_ids
- res.partner: request_partner_id
- res.role: role_id
- res.users: user_id
Fields of other models pointing here
No Many2one or Many2many field of another model points to this model.
Reading this model through the API
Odoo 20 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 -X POST "https://your-instance.odoo.com/json/2/mail.activity/search_read" \
-H "Authorization: bearer $ODOO_API_KEY" \
-H "X-Odoo-Database: your-db" \
-H "Content-Type: application/json" \
-d '{"domain":[],"fields":["summary","date_deadline","state","activity_plan_id","activity_template_id"],"limit":5}'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.activity/search_read",
headers=headers,
json={"domain": [], "fields": ["summary","date_deadline","state","activity_plan_id","activity_template_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-activity">mail.activity (Odoo 20.0)</a>Sources
Data verified on September 25, 2026 · Odoo 20.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.