
Your team lives in Discord. Standups happen there. Deploys get announced there. Bug reports land there.
So when your website goes down, the alert should show up there too — not buried in an email inbox nobody checks after hours.
This guide shows you how to set up Discord alerts for website downtime. You'll get a notification in your Discord channel within minutes of an outage, with details on what failed and when.
Why Discord for Downtime Alerts
Your team is already there
Alert fatigue is partly a routing problem. If alerts go to a channel nobody watches, they get missed. Discord is where many development teams coordinate already — especially smaller teams, indie projects, open-source communities, and gaming companies. Putting alerts where people are is the simplest way to reduce response time.
Real-time push notifications
Discord sends push notifications to desktop and mobile. When your site goes down at 2 AM, the alert doesn't wait for someone to check email. It pings everyone in the channel (or specific roles) immediately.
Rich message formatting
Discord webhooks support embeds — structured messages with titles, descriptions, colors, and fields. Your downtime alert can include the monitor name, the failure reason, the response time, and a direct link to investigate, all in a clean card format.
Free and no per-message costs
Unlike SMS (which costs per message) or phone calls (which cost per minute), Discord notifications are free. You can alert on every state change — down, degraded, recovering, back up — without worrying about cost.
How Discord Webhooks Work
Discord webhooks are URLs that accept HTTP POST requests and convert them into messages in a channel. You create a webhook in your Discord server, then give the URL to your monitoring tool. When an alert fires, the monitoring tool sends a POST request to the webhook, and Discord displays the message.
No bot code required. No Discord app to maintain. Just a URL.
The flow
Monitor detects failure
→ Sends HTTP POST to Discord webhook URL
→ Discord displays message in your channel
→ Team sees alert and responds
Option 1: Using Webalert (Recommended)
Webalert has built-in Discord integration — no custom webhooks or middleware needed.
Step 1: Create a Discord webhook
- Open your Discord server
- Go to the channel where you want alerts (e.g.,
#monitoringor#alerts) - Click the gear icon (Edit Channel) → Integrations → Webhooks
- Click New Webhook
- Give it a name (e.g., "Webalert Alerts")
- Copy the webhook URL — it looks like:
https://discord.com/api/webhooks/1234567890/abcdef...
Step 2: Add the webhook to Webalert
- Log in to your Webalert dashboard
- Go to Settings → Notification Channels
- Click Add Channel → select Discord
- Paste your webhook URL
- Send a test notification to verify it works
- Save
Step 3: Assign the channel to your monitors
- Go to any monitor's settings
- Under Notification Channels, enable your Discord channel
- Save
That's it. When the monitor detects a failure, you'll get a formatted alert in your Discord channel with the monitor name, status, and details.
What Webalert Discord alerts look like
Webalert sends rich embeds with:
- Alert type — Down, degraded, or recovered
- Monitor name — Which URL or service is affected
- Status details — HTTP status code, response time, error message
- Timestamp — When the issue was detected
- Direct link — Click to see the monitor's history and details
Recovery notifications are also sent when the service comes back up, so you know the incident is over.
Option 2: Custom Webhook Setup
If you're using a monitoring tool that supports generic webhooks (or building your own), you can send Discord alerts directly.
Discord webhook message format
Discord webhooks accept JSON payloads. For a simple text message:
{
"content": "🔴 **ALERT** — yoursite.com is DOWN (HTTP 503)"
}
For a richer embed:
{
"embeds": [
{
"title": "Monitor Alert: yoursite.com",
"description": "Your website is not responding.",
"color": 15158332,
"fields": [
{ "name": "Status", "value": "DOWN", "inline": true },
{ "name": "HTTP Code", "value": "503", "inline": true },
{ "name": "Response Time", "value": "Timeout (30s)", "inline": true },
{ "name": "Checked From", "value": "US East, EU West", "inline": false }
],
"timestamp": "2026-03-02T14:32:00.000Z"
}
]
}
The color field accepts decimal color values: 15158332 is red (alerts), 3066993 is green (recovery).
Sending the webhook
curl -H "Content-Type: application/json" \
-X POST \
-d '{"content": "🔴 yoursite.com is DOWN"}' \
https://discord.com/api/webhooks/YOUR_WEBHOOK_URL
Rate limits
Discord webhooks are rate-limited to about 5 requests per 2 seconds per webhook, and 30 requests per 60 seconds per channel. For monitoring alerts this is more than enough — but if you have 50 monitors all failing at once (e.g., during a major outage), some messages might be delayed.
Webalert handles this automatically by batching and throttling. If you're building a custom integration, implement simple retry logic with backoff.
Best Practices for Discord Monitoring Alerts
Use a dedicated channel
Don't send alerts to #general. Create a dedicated #monitoring or #alerts channel. This keeps alerts visible without drowning out conversations, and lets people mute the channel when they're not on-call.
Set up role mentions for critical alerts
For critical alerts (site completely down), mention a role like @on-call or @engineering. For warnings (high response time, certificate expiring), send the alert without mentions so it's visible but not disruptive.
You can configure this in Webalert by setting up different notification channels for different severity levels, or in custom webhooks by including role mentions in the message content:
{
"content": "<@&ROLE_ID> 🔴 **CRITICAL** — yoursite.com is DOWN"
}
Replace ROLE_ID with your Discord role's ID (enable Developer Mode in Discord settings, then right-click the role to copy its ID).
Send recovery notifications
Always notify when the issue is resolved. An alert without a corresponding recovery creates uncertainty — is it still down? Did someone fix it? Was it a false alarm? Recovery messages close the loop.
Include actionable context
A good alert tells the responder what to do next. Include:
- Which service is affected
- What the failure is (status code, timeout, etc.)
- A link to the monitor dashboard or runbook
- Who to escalate to if the first responder can't fix it
Don't alert on every blip
Configure your monitoring to require 2-3 consecutive failures before alerting. A single failed check might be a transient network blip. Consecutive failures mean something is genuinely wrong. This prevents the #alerts channel from becoming noise.
Discord vs. Slack vs. Email vs. SMS
| Channel | Speed | Cost | Push notification | Rich formatting | Best for |
|---|---|---|---|---|---|
| Discord | Instant | Free | Yes (desktop + mobile) | Yes (embeds) | Teams that live in Discord |
| Slack | Instant | Free tier limited | Yes | Yes (blocks) | Teams that live in Slack |
| 1-5 min | Free | Depends on client | Limited | Non-urgent alerts, audit trail | |
| SMS | Instant | $0.01-0.05/msg | Yes | No (text only) | Critical alerts, after-hours |
| Phone call | Instant | $0.05-0.15/call | N/A (rings) | No | P1 emergencies only |
The best approach is layered: Discord (or Slack) for team awareness, SMS or phone for critical alerts that must reach someone immediately. Use at least two channels so a single point of failure in your alerting doesn't leave you blind.
Combining Discord with Other Alert Channels
Discord is great for team awareness, but it shouldn't be your only alert channel. Build a layered alerting strategy:
For all alerts
Send to Discord. Everyone on the team sees the state change. This is your team awareness layer.
For critical alerts (site down, API down)
Also send via SMS or phone call to the on-call engineer. Discord might be muted, the phone might be on Do Not Disturb, but SMS and calls usually break through.
For warnings (high response time, cert expiring)
Discord only. These need attention during business hours but don't warrant waking someone up.
For resolved notifications
Discord only. Confirm the incident is over without sending unnecessary SMS/calls.
How Webalert Makes Discord Alerts Easy
Webalert supports Discord as a first-class notification channel:
- One-click setup — Paste your Discord webhook URL, send a test, done.
- Rich embeds — Formatted alerts with monitor name, status, response time, and check region.
- Recovery notifications — Automatic "back up" messages when the issue resolves.
- Per-monitor channels — Send critical monitor alerts to
#alertsand non-critical ones to#monitoring. - Combined with other channels — Use Discord alongside email, SMS, Slack, Microsoft Teams, and webhooks for layered alerting.
- Rate limit handling — Built-in throttling and batching so you never hit Discord's webhook limits.
Set up your first Discord alert in under 5 minutes.
See features and pricing for the full details.
Quick Setup Checklist
- Create a
#monitoringchannel in your Discord server - Create a webhook in the channel's Integrations settings
- Add the webhook URL to your monitoring tool (Webalert, or your custom setup)
- Send a test alert to verify the message arrives
- Assign the Discord channel to your monitors
- (Optional) Create an
@on-callrole and configure critical alerts to mention it - (Optional) Add SMS as a backup channel for critical alerts
You'll go from zero to real-time downtime alerts in your Discord server in about 5 minutes.