Odoo 20.0 Community · Persistent

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 nameLabelTypeDetails
activeActive

Set active to false to hide the channel without removing it.

boolean
avatar_128Avatarimage
computed
avatar_cache_keyAvatar Cache Keychar
computed
calendar_event_idsCalendar Eventone2many

inverse: videocall_channel_id

added by Calendar (calendar)

call_history_idsCall Historyone2many

inverse: channel_id

can_joinCan Joinboolean
computed
can_leaveCan Leaveboolean
computed
can_self_edit_readonly_channelCan Self Edit Readonly Channelboolean
computed
channel_member_idsMembersone2many

inverse: channel_id

channel_name_member_idsChannel Name Member

Members from which the channel name is computed when the name field is empty.

one2many
computed
channel_partner_idsPartnersmany2many
computed
channel_typeConversation 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: chat (Chat), channel (Channel), group (Group Chat)

chatbot_current_step_idChatbot Current Stepmany2one

added by Live Chat (im_livechat)

chatbot_message_idsChatbot Messagesone2many

inverse: discuss_channel_id

added by Live Chat (im_livechat)

country_idCountry

Country of the visitor of the channel

many2one

added by Live Chat (im_livechat)

default_display_modeDefault 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: video_full_screen (Full screen video)

descriptionDescriptiontext
discuss_category_idCategorymany2one
durationDuration

Duration of the session in hours

float
computed

added by Live Chat (im_livechat)

from_message_idFrom Message

The message the channel was created from.

many2one
read-only
group_idsAuto 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_idAuthorized Groupmany2one
computed, stored
has_crm_leadHas Crm Leadboolean
computed, stored

added by CRM Livechat (crm_livechat)

image_128Imageimage
invitation_urlInvitation URLchar
computed
invited_member_idsInvited Memberone2many
computed
is_editableIs Editableboolean
computed
is_memberIs Memberboolean
computed
is_pending_chat_requestWhen created from an operator, whether the channel is yet to be opened on the visitor side.boolean

added by Website Live Chat (website_livechat)

is_readonlyRead-only

Only admins are allowed to post messages in a read-only channel.

boolean
last_interest_dtLast 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_idsLeads

The channel becomes accessible to sales users when leads are set.

one2many

inverse: origin_channel_id

added by CRM Livechat (crm_livechat)

livechat_agent_history_idsAgents (History)one2many
computed

added by Live Chat (im_livechat)

livechat_agent_partner_idsAgentsmany2many
computed, stored

added by Live Chat (im_livechat)

livechat_agent_providing_help_historyHelp Provided (Agent)many2one
computed, stored

added by Live Chat (im_livechat)

livechat_agent_requesting_help_historyHelp Requested (Agent)many2one
computed, stored

added by Live Chat (im_livechat)

livechat_bot_history_idsBots (History)one2many
computed

added by Live Chat (im_livechat)

livechat_bot_partner_idsBotsmany2many
computed, stored

added by Live Chat (im_livechat)

livechat_channel_idChannelmany2one

added by Live Chat (im_livechat)

livechat_channel_member_history_idsLivechat Channel Member Historyone2many

inverse: channel_id

added by Live Chat (im_livechat)

livechat_customer_guest_idsCustomers (Guests)many2many
computed

added by Live Chat (im_livechat)

livechat_customer_history_idsCustomers (History)one2many
computed

added by Live Chat (im_livechat)

livechat_customer_partner_idsCustomers (Partners)many2many
computed, stored

added by Live Chat (im_livechat)

livechat_end_dtSession end date

Session is closed when either the visitor or the last agent leaves the conversation.

datetime

added by Live Chat (im_livechat)

livechat_expertise_idsLivechat Expertisemany2many

added by Live Chat (im_livechat)

livechat_failureLive Chat Session Failureselection

Values: no_answer (Never Answered), no_agent (No one Available), no_failure (No Failure)

added by Live Chat (im_livechat)

livechat_is_escalatedIs session escalatedboolean
computed, stored

added by Live Chat (im_livechat)

