| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Website (website) |
| Lines of code | 1885 |
| Technical Name |
status_page |
| License | OPL-1 |
Service Status Page
Public component health, incident timelines, and email subscribers —
built into your Odoo Website.
A self-hosted Status Page alternative for companies already on Odoo.
Stop paying for a separate status page
You're already paying for Odoo. Don't pay another $300+/month for a status page.
Standalone status-page services charge anywhere from $20/mo for a starter tier to $1,500+/mo for enterprise plans with custom domains and audience-segmented pages. None of them integrate with Odoo.
This module turns your Odoo Website into a customer-facing service
status page. One-time purchase. No external services. No recurring
fees. The customer-facing page lives at /status on
your existing Odoo domain.
Public status page at /status
Components grouped by service. Active incidents and scheduled maintenance up top.
All clear — the healthy state
Component health and any upcoming maintenance, surfaced together
Features
Component health with grouped layout
Components on the public page are grouped under your service-area headings (API, Dashboard, Email Delivery, etc.) with a five-state status taxonomy: Operational, Under Maintenance, Degraded Performance, Partial Outage, Major Outage. Each component carries a last-state-change timestamp.
Incident state machine with auto-timeline
Incidents start in Draft — invisible to subscribers and the public — so operators can compose before going live. Click Publish to notify confirmed subscribers and surface the incident on the public page. Once published, transition freely between Investigating, Identified, Monitoring, and Resolved as the situation evolves. Every state change auto-posts a timeline update.
Scheduled maintenance with auto-transition
Schedule a future maintenance window. A cron flips the affected components to Under Maintenance when the window opens and back to Operational when it closes — no operator action required. Cancel a window any time and components revert immediately.
Email subscribers with double opt-in
Visitors can subscribe to status updates from the public page. Verification mail with a hashed token is sent before any notifications go out — no open mail relay. Subscribers can watch all components or pick a subset.
Notifications on every incident update
Confirmed subscribers receive an email each time you post an incident update. Each mail carries a fresh, single-use unsubscribe link so the subscriber can drop the subscription without logging in.
Rate-limited subscribe endpoint
Per-IP and per-email rate limits prevent abuse of the subscribe form. Honeypot field traps bots silently. Verification tokens expire after 24 hours.
Multi-company isolation
Per-company ir.rule records on every model —
status pages, components, incidents, subscribers, and
maintenance windows. Tested for cross-tenant isolation.
GDPR-ready
One-click forget action wipes a subscriber's PII while preserving the audit row. Stale verification tokens auto-purge on a daily cron.
Embeddable widget for your app or site
One line of HTML in your customer-facing app shows a banner when something is wrong — and stays invisible the rest of the time. Polls every 60 seconds, renders inside a Shadow DOM so it cannot break (or be broken by) the host page's CSS, and can be disabled centrally from the Odoo backend. When multiple incidents are open, the banner shows the highest-impact one with a "+N other ongoing incidents" tagline (the same convention Atlassian Statuspage uses).
Per-component widget filtering
Optional data-components and data-groups
attributes on the embed snippet scope the widget to specific
components or component groups. Run different embeds in
different surfaces of your app — each one only raising
banners for the parts that surface actually depends on.
Comma-separated, case-insensitive, applies to incidents AND
scheduled maintenance windows.
Configurable maintenance lead time
Upcoming maintenance windows surface on the embedded widget a configurable number of hours before they start (default 24, mirroring Statuspage). In-progress windows always show regardless. Long-lead-time windows scheduled weeks out stay out of the way until they are actually relevant.
Public JSON API
The widget reads from a public, CORS-open endpoint at
/status/api/summary.json. Build your own dashboard
or alerting on top of it — the response shape is
additive-only and safe to consume directly. Each incident and
maintenance entry includes a components array so
consumers can apply their own filtering.
Manage everything from the Odoo backend
Familiar list / form views — no new admin UI to learn
Schedule maintenance ahead of time
Set the window once. The cron handles the rest.
Email subscriber management
Double opt-in with hashed tokens, per-component filtering, one-click forget
Why teams pick this over a separate SaaS
- Lives on your domain. The status page renders at
/statuson your existing Odoo Website — no separate subdomain to set up, no DNS work, no SSL certificate to manage. - One-time purchase. Pay once on the Odoo App Store. No recurring fees.
- Build it into your existing flow. Incidents are Odoo records. Trigger them from automation rules, link them to Helpdesk tickets, or post them manually from the backend. No new tool to context-switch into.
- Audit-ready timeline. Every state change logs a timeline entry automatically. Works as historical evidence during SOC 2 / ISO 27001 audits.
- Subscriber consent done right. Double-opt-in by hashed token. No spam complaints. Per-mail single-use unsubscribe link.
- Multi-company from day one. Run a separate status page per Odoo company in a multi-tenant install — rules enforced server-side, not just on the views.
- GDPR-friendly. Forget-subscriber action wipes PII while keeping the audit row. Stale verification tokens auto-purge.
- Compatible with Odoo 18 Community and Enterprise. Works without Odoo Sign or any Enterprise-only module. Integrates cleanly with the standard Odoo Website.
Requirements
Odoo 18 (Community or Enterprise) with the website,
portal, and mail modules installed.
No external API keys, no third-party services, no recurring fees beyond the one-time App Store purchase.
Support
Bug reports and configuration questions are handled by the author within 14 days. Use the “Contact Author” button at the top of this page or reach out via email.
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