Skip to main content

Discord Downtime Alerts: Get Notified in Your Server the Moment a Site Drops

Set up Discord downtime alerts with a webhook in about two minutes, then tune which events reach the channel so the room stays worth reading.

FLAREWARDEN
FlareWarden Team
6 min read

Your site went down at 3:14 a.m. The alert email landed in an inbox nobody opens before nine. Your team was in Discord the whole evening, which is the one place a message would actually have been seen. Routing downtime notifications into that channel takes a webhook and about two minutes, so let’s start there and save the theory for later.

Set It Up in Two Minutes

You need a Discord server whose settings you can open, and a monitoring tool that can post to a webhook. Nothing gets installed on either side.

  1. Create the webhook in Discord. Open Server Settings → Integrations → Webhooks, click New Webhook, and pick the channel that should receive alerts. Then click Copy Webhook URL. A Discord webhook is just a URL that turns HTTP POSTs into channel messages.
  2. Add the destination. In FlareWarden, go to Integrations, click Add destination, and choose Discord.
  3. Paste and scope it. Give the destination a name, paste the URL, then pick which events and which monitors it covers. That scoping step is the one people skip, and it’s the difference between a channel your team reads and one they mute.
  4. Send a test. Use the Send test button. A test embed shows up in the channel within seconds, and you get told immediately if Discord rejected the URL.

A valid webhook URL looks like https://discord.com/api/webhooks/000000000000000000/XXXX…. If you grabbed the /slack-suffixed variant, paste it anyway: the suffix gets stripped and you get native Discord embeds, which look better than Slack-compatibility mode. Webhooks pointed at a thread work too, and discordapp.com plus PTB and Canary URLs are all accepted.

What Lands in the Channel

Alerts arrive as embeds from a bot user, with timestamps rendered in each reader’s local time and a color strip carrying the severity. Color does the triage before anyone reads a word:

ColorMeaning
RedCritical: monitor down, SSL expired, DNS failure
AmberWarning: monitor degraded, SSL expiring soon, anomaly detected
EmeraldRecovered: monitor back up, DNS recovered, anomaly resolved
TealInformational: certificate changed, test messages

Every alert type routes to Discord, not just up-and-down. Incidents (incident.started, incident.recovered with the downtime duration), SSL events (ssl.expiring, ssl.expired, ssl.changed), DNS (dns.failed, dns.recovered), and response-time anomalies (anomaly.detected, anomaly.resolved) all post as embeds.

The recovery embed is the half people underrate. A down alert starts a scramble; the recovery message with a duration attached is what ends it, and it does so without anyone having to ask “is it back yet?” in the channel. Over a few weeks those durations also become a rough record of how long your incidents actually last, which is more honest than memory. Local-time rendering matters for the same reason: a distributed team reading one UTC timestamp does the arithmetic wrong at least once per incident.

One practical note on channel choice. Point the webhook at a dedicated channel rather than the one where work gets discussed. Alerts in a busy channel get buried between messages within minutes, and a muted #general takes the alerts down with it. A quiet channel that only ever contains monitoring events is scannable months later, which is exactly when you want to know how often a given monitor has misbehaved.

Send Less Than You Can

The temptation with a fresh integration is to enable every event on every monitor and enjoy the activity. Don’t. A channel that fires forty times a week trains people to scroll past it, and then the one message that mattered gets scrolled past too. We’ve written about how monitoring itself becomes the problem when the noise floor rises.

A shape that holds up: send incident start and recovery for production monitors to a channel the on-duty person watches, and route certificate and DNS warnings somewhere quieter, since a certificate expiring in 30 days is not a 3 a.m. problem. Configure a second destination rather than dumping both classes into one room. The per-destination event and monitor scoping exists precisely so the urgent channel stays urgent.

Cross-region confirmation matters more than routing here. An alert that reaches Discord in four seconds is worthless if it’s wrong, and single-location checks are wrong often enough to poison a channel’s credibility. FlareWarden requires two regions to agree that a check failed before any alert leaves the building, which is why the Discord channel doesn’t light up every time one city has a bad thirty seconds.

When Discord Is the Wrong Destination

Discord is a good place to learn about an incident and a poor place to manage one. It has no acknowledgement, no escalation if the first person is asleep, and no rotation. Notifications can be muted per channel and per server, which is a feature for the reader and a hazard for you. If nobody responds, nothing happens next.

If an unanswered alert has real consequences, put a paging tool behind Discord rather than in place of it, using a custom webhook to PagerDuty or your own endpoint. And if your team’s actual conversation happens elsewhere, Slack alerts work identically. The destination should follow the team, not the other way round. Both landed together as native alert destinations for that reason.

When Embeds Stop Arriving

Three failures account for nearly all of them:

  • “URL must be a Discord webhook URL” means you copied a channel link or an invite link. Only the URL from Copy Webhook URL works.
  • Silence after someone tidied the server. A deleted webhook returns 404 on every delivery. Check the destination’s delivery history, re-create the webhook in Discord, and update the URL. Failed deliveries retry automatically and can be retried by hand from the history view.
  • Nothing at all, no errors. Confirm the destination is scoped to the monitor you’re testing. Scoping is per destination, so a monitor added last week may not be covered by a destination configured last month.

Rate limits are a non-issue: Discord allows roughly five requests every two seconds per webhook, which is far above what alerting generates. A rate-limited delivery goes into the normal retry queue and arrives moments later.

Discord downtime alerts cost nothing extra. A destination is just a webhook and draws on the webhook allowance your plan already includes, free plans included. Full setup detail lives in the Discord alerts guide.


Key Takeaways

  • The webhook is the whole integration — Server Settings → Integrations → Webhooks in Discord, paste the URL into a destination, send a test. Two minutes, nothing installed.
  • Scope every destination — pick events and monitors deliberately; a channel that fires constantly gets muted, and then it protects nothing.
  • Color carries severity — red critical, amber warning, emerald recovered, teal informational, so the channel triages at a glance.
  • Accuracy beats speed — requiring two regions to confirm a failure is what keeps a chat channel credible.
  • Discord notifies, it doesn’t page — no ack, no escalation, mutable per channel; put a paging tool behind it when silence has consequences.

Want your team to hear about downtime where they’re already talking? Start monitoring free with FlareWarden — 15 monitors, cross-region confirmation before any alert fires, no credit card required.