discuss.channel: fields, relations and API
The discuss.channel model ("Discussion Channel") is a persistent model declared by the Discuss module, then extended by 9 other modules. It exposes 91 fields, 73 of them declared directly on the model; 14 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 20 JSON-2 API call.
Model identity
- Technical name
discuss.channel- Label
- Discussion Channel
- Type
- Persistent (models.Model)
- SQL table
discuss_channel- Origin module
- Discuss (
mail) - Extended by
- calendar, crm, im_livechat, crm_livechat, hr, mail_bot, portal_discuss, website_livechat, website_crm_livechat
- Inherits from (mixins)
- mail.threadbus.sync.mixin
Model fields
73 own fields, 12 inherited from mixins and 6 automatic ORM fields. Click a name to get a direct link to that field.
91 of 91 fields shown
| Technical name | Label | Type | Details |
|---|---|---|---|
| active | Active Set active to false to hide the channel without removing it. | boolean | |
| avatar_128 | Avatar | image | computed |
| avatar_cache_key | Avatar Cache Key | char | computed |
| calendar_event_ids | Calendar Event | one2many | inverse: added by Calendar ( |
| call_history_ids | Call History | one2many | inverse: |
| can_join | Can Join | boolean | computed |
| can_leave | Can Leave | boolean | computed |
| can_self_edit_readonly_channel | Can Self Edit Readonly Channel | boolean | computed |
| channel_member_ids | Members | one2many | inverse: |
| channel_name_member_ids | Channel Name Member Members from which the channel name is computed when the name field is empty. | one2many | computed |
| channel_partner_ids | Partners | many2many | computed |
| channel_type | Conversation Type Chat is private and unique between 2 persons. Group is private among invited persons. Channel can be freely joined (depending on its configuration). | selection | requiredread-only Values: |
| chatbot_current_step_id | Chatbot Current Step | many2one | added by Live Chat ( |
| chatbot_message_ids | Chatbot Messages | one2many | inverse: added by Live Chat ( |
| country_id | Country Country of the visitor of the channel | many2one | added by Live Chat ( |
| default_display_mode | Default Display Mode Determines how the channel will be displayed by default when opening it from its invitation link. No value means display text (no voice/video). | selection | Values: |
| description | Description | text | |
| discuss_category_id | Category | many2one | |
| duration | Duration Duration of the session in hours | float | computed added by Live Chat ( |
| from_message_id | From Message The message the channel was created from. | many2one | read-only |
| group_ids | Auto Subscription Members of those groups will automatically added as followers. Note that they will be able to manage their subscription manually if necessary. | many2many | |
| group_public_id | Authorized Group | many2one | computed, stored |
| has_crm_lead | Has Crm Lead | boolean | computed, stored added by CRM Livechat ( |
| image_128 | Image | image | |
| invitation_url | Invitation URL | char | computed |
| invited_member_ids | Invited Member | one2many | computed |
| is_editable | Is Editable | boolean | computed |
| is_member | Is Member | boolean | computed |
| is_pending_chat_request | When created from an operator, whether the channel is yet to be opened on the visitor side. | boolean | added by Website Live Chat ( |
| is_readonly | Read-only Only admins are allowed to post messages in a read-only channel. | boolean | |
| last_interest_dt | Last Activity Contains the date and time of the last interesting event that happened in this channel. This updates itself when new message posted. | datetime | |
| lead_ids | Leads The channel becomes accessible to sales users when leads are set. | one2many→ crm.lead | inverse: added by CRM Livechat ( |
| livechat_agent_history_ids | Agents (History) | one2many | computed added by Live Chat ( |
| livechat_agent_partner_ids | Agents | many2many | computed, stored added by Live Chat ( |
| livechat_agent_providing_help_history | Help Provided (Agent) | many2one | computed, stored added by Live Chat ( |
| livechat_agent_requesting_help_history | Help Requested (Agent) | many2one | computed, stored added by Live Chat ( |
| livechat_bot_history_ids | Bots (History) | one2many | computed added by Live Chat ( |
| livechat_bot_partner_ids | Bots | many2many | computed, stored added by Live Chat ( |
| livechat_channel_id | Channel | many2one | added by Live Chat ( |
| livechat_channel_member_history_ids | Livechat Channel Member History | one2many | inverse: added by Live Chat ( |
| livechat_customer_guest_ids | Customers (Guests) | many2many | computed added by Live Chat ( |
| livechat_customer_history_ids | Customers (History) | one2many | computed added by Live Chat ( |
| livechat_customer_partner_ids | Customers (Partners) | many2many | computed, stored added by Live Chat ( |
| livechat_end_dt | Session end date Session is closed when either the visitor or the last agent leaves the conversation. | datetime | added by Live Chat ( |
| livechat_expertise_ids | Livechat Expertise | many2many | added by Live Chat ( |
| livechat_failure | Live Chat Session Failure | selection | Values: added by Live Chat ( |
| livechat_is_escalated | Is session escalated | boolean | computed, stored added by Live Chat ( |
| livechat_lang_id | Language Lang of the visitor of the channel. | many2one→ res.lang | added by Live Chat ( |
| livechat_looking_for_help_since_dt | Requested At Datetime when the chat entered the 'Looking for help' status. | datetime | computed, stored added by Live Chat ( |
| livechat_matches_self_expertise | Livechat Matches Self Expertise | boolean | computed added by Live Chat ( |
| livechat_matches_self_lang | Livechat Matches Self Lang | boolean | computed added by Live Chat ( |
| livechat_note | Live Chat Note Note about the session, visible to all internal users having access to the session. | html | added by Live Chat ( |
| livechat_outcome | Livechat Outcome | selection | computed, stored Values: added by Live Chat ( |
| livechat_rating | Livechat Rating Text | selection | Values: added by Live Chat ( |
| livechat_rating_percentage | Rating (%) | float | computed added by Live Chat ( |
| livechat_start_hour | Session Start Hour | float | computed, stored added by Live Chat ( |
| livechat_status | Livechat Status | selection | computed, stored Values: added by Live Chat ( |
| livechat_visitor_id | Visitor | many2one | added by Website Live Chat ( |
| livechat_week_day | Day of the Week | selection | computed, stored Values: added by Live Chat ( |
| meeting_start_dt | Meeting Start | datetime | computed |
| meeting_stop_dt | Meeting End | datetime | computed |
| member_count | Member Count | integer | computed |
| member_indices | Member Indices | char | computed, stored |
| message_count | # Messages | integer | read-onlycomputed |
| name | Name | char | required |
| parent_channel_id | Parent Channel Parent channel | many2one | read-only |
| rtc_session_ids | Rtc Session | one2many | inverse: |
| self_member_id | Self Member | many2one | computed |
| sfu_channel_uuid | Sfu Channel Uuid | char | |
| sfu_server_url | Sfu Server Url | char | |
| sub_channel_ids | Sub Channels | one2many | read-only inverse: |
| subscription_department_ids | HR Departments Automatically subscribe members of those departments to the channel. | many2many | added by Employees ( |
| uuid | UUID | char | |
| 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 |
| 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_ids
- chatbot.message: chatbot_message_ids
- chatbot.script.step: chatbot_current_step_id
- crm.lead: lead_ids
- discuss.call.history: call_history_ids
- discuss.category: discuss_category_id
- discuss.channel: parent_channel_id, sub_channel_ids
- discuss.channel.member: channel_member_ids, channel_name_member_ids, invited_member_ids, self_member_id
- discuss.channel.rtc.session: rtc_session_ids
- hr.department: subscription_department_ids
- im_livechat.channel: livechat_channel_id
- im_livechat.channel.member.history: livechat_agent_history_ids, livechat_agent_providing_help_history, livechat_agent_requesting_help_history, livechat_bot_history_ids, livechat_channel_member_history_ids, livechat_customer_history_ids
- im_livechat.expertise: livechat_expertise_ids
- mail.guest: livechat_customer_guest_ids
- mail.message: from_message_id
- res.country: country_id
- res.groups: group_ids, group_public_id
- res.lang: livechat_lang_id
- res.partner: channel_partner_ids, livechat_agent_partner_ids, livechat_bot_partner_ids, livechat_customer_partner_ids
- website.visitor: livechat_visitor_id
Fields of other models pointing here
- calendar.event: videocall_channel_id
- chatbot.message: discuss_channel_id
- crm.lead: origin_channel_id
- discuss.call.history: channel_id
- discuss.channel: parent_channel_id
- discuss.channel.last.interest.update: channel_id
- discuss.channel.member: channel_id
- discuss.channel.rtc.session: channel_id
- gamification.challenge: report_message_group_id
- im_livechat.channel.member.history: channel_id
- im_livechat.report.channel: channel_id
- mail.guest: channel_ids
- mail.message: channel_id
- res.partner: channel_ids
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/discuss.channel/search_read" \
-H "Authorization: bearer $ODOO_API_KEY" \
-H "X-Odoo-Database: your-db" \
-H "Content-Type: application/json" \
-d '{"domain":[],"fields":["name","channel_type","chatbot_current_step_id","country_id","discuss_category_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}/discuss.channel/search_read",
headers=headers,
json={"domain": [], "fields": ["name","channel_type","chatbot_current_step_id","country_id","discuss_category_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/discuss-channel">discuss.channel (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.