Documentation

Slack, Discord & Mattermost

All three channels work over incoming webhooks: create a webhook URL on the messenger side and paste it into the integration — nothing else is required.

Slack

  1. In Slack: api.slack.com/apps → your app (or Create New App) → Incoming Webhooks → enable and press Add New Webhook to Workspace, pick a channel. Copy the URL like https://hooks.slack.com/services/….
  2. In the dashboard: Integrations → New integration → Slack, paste the URL, pick the events — done.

Messages arrive as mrkdwn: a bold headline plus the details (check, project, time, reason):

*🔴 nightly backup is DOWN*
Check 'nightly backup' went down (no ping arrived in time).
Project: Main
Time: 2026-07-21 03:30:00 (UTC)

Discord

  1. In Discord: channel settings → Integrations → Webhooks → New WebhookCopy Webhook URL (https://discord.com/api/webhooks/…).
  2. In the dashboard: Integrations → New integration → Discord, paste the URL.

Same format; the headline is bold via Discord markdown (**…**).

Mattermost

  1. In Mattermost: Integrations → Incoming Webhooks → Add Incoming Webhook, pick a channel, copy the URL. Self-hosted instances over http are supported too.
  2. In the dashboard: Integrations → New integration → Mattermost, paste the URL.

Shared behaviour

  • events — any subset of down / up / late; SSL alerts of HTTPS checks go to all enabled integrations of the project;
  • tag filter (empty — all project checks);
  • quiet hours — delivery is postponed until the window ends;
  • reminders while a check stays down — at the configured intervals (hours, 1–168);
  • message language matches the account owner's language;
  • delivery: any 2xx is a success; otherwise up to 3 retries (10 s → 1 min → 5 min), everything visible in the integration journal.

If messages don't arrive

  • The webhook was deleted or revoked. The journal shows failed with the messenger's response code (e.g. "Slack webhook responded 404"). Create a new webhook URL and update the integration.
  • Event subscription. Subscribed to down only — up/late won't arrive; check the tag filter too.
  • The integration is disabled. Check the badge on its card and enable it.
  • Status suppressed in the journal — either the service detected an outage of its own workers and temporarily suppressed down alerts (up alerts keep flowing), or the check is unstable and flap damping kicked in (the reason is shown in the journal).
  • Quiet hours — the delivery stays pending until the window ends.
  • Quick diagnostics — the Send-a-test-alert button on the integration card posts through the real webhook; the result is visible in the journal.

Need an arbitrary body format or your own receiving service — use the webhook channel with templates.