Email alerts get buried under newsletters. SMS costs money and fits one sentence. A Discord channel is free, pushes to your phone in seconds, keeps the full history scrollable, and everyone you share the server with sees the same outage at the same time. Here’s the whole setup — about three minutes, and most of it is copying one URL.
| What a pager needs | Discord |
|---|---|
| Reaches your phone fast | Push notification in seconds, free, no carrier involved |
| History you can scroll | The channel is the log — every outage and recovery, timestamped |
| More than one pair of eyes | Everyone in the server sees it; no forwarding, no CC list |
| Separate loud from quiet | Per-channel notification settings: #alerts pings, everything else stays muted |
| Costs nothing | Webhooks are a built-in Discord feature on every free server |
The mechanism is a webhook — a private URL that lets an outside service post messages into one specific channel, and nothing else. No bot to install, no permissions to review, no Discord API keys.
Make a dedicated #alerts channel first (right-click your server → Create Channel). A separate channel is what makes the notification settings work later — loud alerts, quiet everything else.
Then: Server Settings → Integrations → Webhooks → New Webhook. Pick the #alerts channel, name it anything (the name shows as the sender), and click Copy Webhook URL. The same screen is also reachable per-channel: hover #alerts → the gear (Edit Channel) → Integrations → Webhooks.
Treat the URL like a password — anyone who has it can post into that channel.
Portal → Channels → + → pick Discord. Paste the URL, give it a name, done:
Each monitor picks its own channels — a monitor with none selected deliberately sends nothing, so pick #alerts on the ones that should page. The channel’s row shows how many monitors alert through it, and send test posts a real message so you never have to trust the wiring blind:
Outages arrive red, recoveries green, each with the monitor’s name, what the checker saw, and how long the outage lasted:
Discord’s default is to ping you only on @mentions — fine for chat, wrong for a pager. Two settings fix it:
On paid plans you can go one step further with a custom JSON payload on the channel: shape the message your own way, including a role mention like <@&ROLE_ID> in the text so an outage hard-pings everyone holding your @oncall role — the difference between “a message appeared” and “three phones buzzed”.
A pager that lives in one app has one failure mode: Discord itself down, or your phone logged out, and the page evaporates. The fix isn’t a better single channel — it’s a second rung. Keep the free email channel on the same monitors, and on paid plans build the escalation ladder: Discord immediately, and if nobody acknowledges the alert within 15 minutes, an SMS — so the quiet path only fires when the loud path was ignored. Enterprise adds a literal voice call as the last rung.
| Rung | Channel | When | Cost |
|---|---|---|---|
| 1 | Discord webhook | Instantly | Free, every plan |
| 2 | Instantly (same monitors) | Free, every plan | |
| 3 | SMS after 15 min unacked | Escalation ladder | Paid plans |
| 4 | Voice call, read aloud | Last rung | Enterprise |
Good first candidates for the #alerts treatment: a heartbeat on your home internet, your backup cron jobs, and any machine with no public IP running the beacon agent. All three run happily on the free plan’s three machines.