TIP: You can type at any time to perform a new search.
Website Live Chat
website_livechat · odoo/odoo
- Repository
- odoo/odoo · module folder
- Module version
- 1.0
- Category
- Website/Live Chat
- Folder size
- 0.82 MB
- License
- LGPL-3
- Application
- No
- Auto-installable
- Yes
- Website
- None
- Last tracking update
- 2026-08-15 22:44:17
- Authors
- Odoo S.A.
- Maintainers
- Odoo S.A.
- Committers
- Xavier Morel, Raphael Collet, Thibault Delavallée, Odoo Translation Bot, Aaron Bohy, Géry Debongnie, qsm-odoo, Christophe Monniez, Alexandre Kühn, Julien Castiaux, Sébastien Theys, Tiffany Chang (tic), Gorash, Mathieu Duckerts-Antoine, William Braeckman, Romain Estievenart, yhu-odoo, Didier (did), luvi, tsm-odoo, Julien (jula), Dylan Kiss (dyki), Rahul Prajapati, omra-odoo, Zelong Lin, maad-odoo, Maryam Kia, Alex Kühn, nihp-odoo, aath-odoo, Junqi Wu, Pierre Pulinckx (PIPU), ayve-odoo, Pierre Pulinckx, Bastien PIERRE, Krzysztof Magusiak (krma), Ayush Chauhan (aych), Giorgio Tocco (gito), akha, jayp-odoo, rusp-odoo, ramh, Kevin Gerard (kege), Julien (jdeh), akth-odoo, chpa-odoo
- Odoo dependencies
- Python dependencies
- geoip2
- System dependencies
- None
- Required by
- test_discuss_full, test_website_modules, website_crm_livechat
- Description
Allow website visitors to chat with the collaborators.
Code Analysis ⓘ
Views touched (8)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
chatbot_script_view_form |
chatbot.script.view.form.inherit.website.livechat | chatbot.script | form | Inherits im_livechat.chatbot_script_view_form |
im_livechat_channel_view_form_add |
im_livechat.channel.view.form.add | im_livechat.channel | form | New |
loader |
Livechat : include loader on Website | ir.ui.view | qweb | Inherits website.layout |
res_config_settings_view_form |
res.config.settings.view.form.inherit.website.livechat | res.config.settings | form | Inherits website.res_config_settings_view_form |
website_visitor_view_form |
website.visitor.view.form.inherit.website.livechat | website.visitor | form | Inherits website.website_visitor_view_form |
website_visitor_view_kanban |
website.visitor.view.kanban.inherit.website.livechat | website.visitor | kanban | Inherits website.website_visitor_view_kanban |
website_visitor_view_search |
website.visitor.view.search.website.livechat | website.visitor | search | Inherits website.website_visitor_view_search |
website_visitor_view_tree |
website.visitor.view.list.inherit.website.livechat | website.visitor | list | Inherits website.website_visitor_view_tree |
HTTP endpoints (1)
| Route(s) | Handler | Auth | Type | Methods | Flags |
|---|---|---|---|---|---|
/chatbot/<model("chatbot.script"):chatbot_script>/test |
WebsiteLivechatChatbotScriptController.chatbot_test_script |
user | http | ALL | website |
Models touched (9)
New fields (0)
No new fields.
Public methods (1)-
action_test_script(self)
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (2)
-
is_pending_chat_requestBooleanargs: 'When created from an operator, whether the channel is yet to be opened on the visitor side.' -
livechat_visitor_idMany2one → website.visitorindex='btree_not_null'string='Visitor' args: 'website.visitor'
-
channel_pin(self, pinned=False)Override to clean an empty livechat channel. This is typically called when the operator send a chat request to a website.visitor but don't speak to them and closes the chatter. This allows operators to send the visitor a new chat request. If active empty livechat channel, delete discuss_channel as not useful to keep empty chat -
message_post(self, **kwargs)Override to mark the visitor as still connected. If the message sent is not from the operator (so if it's the visitor or odoobot sending closing chat notification, the visitor last action date is updated.
New fields (0)
No new fields.
Public methods (1)-
create(self, vals_list)@api.model_create_multi
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (1)
-
channel_idMany2one → im_livechat.channelreadonly=Falserelated='website_id.channel_id'string='Website Live Channel' args: 'im_livechat.channel'
No public methods.
New fields (1)
-
channel_idMany2one → im_livechat.channelstring='Website Live Chat Channel' args: 'im_livechat.channel'
No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (4)
-
discuss_channel_idsOne2many → discuss.channelreadonly=Truestring="Visitor's livechat channels" args: 'discuss.channel', 'livechat_visitor_id' -
livechat_operator_idMany2one → res.partnercompute='_compute_livechat_operator_id'index='btree_not_null'store=Truestring='Speaking with' args: 'res.partner' -
livechat_operator_nameCharrelated='livechat_operator_id.name' args: 'Operator Name' -
session_countIntegercompute='_compute_session_count' args: '# Sessions'
-
action_send_chat_request(self)Send a chat request to website_visitor(s). This creates a chat_request and a discuss_channel with livechat active flag. But for the visitor to get the chat request, the operator still has to speak to the visitor. The visitor will receive the chat request the next time he navigates to a website page. (see _handle_webpage_dispatch for next step)
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…