crm.team.member: fields, relations and API
The crm.team.member model ("Sales Team Member") is a persistent model declared by the Sales Teams module, then extended by 1 other module. It exposes 39 fields, 20 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 19 JSON-2 API call.
Model identity
- Technical name
crm.team.member- Label
- Sales Team Member
- Type
- Persistent (models.Model)
- SQL table
crm_team_member- Origin module
- Sales Teams (
sales_team) - Extended by
- crm
- Default order (_order)
create_date ASC, id- Display field (_rec_name)
user_id- Inherits from (mixins)
- mail.thread
Model fields
20 own fields, 13 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 | |
| assignment_domain | Assignment Domain | char | added by CRM ( |
| assignment_domain_preferred | Preference assignment Domain | char | added by CRM ( |
| assignment_enabled | Assignment Enabled | boolean | related: added by CRM ( |
| assignment_max | Average Leads Capacity (on 30 days) | integer | added by CRM ( |
| assignment_optout | Pause assignment | boolean | added by CRM ( |
| company_id | Company | many2one | related: |
| crm_team_id | Sales Team | many2one→ crm.team | required |
char | related: | ||
| image_128 | Image (128) | image | related: |
| image_1920 | Image | image | related: |
| is_membership_multi | Multiple Memberships Allowed If True, users may belong to several sales teams. Otherwise membership is limited to a single sales team. | boolean | computed |
| lead_day_count | Leads (last 24h) Number of leads assigned to this member in the last 24 hours (lost leads excluded) | integer | computed added by CRM ( |
| lead_month_count | Leads (30 days) Number of leads assigned to this member in the last 30 days | integer | computed added by CRM ( |
| member_warning | Member Warning | text | computed |
| name | Name | char | related: |
| phone | Phone | char | related: |
| user_company_ids | User Company UX: Limit to team company or all if no company | many2many | computed |
| user_id | Salesperson | many2one | required |
| user_in_teams_ids | User In Teams UX: Give users not to add in the currently chosen team to avoid duplicates | many2many | computed |
| has_message | Has Message | boolean | computed inherited from mail.thread |
| message_attachment_count | Attachment Count | integer | computed inherited from mail.thread |
| message_follower_ids | Followers | one2many | inverse: inherited from mail.thread |
| message_has_error | Message Delivery error If checked, some messages have a delivery error. | boolean | computed inherited from mail.thread |
| message_has_error_counter | Number of errors Number of messages with delivery error | integer | computed inherited from mail.thread |
| message_has_sms_error | SMS Delivery error If checked, some messages have a delivery error. | boolean | computed inherited from mail.thread |
| message_ids | Messages | one2many | inverse: inherited from mail.thread |
| message_is_follower | Is Follower | boolean | computed inherited from mail.thread |
| message_needaction | Action Needed If checked, new messages require your attention. | boolean | computed inherited from mail.thread |
| message_needaction_counter | Number of Actions Number of messages requiring action | integer | computed inherited from mail.thread |
| message_partner_ids | Followers (Partners) | many2many | computed inherited from mail.thread |
| rating_ids | Ratings | one2many | inverse: inherited from mail.thread |
| website_message_ids | Website Messages Website communication history | one2many | inverse: inherited from mail.thread |
| 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
- crm.team: crm_team_id
- res.company: company_id, user_company_ids
- res.users: user_id, user_in_teams_ids
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 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 -X POST "https://your-instance.odoo.com/json/2/crm.team.member/search_read" \
-H "Authorization: bearer $ODOO_API_KEY" \
-H "X-Odoo-Database: your-db" \
-H "Content-Type: application/json" \
-d '{"domain":[],"fields":["user_id","crm_team_id","company_id","active","assignment_domain"],"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}/crm.team.member/search_read",
headers=headers,
json={"domain": [], "fields": ["user_id","crm_team_id","company_id","active","assignment_domain"], "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/crm-team-member">crm.team.member (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.