hr_employee_chat
The speech-bubble icon beside an employee's name is hr_employee_chat: a one-icon view widget that drops you into a Discuss chat with that person, and that silently disappears when the employee has no user account.
August 26, 2026Updated August 26, 20265 min read
| Technical name | hr_employee_chat |
|---|---|
| Views | form (view widget, |
| Module | hr (Employees app) |
| Used in core | 2 occurrences: the hr.employee form and the hr.employee.public form |
| Versions | Odoo 20.0, Odoo 19.0, Odoo 18.0, Odoo 17.0, Odoo 16.0 |
| No-code setup | No. It ships on employee forms; Studio has no chat button component |
| Alternatives | many2one_avatar_user, many2one_avatar_employee, hr_org_chart |
What the employee chat widget does
What this means for your team
Working examples
One hook does the real work
Version compatibility
| Version | Status | Notes |
|---|---|---|
| Odoo 20.0 | Verified | Not released. Adds the show_label option and swaps the hook for the mail store; see below. |
| Odoo 19.0 | Verified | Verified against the shipped source. |
| Odoo 18.0 | Verified | Same behavior as 19. No changes needed. |
| Odoo 17.0 | Verified | Same behavior; the open-chat hook moved to its current import path. |
| Odoo 16.0 | Verified | Same widget with a legacy twin file; hook lived at the old mail path. |
Upgrade note. View usage is identical from 16 through 19. JavaScript patches track the hook's import path, which moved from @mail/views/open_chat_hook in 16 to @mail/core/web/open_chat_hook in 17, and should expect the hook to disappear entirely in 20.
What is changing in Odoo 20
Common problems and fixes
| Symptom | Cause and fix |
|---|---|
| No chat icon on an employee | The employee has no linked user account; the template renders nothing without user_id. Link a user on the HR settings tab, or accept that contractors without accounts have no chat. |
| Icon missing on a custom form even for employees with users | user_id is not loaded in the view and the widget declares no field dependencies. Add user_id to the view, invisible="1" is enough. |
| Icon absent while creating a new employee | The template also requires a saved record (resId). Save the record; the icon appears immediately after. |
| Clicking opens a chat with the wrong person after customization | A patch passed a user id into the hook, which expects the employee record's id. Pass record.resId and let the hook resolve the partner. |
| Icon renders but the click does nothing for some users | Discuss could not resolve a chat partner, typically archived users or missing partner records. Check the linked user is active and has a partner; test Discuss directly with that user. |
Employee chat widget vs the alternatives
| Widget | Best for | Key difference |
|---|---|---|
hr_employee_chat | One-click Discuss chat from an employee record | Renders only when a linked user exists and the record is saved; otherwise nothing |
| many2one_avatar_user | User fields whose avatar popover offers chat | A field widget on user relations; chat is one action on the avatar card |
| many2one_avatar_employee | Employee relations shown as avatar chips | Displays the related employee; this widget acts on the form's own record |
| hr_org_chart | Walking the reporting line from the same form | A data-fetching hierarchy view, not a single-action button |
Frequently asked questions
Why do some employees have the chat icon and others not?+
Does hr_employee_chat work on the public employee directory?+
Why does the icon not show while I am creating an employee?+
Can I add a text label next to the icon?+
What opens when I click, a window or the Discuss app?+
Can I reuse this widget on a non-employee model?+
Is your Odoo HR directory actually connected to how people talk?
Chat icons, approval routings and activity pings all hang off clean employee-user links. We audit HR data, wire Discuss into your HR workflows and build the small UX touches that make the directory the place work starts.
Make your HR setup work harder