crm.team: fields, relations and API
The crm.team model ("Sales Team") is a persistent model declared by the Sales Teams module, then extended by 6 other modules. It exposes 60 fields, 36 of them declared directly on the model; 25 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
crm.team- Label
- Sales Team
- Type
- Persistent (models.Model)
- SQL table
crm_team- Origin module
- Sales Teams (
sales_team) - Extended by
- crm, sale, sale_crm, pos_sale, website_sale, survey_crm
- Default order (_order)
sequence ASC, create_date DESC, id DESC- Inherits from (mixins)
- mail.threadmail.alias.mixin
Model fields
36 own fields, 18 inherited from mixins and 6 automatic ORM fields. Click a name to get a direct link to that field.
60 of 60 fields shown
| Technical name | Label | Type | Details |
|---|---|---|---|
| abandoned_carts_amount | Amount of Abandoned Carts | integer | computed added by eCommerce ( |
| abandoned_carts_count | Number of Abandoned Carts | integer | computed added by eCommerce ( |
| active | Active If the active field is set to false, it will allow you to hide the Sales Team without removing it. | boolean | |
| alias_id | Alias The email address associated with this channel. New emails received will automatically create new leads assigned to the channel. | many2one | added by CRM ( |
| assignment_auto_enabled | Auto Assignment | boolean | computed added by CRM ( |
| assignment_domain | Assignment Domain Additional filter domain when fetching unassigned leads to allocate to the team. | char | added by CRM ( |
| assignment_enabled | Lead Assign | boolean | computed added by CRM ( |
| assignment_max | Lead Average Capacity Monthly average leads capacity for all salesmen belonging to the team | integer | computed added by CRM ( |
| assignment_optout | Skip auto assignment | boolean | added by CRM ( |
| color | Color Index The color of the channel | integer | |
| company_id | Company | many2one | |
| crm_team_member_all_ids | Sales Team Members (incl. inactive) | one2many | inverse: |
| crm_team_member_ids | Sales Team Members Add members to automatically assign their documents to this sales team. | one2many | inverse: |
| currency_id | Currency | many2one | read-only related: |
| dashboard_button_name | Dashboard Button | char | computed |
| favorite_user_ids | Favorite Members | many2many | |
| invoiced | Invoiced This Month Invoice revenue for the current month. This is the amount the sales channel has invoiced this month. It is used to compute the progression ratio of the current and target revenue on the kanban view. | float | read-onlycomputed added by Sales ( |
| invoiced_target | Invoicing Target Revenue Target for the current month (untaxed total of paid invoices). | float | added by Sales ( |
| is_favorite | Show on dashboard Favorite teams to display them in the dashboard and access them easily. | boolean | computed |
| 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_all_assigned_month_count | # Leads/Opps assigned this month Number of leads and opportunities assigned this last month. | integer | computed added by CRM ( |
| lead_all_assigned_month_exceeded | Exceed monthly lead assignement True if the monthly lead assignment count is greater than the maximum assignment limit, false otherwise. | boolean | computed added by CRM ( |
| lead_properties_definition | Lead Properties | properties_definition | added by CRM ( |
| lead_unassigned_count | # Unassigned Leads | integer | computed added by CRM ( |
| member_company_ids | Member Company UX: Limit to team company or all if no company | many2many | computed |
| member_ids | Salespersons Users assigned to this team. | many2many | computed |
| member_warning | Membership Issue Warning | text | computed |
| name | Sales Team | char | requiredtranslatable |
| origin_survey_ids | Survey opportunities related to the sales team | one2many | inverse: added by Survey CRM ( |
| pos_config_ids | Point of Sales | one2many | inverse: added by POS - Sales ( |
| sale_order_count | # Sale Orders | integer | computed added by Sales ( |
| sequence | Sequence | integer | |
| use_leads | Leads Check this box to filter and qualify incoming requests as leads before converting them into opportunities and assigning them to a salesperson. | boolean | added by CRM ( |
| use_opportunities | Pipeline Check this box to manage a presales process with opportunities. | boolean | added by CRM ( |
| user_id | Team Leader | many2one | |
| website_ids | Websites | one2many→ website | inverse: added by eCommerce ( |
| alias_defaults | Alias Defaults | text | inherited from mail.alias.mixin |
| alias_domain | Alias Domain Name | char | related: inherited from mail.alias.mixin.optional |
| alias_domain_id | Alias Domain | many2one | related: inherited from mail.alias.mixin.optional |
| alias_email | Email Alias | char | computed inherited from mail.alias.mixin.optional |
| alias_name | Alias Name | char | inherited from mail.alias.mixin |
| 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.member: crm_team_member_all_ids, crm_team_member_ids
- mail.alias: alias_id
- pos.config: pos_config_ids
- res.company: company_id, member_company_ids
- res.currency: currency_id
- res.users: favorite_user_ids, member_ids, user_id
- survey.survey: origin_survey_ids
- website: website_ids
Fields of other models pointing here
- account.invoice.report: team_id
- account.move: team_id
- chatbot.script.step: crm_team_id
- crm.activity.report: team_id
- crm.iap.lead.mining.request: team_id
- crm.lead: team_id
- crm.lead.scoring.frequency: team_id
- crm.lead2opportunity.partner: team_id
- crm.merge.opportunity: team_id
- crm.reveal.rule: team_id
- crm.stage: team_ids
- crm.team.member: crm_team_id
- event.lead.rule: lead_sales_team_id
- pos.config: crm_team_id
- pos.order: crm_team_id
- pos.session: crm_team_id
- res.config.settings: pos_crm_team_id, salesteam_id
- res.users: crm_team_ids, sale_team_id
- sale.order: team_id
- sale.report: team_id
- survey.survey: team_id
- website: crm_default_team_id, salesteam_id
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/search_read" \
-H "Authorization: bearer $ODOO_API_KEY" \
-H "X-Odoo-Database: your-db" \
-H "Content-Type: application/json" \
-d '{"domain":[],"fields":["name","alias_id","company_id","currency_id","user_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}/crm.team/search_read",
headers=headers,
json={"domain": [], "fields": ["name","alias_id","company_id","currency_id","user_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/crm-team">crm.team (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.