Skip to content

Alert channels

Alert channels deliver an alert when a monitor goes down and when it recovers. The dashboard calls them integrations, and they belong to a project.

  1. In the sidebar, go to Integrations and click Add Integration.

  2. Choose a channel type and fill in its details.

  3. Leave Enable for all monitors in this project on to alert this channel for every monitor in the project. Turn it off to choose monitors one by one in their settings.

  4. Save the integration, then click Send Test on its card. The card shows Sent! when the test message goes out.

Kind Channels
Chat Slack, Microsoft Teams, Google Chat, Discord, Mattermost, Rocket.Chat, Matrix, Telegram, Signal
On-call and incident response PagerDuty, Opsgenie, Grafana OnCall, Squadcast, GoAlert, Splunk On-Call
Push notifications ntfy, Gotify, Pushover, Browser Notifications
Email and webhooks Email, Webhook

Each type asks for what it needs to deliver the alert, for example:

Channel You provide
Email Email addresses
Slack A webhook URL and a channel
PagerDuty An integration key
Opsgenie An API key and a region
ntfy A server URL and a topic
Webhook An endpoint URL and a secret

The Webhook channel here is the older notification webhook. For new integrations, use project webhooks, which are signed, retried, and logged.

  • Every new monitor uses every active integration in the project, however it’s created: in the dashboard, from a subscription URL or a project export, or through the REST API, the MCP server, or the CLI. When you add one in the dashboard, you can choose which integrations instead.
  • To change a monitor’s channels, open the monitor’s Settings tab and use Notification integrations.

You can see a project’s channels, choose which ones a monitor’s alerts go to, and send a test alert without opening the dashboard. Making or editing a channel stays in the dashboard, because its form holds the channel’s secrets, such as a bot token or a webhook address. None of these ever show a channel’s settings.

  • REST API: GET /channels lists the channels, and PUT /servers/:id/channels sets a monitor’s whole list ([] means no channel). POST /servers/:id/test-alert sends a test and says which channels took it.
  • CLI: thq channels list, show, set, and test. See Manage alert channels.
  • MCP server: list_channels, get_alert_channels, set_alert_channels, and send_test_alert. See Tools.
  • AI SRE: it can suggest where a monitor’s alerts should go, or a test alert, as a card. Nothing changes until someone who can edit monitors approves it.

Changing a monitor’s channels or sending a test alert needs a role that can edit monitors. A test alert reaches at most 10 channels, and each person can send 10 test messages an hour, counting the dashboard’s test buttons too.

When a monitor Alert
Goes Down Yes
Recovers Yes
Goes Partial Only if the monitor’s Notify on partial outage switch is on
Is Degraded or Unknown No

To be alerted again while a monitor stays down, use Repeat the alert. To hold a monitor’s alerts for a while, mute it.

Repeat the alert alerts a monitor’s channels again while its outage is open and nobody has acknowledged it. Choose Never (the default), Every 10 minutes, Every 30 minutes, or Every hour.

  • On an Uptime check, it’s next to Confirmation period, in the check’s settings and in the Add check dialog. Heartbeats don’t have it.
  • On a tunnel, it’s under Settings → Advanced Settings. It replaces Resend Notification if Down X times consecutively.
  • For many monitors at once, tick them in the Tunnels or Uptime list and choose Settings in the selection bar. Repeat the alert there starts at Unchanged, which leaves each monitor as it is.

It repeats up to 4 more times, and stops as soon as someone acknowledges the incident or the incident ends. A repeat reads, for example, “Still down after 35m (repeat 1 of 4):” followed by the last check’s error.

Repeats go to the monitor’s alert channels, including a legacy notification webhook if it’s one of them. Project webhooks don’t repeat: they fire once on the way down and once on recovery. A muted or paused monitor gets no repeats, and a mute doesn’t use them up.

Mute a monitor to hold its alerts for a while, while its checks keep running. For planned work, a maintenance window also pauses the checks, opens no incidents, and doesn’t count against uptime.

  • In the Tunnels or Uptime list, open a row’s ⋯ menu, choose Mute alerts, then For 15 minutes, For 1 hour, For 4 hours, or Until I unmute. The Cards view has the same item. On a phone, the card’s sheet lists the four choices, such as Mute alerts for 1 hour.
  • On a tunnel’s or check’s page, click Mute, beside Pause, and pick the same choices.

Heartbeats can be muted too. While a monitor is muted:

  • Its checks keep running, and incidents still open and close.
  • No alert channel is sent anything: no down or recovery alerts, no repeats, and no SSL or domain expiry alerts.
  • Project webhooks still fire, because they feed your own systems, and Send test alert still sends.

A muted row shows Alerts muted · 45m left under its status (minutes under an hour, then hours, such as 4h left), or Alerts muted when it’s muted until you unmute. Hover it to see when the mute ends. On the monitor’s page, the button reads Muted · 45m, with an Unmute button beside it.

A timed mute ends by itself. To end one early, choose Unmute alerts in the row’s menu, or click Unmute.

Muting needs the same role as pausing. For roles that can’t pause, Mute alerts is shown but disabled.

Each integration card has an on/off switch. While a channel is off, it sends no alerts, and Send Test is disabled.