Odoo 19.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 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 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

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_typeChannel 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)

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
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)

last_interest_dtLast 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_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_conversation_tag_idsLive Chat Conversation Tags

Tags to qualify the conversation.

many2many

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_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_operator_idOperatormany2one

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_start_hourSession Start Hourfloat
computed, stored

added by Live Chat (im_livechat)

livechat_statusLivechat Statusselection
computed, stored

Values: in_progress (In progress), waiting (Waiting for customer), 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)

member_countMember Countinteger
computed
message_count# Messagesinteger
read-onlycomputed
nameNamechar
required
parent_channel_idParent Channel

Parent channel

many2one
read-only
pinned_message_idsPinned Messagesone2many

inverse: res_id

rating_last_textRating Last Textselection

Values computed at runtime

added by Live Chat (im_livechat)

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_avgAverage Ratingfloat
computed

inherited from rating.mixin

rating_avg_textRating Avg Textselection
computed

Values: top (Happy), ok (Neutral), ko (Unhappy), none (Not Rated yet)

inherited from rating.mixin

rating_countRating countinteger
computed

inherited from rating.mixin

rating_idsRatingsone2many

inverse: res_id

inherited from mail.thread

rating_last_feedbackRating Last Feedbacktext

related: rating_ids.feedback

inherited from rating.mixin

rating_last_imageRating Last Imagebinary

related: rating_ids.rating_image

inherited from rating.mixin

rating_last_valueRating Last Valuefloat
computed, stored

inherited from rating.mixin

rating_percentage_satisfactionRating Satisfactionfloat
computed

inherited from rating.mixin

website_message_idsWebsite Messages

Website communication history

one2many

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 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
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}'
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","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.