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
-
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/….
-
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
-
In Discord: channel settings → Integrations → Webhooks →
New Webhook → Copy Webhook URL
(
https://discord.com/api/webhooks/…).
-
In the dashboard: Integrations → New integration → Discord,
paste the URL.
Same format; the headline is bold via Discord markdown (**…**).
Mattermost
-
In Mattermost: Integrations → Incoming Webhooks → Add
Incoming Webhook, pick a channel, copy the URL.
Self-hosted instances over http are supported too.
-
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.