Skip to content

Notification channels

AlertKick separates what happened (alerts) from how you hear about it (channels). Channels appear in three places: the immediate notification recipients on a policy, the escalation levels that fire when nobody acknowledges, and each user’s personal notification preferences. The same channels are available everywhere, so nothing forces a “Slack for some things, email for others” split unless you want one.

ChannelBest forNotes
EmailLow-urgency, paper trailAny address - recipients don’t need an account
SlackTeam-visible first knockWorkspace channels via the AlertKick app, or a webhook URL
TelegramPersonal push that beats emailVia the AlertKick bot
WhatsAppPersonal push where Telegram isn’t used
SMSWaking people upWorks on any phone, no app or data needed
Mobile pushThe on-call’s phone, with ack in the appNeeds the AlertKick app; honours per-device severity settings
Notify Person”Reach Alex, however Alex prefers”Follows the person’s own preferences
Custom WebhookEverything elseJSON POST to any URL - bridges, tickets, lights

Policy notifications. The first block of every escalation policy sends to a recipient list the moment an alert triggers, acknowledges, or resolves. Recipient types cover the whole lineup:

Recipient type dropdown on a policy: Email Address, User (from account), Slack, Custom Webhook

The Slack option lists your workspace’s channels directly (with a note on whether the bot is a member), so wiring #infra-alerts is a two-click pick, not a webhook scavenger hunt. See the Slack integration for connecting the workspace.

Escalation levels. Every channel is also a level type, which is what makes the classic severity ladder possible - visible channel first, personal pings next, disruptive channels last:

Add Level dropdown listing Email, Push Notification, Roster, Round Robin, Telegram, WhatsApp, SMS, and Slack level types

Personal preferences. Each user configures how they want to be reached. The Notify Person channel honours those preferences, so a policy can say “tell the on-call” without hardcoding anyone’s phone number into shared config - people update their own details, policies never change.

Under Settings, then Notifications, each person can set a quiet-hours window: a start time, an end time, and the timezone they are in. Windows that cross midnight (22:00 to 08:00) work as written.

Inside the window, the interruptive channels aimed at that person as a person are held back:

ChannelDuring quiet hours
Mobile pushSuppressed
TelegramSuppressed
EmailStill delivered
SMS and WhatsApp levelsStill delivered

Email keeps delivering on purpose - it is the paper trail, and it does not wake anyone. SMS and WhatsApp escalation levels target a phone number written into the policy rather than a personal channel, so they are treated as a deliberate configuration choice and are not suppressed. A chain that must reach somebody regardless of the hour should end in an SMS level.

Ticking Allow critical alerts lets critical-severity alerts through the window untouched, which is the setting most on-call engineers want: quiet for warnings, loud for outages.

Suppressed notifications are recorded in the notification audit trail with a “suppressed by quiet hours” status rather than vanishing, so “why did I not get paged” has an answer.

Quiet hours are a personal setting, not a team one. To silence a planned burst of alerts for everybody, use a maintenance window instead.

A shape that works for most teams:

  1. Every alert - Slack channel, so the whole team has ambient awareness and a searchable record.
  2. Unacknowledged after 5 minutes - Notify Person or a roster, following personal preferences.
  3. Still unacknowledged - SMS, then repeat. Texts and calls are for escalation, not first contact; a pager that opens with the most disruptive channel trains people to dread and then mute it.

Webhooks sit outside the urgency ladder - use them to mirror alerts into ticketing, status pages, or anything with an HTTP endpoint, in parallel with the human channels.