| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Lines of code | 390 |
| Technical Name |
xpt_internal_broadcast |
| License | OPL-1 |
| Website | https://xpedyt.pl |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Lines of code | 390 |
| Technical Name |
xpt_internal_broadcast |
| License | OPL-1 |
| Website | https://xpedyt.pl |
Internal Broadcast
Push company-wide announcements to every user — as a persistent banner, a login popup, or both.
Overview
When something important happens — a system outage, a policy change, an urgent notice — there is no reliable way to reach every Odoo user at once. Emails get missed, chat messages get buried, and not everyone reads the chatter. By the time the news spreads, someone has already acted on stale information.
Internal Broadcast solves this. Administrators publish a message once — with a title, rich HTML body, color, and optional schedule — and it appears for every internal user automatically: as a colored bar below the navbar, as a dialog on startup, or both. No configuration needed per user. No additional integrations required.
Persistent banner
Messages set to Banner or Banner & Popup display as a colored strip immediately below the top navigation bar, across every view in the backend. The banner is always visible — there is nothing to click or open. It stays until the message expires or is deactivated by an administrator.
Multiple active banner messages stack vertically, each with its own color and title. Users see the message body inline, formatted with the full HTML the administrator entered.
Startup popup
Messages set to Popup or Banner & Popup open as a modal dialog when the Odoo webclient loads. If several popup messages are active, they appear one after another — each must be acknowledged before the next one opens.
Once a user clicks Got it, a dismiss record is created for that user and message. The popup will not reappear for them, even after a page reload or a new session. Dismiss records are per-user: every person sees the popup exactly once.
Scheduling and group targeting
Each message has a mandatory Start Date and an optional End Date. Messages only appear within the active window — they show up as soon as the start date is reached and stop appearing automatically when the end date passes. There is no cron job to configure; the active window is evaluated at the time of each user session.
By default a message is visible to all internal users. To restrict it, add one or more Odoo groups to the Visible to Groups field. Only users who belong to at least one of the listed groups will see the message.
Four color levels
Every message has a color that controls the visual style of the banner or popup:
- Info — blue; general announcements and reminders
- Warning — yellow/orange; things users need to be aware of
- Danger — red; urgent notices that require immediate attention
- Success — green; positive news, resolved incidents, go-aheads
Colors map to Bootstrap contextual classes, so they automatically adapt to the Odoo theme — including dark mode.
Key features
- Three display modes — Banner, Popup, or Banner & Popup; choose per message
- Rich HTML body — the message body is an HTML field with the full Odoo wysiwyg editor: bold, links, lists, anything
- Scheduled activation — start and end dates control exactly when a message is live; no manual toggling required
- Per-user popup dismissal — tracked server-side; each user sees a popup once and only once
- Group targeting — narrow a message to specific Odoo groups, or leave the field empty to reach everyone
- Active toggle — pause a message without deleting it; reactivate at any time
- No per-user setup — messages are delivered automatically to all matching users on next page load
- No extra dependencies — depends on
webonly; works on Community and Enterprise
Access and permissions
Creating, editing, and deleting broadcast messages requires the Broadcast Manager role, accessible under Settings > Technical > Broadcast Messages. Regular internal users have read-only access — they can see messages but cannot manage them.
Dismiss records are write-protected by a constraint: users can only create dismiss entries for themselves, preventing one user from silencing a popup on behalf of another.
Requirements
- Odoo 19 (Community or Enterprise)
- Depends on:
webonly — no additional modules required
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module