Loading...

To get Slack downtime alerts, create an incoming webhook in your Slack workspace, paste the URL into your monitoring tool's Slack integration, and attach it to the monitors you care about. Discord works much the same way with a channel webhook. Where it really pays off is routing: send critical production alerts to a dedicated channel, keep email as a backup, and send a test alert before you trust any of it.
That's the short version. The rest of this guide walks through each step, then covers the part most tutorials skip: how to structure your channels so alerts stay useful instead of turning into background noise. I'll use Moonitor for the examples, but the ideas apply to any tool that supports Slack and Discord webhooks. Menu names and plan details change, so check your tool's current documentation as you go.
Picture this. It's 2am, your checkout page is returning 500 errors, and the alert email is sitting unread in one person's inbox. That person is asleep. Everyone else on the team has no idea anything is wrong until a customer complains the next morning.
I've seen some version of that story more times than I'd like. Email isn't bad, but it's private by default, and incident response is a team sport. Chat helps in a few ways:
There's an honest downside, though. Chat alerts can become wallpaper. If a channel fires ten messages a day for things nobody needs to act on, people mute it, and then the one real outage gets missed. That's why we'll spend a good chunk of this guide on structure.
This is also where failure verification comes in. If your monitoring tool checks from only one location, a brief network blip can ping your channel for no reason. Moonitor describes confirming failures from multiple regions before alerting, which can cut down on alerts caused by an isolated regional problem. It won't remove false alarms entirely, but it gives people more reason to take a message seriously. Once people stop trusting a channel, they stop reading it.
The setup itself is quick, but gather these first so you're not hunting for permissions halfway through.
One more thing: webhook URLs are effectively passwords. Anyone who has one can post to that channel, so keep them out of public repos, screenshots and shared docs. If one leaks, regenerate it.
Slack's menus move around from time to time, so treat the button labels below as a guide and check Slack's incoming webhooks documentation if something looks different. The same goes for Moonitor's integration screens: if your dashboard differs from my description, the product docs win.

#alerts-production works well. Keep it for automated alerts and human replies about incidents, not general chat.Because a webhook is tied to the channel you picked, you'll need a separate webhook for each Slack channel you want to alert. That might feel fiddly, but it's exactly what makes routing possible later.
A useful alert answers the questions you'd ask the moment you wake up. Look for these:

