discuss.channel: fields, relations and API
The discuss.channel model ("Discussion Channel") is a persistent model declared by the Discuss module, then extended by 7 other modules. It exposes 92 fields, 66 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 19 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, im_livechat, crm_livechat, hr, mail_bot, website_livechat, website_crm_livechat
- Inherits from (mixins)
- mail.threadbus.listener.mixinrating.mixin
Model fields
66 own fields, 20 inherited from mixins and 6 automatic ORM fields. Click a name to get a direct link to that field.
92 of 92 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: |
| 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 | Channel 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 | |
| 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 ( |
| last_interest_dt | Last Interest 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_conversation_tag_ids | Live Chat Conversation Tags Tags to qualify the conversation. | many2many | 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_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_operator_id | Operator | many2one | added by Live Chat ( |
| livechat_outcome | Livechat Outcome | selection | computed, stored Values: 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 ( |
| member_count | Member Count | integer | computed |
| message_count | # Messages | integer | read-onlycomputed |
| name | Name | char | required |
| parent_channel_id | Parent Channel Parent channel | many2one | read-only |
| pinned_message_ids | Pinned Messages | one2many | inverse: |
| rating_last_text | Rating Last Text | selection | Values computed at runtime added by Live Chat ( |
| 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_avg | Average Rating | float | computed inherited from rating.mixin |
| rating_avg_text | Rating Avg Text | selection | computed Values: inherited from rating.mixin |
| rating_count | Rating count | integer | computed inherited from rating.mixin |
| rating_ids | Ratings | one2many | inverse: inherited from mail.thread |
| rating_last_feedback | Rating Last Feedback | text | related: inherited from rating.mixin |
| rating_last_image | Rating Last Image | binary | related: inherited from rating.mixin |
| rating_last_value | Rating Last Value | float | computed, stored inherited from rating.mixin |
| rating_percentage_satisfaction | Rating Satisfaction | float | computed inherited from rating.mixin |
| 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
- 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.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.conversation.tag: livechat_conversation_tag_ids
- im_livechat.expertise: livechat_expertise_ids
- mail.guest: livechat_customer_guest_ids
- mail.message: from_message_id, pinned_message_ids
- 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, livechat_operator_id
- 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.member: channel_id
- discuss.channel.rtc.session: channel_id
- gamification.challenge: report_message_group_id
- im_livechat.channel.member.history: channel_id
- im_livechat.conversation.tag: conversation_ids
- 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 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/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","from_message_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","from_message_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 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.