livechat_lang_idLanguage

Lang of the visitor of the channel.

many2one

added by Live Chat (im_livechat)

livechat_looking_for_help_since_dtRequested At

Datetime when the chat entered the 'Looking for help' status.

datetime
computed, stored

added by Live Chat (im_livechat)

livechat_matches_self_expertiseLivechat Matches Self Expertiseboolean
computed

added by Live Chat (im_livechat)

livechat_matches_self_langLivechat Matches Self Langboolean
computed

added by Live Chat (im_livechat)

livechat_noteLive Chat Note

Note about the session, visible to all internal users having access to the session.

html

added by Live Chat (im_livechat)

livechat_outcomeLivechat Outcomeselection
computed, stored

Values: no_answer (Never Answered), no_agent (No one Available), no_failure (Success), escalated (Escalated)

added by Live Chat (im_livechat)

livechat_ratingLivechat Rating Textselection

Values: 1 (Unhappy), 3 (Neutral), 5 (Happy)

added by Live Chat (im_livechat)

livechat_rating_percentageRating (%)float
computed

added by Live Chat (im_livechat)

livechat_start_hourSession Start Hourfloat
computed, stored

added by Live Chat (im_livechat)

livechat_statusLivechat Statusselection
computed, stored

Values: in_progress (In progress), need_help (Looking for help)

added by Live Chat (im_livechat)

livechat_visitor_idVisitormany2one

added by Website Live Chat (website_livechat)

livechat_week_dayDay of the Weekselection
computed, stored

Values: 0 (Monday), 1 (Tuesday), 2 (Wednesday), 3 (Thursday), 4 (Friday), 5 (Saturday), 6 (Sunday)

added by Live Chat (im_livechat)

meeting_start_dtMeeting Startdatetime
computed
meeting_stop_dtMeeting Enddatetime
computed
member_countMember Countinteger
computed
member_indicesMember Indiceschar
computed, stored
message_count# Messagesinteger
read-onlycomputed
nameNamechar
required
parent_channel_idParent Channel

Parent channel

many2one
read-only
rtc_session_idsRtc Sessionone2many

inverse: channel_id

self_member_idSelf Membermany2one
computed
sfu_channel_uuidSfu Channel Uuidchar
sfu_server_urlSfu Server Urlchar
sub_channel_idsSub Channelsone2many
read-only

inverse: parent_channel_id

subscription_department_idsHR Departments

Automatically subscribe members of those departments to the channel.

many2many

added by Employees (hr)

uuidUUIDchar
has_messageHas Messageboolean
computed

inherited from mail.thread

message_attachment_countAttachment Countinteger
computed

inherited from mail.thread

message_follower_idsFollowersone2many

inverse: res_id

inherited from mail.thread

message_has_errorMessage Delivery error

If checked, some messages have a delivery error.

boolean
computed

inherited from mail.thread

message_has_error_counterNumber of errors

Number of messages with delivery error

integer
computed

inherited from mail.thread

message_has_sms_errorSMS Delivery error

If checked, some messages have a delivery error.

boolean
computed

inherited from mail.thread

message_idsMessagesone2many

inverse: res_id

inherited from mail.thread

message_is_followerIs Followerboolean
computed

inherited from mail.thread

message_needactionAction Needed

If checked, new messages require your attention.

boolean
computed

inherited from mail.thread

message_needaction_counterNumber of Actions

Number of messages requiring action

integer
computed

inherited from mail.thread

message_partner_idsFollowers (Partners)many2many
computed

inherited from mail.thread

rating_idsRatingsone2many

inverse: res_id

inherited from mail.thread

create_dateCreated ondatetime
read-onlyautomatic
create_uidCreated bymany2one
read-onlyautomatic
display_nameDisplay Namechar
read-onlycomputedautomatic
idIDinteger
read-onlyautomatic
write_dateLast Updated ondatetime
read-onlyautomatic
write_uidLast Updated bymany2one
read-onlyautomatic

Relations

Models linked from this model

Fields of other models pointing here

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
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}'
Python (requests)
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.