notification_alert
The banner warning that push notifications are blocked is the notification_alert view widget: twelve lines of code, one browser API check, and exactly one state in which it renders anything at all.
August 26, 2026Updated August 26, 20265 min read
| Technical name | notification_alert |
|---|---|
| Views | form (view widget, |
| Module | web since 17.0 (16.0: mail), present in every Odoo database |
| Used in core | Placed on the base user Preferences form; repositioned onto the HR profile form by mail_bot_hr |
| Versions | Odoo 20.0, Odoo 19.0, Odoo 18.0, Odoo 17.0, Odoo 16.0 |
| No-code setup | No. Placement is view XML; the banner itself is automatic once the widget is in the form |
| Alternatives | actionable_errors, web_ribbon, documentation_link |
What the notification alert widget does
What this means for your team
Working examples
Render-time, per-device, and deliberately quiet
Version compatibility
| Version | Status | Notes |
|---|---|---|
| Odoo 20.0 | Verified | Not released. New copy, alert-info styling and a help dialog button; see below. |
| Odoo 19.0 | Verified | Verified against the shipped source. |
| Odoo 18.0 | Verified | Byte-identical to 19. No changes needed. |
| Odoo 17.0 | Verified | First standalone version in web; behavior identical to 19. |
| Odoo 16.0 | Partial / changed | Same widget name, but implemented as a mail messaging component container with different internals. |
Upgrade note. From 16 to 17 the widget moved from mail's messaging component stack to a standalone file in web. Views kept working because the registered name never changed; only JavaScript patches against the 16 container class needed rewriting.
What is changing in Odoo 20
Common problems and fixes
| Symptom | Cause and fix |
|---|---|
| The banner never shows even though notifications do not arrive | Permission is in the default never-asked state, which the widget deliberately ignores. Trigger the browser's permission prompt from Discuss, or grant it in browser settings. |
| Banner shows on one computer but not another | Notification permission is per browser profile and device. Fix the setting on the machine showing the banner; the difference is expected. |
| Banner still visible after allowing notifications | The check runs at render time, not live. Reopen or refresh the form; the getter re-evaluates on the next render. |
| Banner appears twice on a customized profile form | A custom inherit re-added the widget without removing the mail_bot_hr placement. Keep one placement; replace the other with position="replace". |
| Nothing renders in an embedded webview | The Notification API is absent, so the widget stays silent by design. No action; push notifications cannot work in that context anyway. |
Notification alert widget vs the alternatives
| Widget | Best for | Key difference |
|---|---|---|
notification_alert | Warning a user that this browser has blocked Odoo's push notifications | Renders only on denied permission; no options, no fields, no server data |
| actionable_errors | Record-driven warning banners with action buttons | Fed by a JSON field from the server, not a browser API check |
| web_ribbon | Unmissable record state like Archived or Paid | A corner ribbon over the form, gated by field conditions |
| documentation_link | Pointing users at help content from a form | A static link element, always rendered where placed |
Frequently asked questions
When exactly does notification_alert appear?+
Why do users who never enabled notifications see no banner?+
Where does the banner live in a standard database?+
Can I change the banner text or styling?+
Does it work in list or kanban views?+
What changes in Odoo 20?+
Do your users actually see what Odoo tells them?
Blocked notifications, missed activities and ignored banners add up to slow responses and stalled workflows. We audit and tune Odoo's notification stack, from browser push to email routing to custom in-app alerts, so the right people hear about the right things.
Fix your notification flow