When a monitor's status transitions, oo-workers dispatches to every alert channel bound to it. The model is transition-only: SUCCESS to FAILED fires an outage, FAILED to SUCCESS fires a recovery. Sustained failure stays quiet (no re-paging every interval), and a monitor's first-ever run is silent (there is nothing to compare against).
Channels#
Create channels under the Channels page and bind them per monitor in the + Add monitor dialog.
| Type | The URL field holds | Format |
|---|---|---|
| webhook | an https:// URL | raw JSON {event, monitor, status, …} |
| discord | a Discord webhook URL | rich embed |
| slack | a Slack webhook URL | Block Kit |
| the recipient address | sent via your SMTP server |
Send test alert (per channel) delivers a synthetic alert so you can confirm the wiring before binding the channel to anything.
Email setup#
Email needs an SMTP server configured once via operator env (see .env.example): OO_SMTP_HOST (required to enable email at all), OO_SMTP_PORT (default 587), OO_SMTP_SECURE, optional OO_SMTP_USER and OO_SMTP_PASS, and OO_SMTP_FROM. Each email channel then only stores its recipient address.
Browser monitors#
A browser monitor runs several tests per run, so its alert is a per-run aggregate rather than a per-test flip: the run is down if any test failed or errored, otherwise up. Outage and recovery then dispatch like any other type.
Related: Status pages and incidents.