Skip to content
Obsevo
Skip to docs navigation

Docs

Alert channels

Slack, Discord, Telegram, email and signed webhooks — included on every plan. Plus the guardrails that stop alerting becoming noise.

Obsevo does not resell notification infrastructure. Every channel uses a credential you own, which is why alerting is included on every plan rather than being a paid feature.

Add channels under Settings → Alerts.

The channels

ChannelWhat it needs
SlackAn incoming webhook URL
DiscordA channel webhook URL
TelegramA bot token and a chat ID
EmailNothing — we send it
WebhookAny URL that accepts a signed JSON POST

There is deliberately no SMS channel. It would be the only channel requiring an account and a balance with a third party, which would undo the property that makes the rest of this list free.

Email is the one channel you bring nothing to

Every other channel uses a credential you create in the app it posts to. Email is sent by us, so there is nothing to configure — an address is enough. Scheduled client reports go out the same way.

The webhook channel is the escape hatch

A signed JSON POST with the event, a timestamp and an HMAC signature in headers. This is how you reach PagerDuty, Opsgenie, or n8n itself — so Obsevo does not have to integrate with everything, and you are not blocked waiting for us to.

Routing

Each channel can be scoped, so the right thing goes to the right place:

  • By instance or client — production alerts to the on-call channel, staging to a quieter one.
  • By minimum severity — a channel that only ever sees critical.
  • By escalation delay — an incident nobody has resolved is re-offered to another channel after a delay you set. This is the "nobody noticed, wake someone" path.

Delivery is de-duplicated per incident per channel and recorded in the database, so a worker restart does not re-send everything. A channel that is failing never blocks the others.

Guardrails

The thing being protected is a person's attention, not the webhook. Three limits exist by default:

Quiet hours. A UTC window, which may wrap midnight, during which only alerts at or above a chosen severity get through — critical by default. Setting the start and end to the same time disables quiet hours rather than silencing everything forever, because silencing everything forever is never what someone means.

A rate cap. Sixty alerts per hour per workspace by default. A workflow failing in a loop should produce one useful page, not two hundred.

Runbook links. A workflow can carry a runbook URL, which is appended to every alert about it. The point of paging someone is that they can act, so the fix steps should arrive with the page rather than be hunted for afterwards.

Documentation