Channels reference
A channel (also called a notification in the API) is a single delivery destination. Channels live inside a notification group, which is what you attach to monitors.
Every channel has:
{ "notification_group_id": "<group-uuid>", "type": "email|sms|slack|webhook|telegram|discord|microsoft_teams", "details": { ... } // type-specific fields}This page documents details for each type.
{ "type": "email", "details": { "email_address": "alerts@example.com" }}- Validated against a basic email regex.
- No verification step — anything that parses as an email is accepted.
- Sender is
alerts@siteqwality.com. Whitelist it to avoid spam folders. - Subject line includes monitor name + status; body includes a deep link to the incident.
{ "type": "sms", "details": { "country_code": 1, "phone_number": "5551234567" }}country_codeis the country dialing prefix as an integer (1 for US, 44 for UK, 49 for DE, etc).phone_numberis the local number with no formatting characters.- Validation requires a parseable phone number.
- Costs Twilio pass-through rates; billed per page on paid plans.
{ "type": "slack", "details": { "integration_id": "<slack-integration-uuid>", "channel": "#ops" }}- Requires a Slack integration first — see Integrations → Slack.
channelaccepts#nameor a Slack channel ID. Bot must be invited to private channels.- Messages render as rich blocks with status color, monitor name, recent results, and an “Acknowledge” interactive button.
Webhook
Section titled “Webhook”{ "type": "webhook", "details": { "integration_id": "<webhook-integration-uuid>" }}- The URL lives on the integration object (
/integration/webhook), not the channel — so multiple channels can share one URL with different downstream meaning. - Payload is a JSON POST with the incident object + monitor context.
Sample webhook body (truncated):
{ "event": "incident.opened", "incident": { "id": "<incident-uuid>", "title": "HTTP check failure: prod-api", "severity": "major", "status": "investigating" }, "monitor": { "id": "<job-uuid>", "type": "http", "uri": "https://api.example.com" }}Telegram
Section titled “Telegram”{ "type": "telegram", "details": { "telegram_integration_id": "<telegram-integration-uuid>" }}- Setup is two-step: create a setup state, send your bot a code, then finalize. See Integrations → Telegram.
- Messages render as HTML-formatted text with a deep link to the incident.
Discord
Section titled “Discord”{ "type": "discord", "details": { "discord_integration_id": "<discord-integration-uuid>" }}- Discord integration uses an incoming webhook URL (created in your Discord server settings).
- Messages render as embeds with status color and incident link.
Microsoft Teams
Section titled “Microsoft Teams”{ "type": "microsoft_teams", "details": { "teams_integration_id": "<teams-integration-uuid>" }}- Teams integration uses an incoming webhook URL from a Teams channel connector.
- Messages render as Adaptive Cards with status color.
Common pitfalls
Section titled “Common pitfalls”- Channel created but no notifications arrive. First check whether the channel is attached to a group and the group is attached to the monitor. Channels alone don’t deliver.
- Slack/webhook channels saying integration not found. The integration must exist on the same account and be referenced by UUID.
- SMS not arriving. Verify the country code is the integer prefix (
1, not"+1"); confirm the number is plain digits.
See also
Section titled “See also”- Notifications overview — the four-object mental model.
- Integrations — set up Slack, Teams, Discord, Telegram, webhooks.
- API Reference — full request/response shapes.