Here's an illustrative example of the kind of message you want (the exact format will differ by tool):
馃敶 DOWN: Checkout (https://shop.example.co.uk/checkout)
Reason: HTTP 503, confirmed from 3 regions
Started: 02:07 GMT
Details: link to incident page
That's enough for whoever is on call to decide in seconds whether to get out of bed. If a message doesn't tell you what's broken and since when, it's making your job harder.
When nothing shows up, it's usually one of these:
Discord uptime alerts are a great fit for indie developers, small agencies, open-source projects and community-run services. Many of those teams already live in Discord, and it's free for most needs. Webhooks also post to a channel without a bot needing to be online, which keeps things simple.
A small tip: use a private channel limited to the people who respond to incidents. If you want specific people pinged, Discord supports role mentions in messages, but whether your monitoring tool can include them depends on its setup, so check the integration options and test it.
| Slack | Discord | |
|---|---|---|
| Best for | Work teams, companies, agencies | Communities, indie teams, open-source projects |
| Webhook setup | Via a Slack app with Incoming Webhooks | Directly in channel settings |
| Permissions | Workspace may require admin approval for apps | Needs Manage Webhooks on the server or channel |
| Threading | Mature threads, good for incident timelines | Threads available, used less often for incidents |
| Mobile notifications | Solid, with granular per-channel settings | Solid, with per-channel and role-based controls |
| Cost | Free tier has limits, paid plans for full features | Free for most needs |
I don't think either one wins outright. Use whichever your team will actually look at. Some teams use both, with Slack for the engineers and Discord for a community or support group. That works fine as long as you don't send everything everywhere.
Sometimes Slack and Discord don't quite fit. Two other options are worth knowing about.
Telegram suits on-call individuals who want a push notification on their phone without running a full Slack client. It's also handy as a second path for responders outside your main workspace.
Generic webhooks let you pipe incidents into PagerDuty-style tools, ticketing systems or your own automation. People use them to:
That last one deserves a caution. An automated restart is powerful, but a faulty or repeated trigger can make an outage worse. Before you connect alerts to any automated action, make sure it's safe to run more than once, put a limit on how often it can fire, and test it somewhere that isn't production.
The same routes work for heartbeat monitoring and cron job monitoring. If a nightly backup fails to check in, that alert can land in the same place as a website outage, or in a different channel entirely. Payload formats and authentication details vary, so check the docs before building anything critical on a custom endpoint. If you do, use HTTPS, and verify signed requests where your endpoint supports it.
One principle I'd keep in mind: have at least one notification path that doesn't depend on your chat app. Slack being down at the same time as your site is unlikely, but it's not impossible.
So you've got your webhooks. Now comes the part that decides whether anyone still reads these alerts in three months: where each type of alert should go.
The short answer to a common question: yes, you can alert different channels per monitor. Create a separate integration for each channel, then attach whichever ones you want to each monitor.

| Pattern | Best for | Urgency | Example channels |
|---|---|---|---|
| Per environment | Teams with clear prod/staging separation | Prod high, staging low | #alerts-prod, #alerts-staging |
| Per service or team | Larger teams with clear ownership | Varies by service | #alerts-payments, #alerts-marketing-site, #alerts-infra |
| Per monitor type | Teams who want to separate outages from warnings | Outages high, warnings low | #alerts-production, #alerts-low-priority |
The third pattern is my favourite for small teams. SSL certificate and DNS warnings, like a certificate expiring in 14 days or a record changing, matter but are rarely urgent at 3am. Server and uptime outages need eyes immediately. Splitting them keeps the urgent channel quiet enough that people respond when it moves.

Say you're a team of six working roughly 9 to 5:30 UK time, with an out-of-hours on-call rota. Here's how I'd route things:
#alerts-production for verified outages on your website, API and servers, with email as a backup for whoever is on call.#alerts-low-priority for SSL expiry, domain expiry and DNS change warnings, checked during working hours.#alerts-staging for test environments, muted outside office hours.Now follow the 2am checkout alert from earlier. It posts to #alerts-production, the on-call person gets a phone notification and an email, and they reply in the thread to claim it. Meanwhile, the SSL warning that fired at 9:15 the same morning went quietly to #alerts-low-priority, where the team picked it up over a cup of tea. Same tool, very different urgency.
One UK-specific tip: check which time zone your alerts use. A timestamp in UTC reads an hour off during British Summer Time, which causes more confusion than you'd expect when you're reviewing an incident the next day.
Both. You can enable multiple alert channels on the same monitor. Use chat for fast team visibility, and keep email as a backup or for stakeholders who aren't in your workspace. For critical production monitors, I'd never rely on chat alone.
@here or @channel, and save it for confirmed production outages.An alert you haven't tested is a guess. Here's how to turn it into something you can count on, without waking anyone up by accident.
Re-run the drill every few months, and any time you change channels, rotate webhooks or onboard new team members. Think of it like a fire drill: you do it when nothing is on fire.
One channel, one webhook, one test. That's genuinely all you need to get started, so don't try to build a perfect routing map today.
Pick your most important monitor, probably your main website or your core API, connect it to a dedicated Slack or Discord channel, and send a test alert. You can add SSL and DNS monitoring, cron checks and extra channels as you go. If you'd like to try Moonitor, check the site for the current trial details. Your future 2am self will thank you. 馃寵
Create an incoming webhook for the Slack channel you want to use, copy the URL, and add it as a Slack integration in your monitoring dashboard. Then attach that integration to your monitors and send a test alert to confirm it works.
Yes. Create separate integrations, each pointing to a different channel, and attach them to the relevant monitors. For example, production APIs can go to #alerts-production while SSL expiry warnings go to a quieter channel.
You can enable multiple alert channels on the same monitor. Many teams use chat for team visibility and keep email as a fallback.
Send the test notification first. Then run a drill with a dedicated test monitor that's attached only to a test channel, with on-call escalation switched off, and check that both the down and recovery messages arrive. Delete the test monitor afterwards.
You can't rule them out completely, but you can reduce them. Verifying failures from multiple regions, as Moonitor does, helps filter out alerts caused by a problem in a single location. Good routing, sensible channels and muted staging alerts handle most of the rest.

Set up Slack downtime alerts and Discord webhooks for fast incident alerting, with client-specific channels, smart filters and fewer missed outages.

A 200 response doesn't mean your API is healthy. Learn how to monitor APIs properly鈥攔esponse content, latency trends, alert thresholds, and CI/CD inte

Set up Slack downtime alerts in minutes with this practical guide to Slack and Discord integrations, custom messages, low-noise routing, testing, and