Alerts
Connecting Slack, Discord, and email
Step-by-step setup for the four alert channel types: email, Slack webhook, Discord embed, generic webhook. Plus the Test button that proves the path works.
Updated 2026-05-25 · 2 min read
Everguardly delivers alerts to four channel types: email, Slack, Discord, and webhook. Slack and Discord both ride on the incoming-webhook pattern; the Discord variant uses an embed payload so alerts render with a colored severity bar and named fields.
To add a channel, open Settings → Channels and click "Add channel". Pick a type, give it a name (whatever helps you recognize it in logs), and supply the destination.
The destination is just the address you want alerts to go to. A team inbox like alerts@yourcompany.com is the right default; per-person email gets noisy fast once you have more than a couple of monitors.
Slack
You need an incoming webhook URL. Slack's docs walk through creating one:
- Go to
api.slack.com/appsand create an app. - Enable Incoming Webhooks.
- Click "Add New Webhook to Workspace" and pick the channel.
- Slack hands you a URL that starts with
https://hooks.slack.com/services/. - Paste that into Everguardly's "Webhook URL" field.
Discord
Discord webhooks are a few clicks inside the server you want to alert. You need permission to "Manage Webhooks" on the target channel.
- Open your Discord server.
- Server Settings → Integrations → Webhooks.
- Click "New Webhook".
- Pick the channel that should receive alerts (e.g. #ops or #site-alerts).
- (Optional) Set the name to
Everguardly. - Click "Copy Webhook URL".
- Paste it into Everguardly's "Webhook URL" field — it starts with
https://discord.com/api/webhooks/.
Discord alerts arrive as a colored embed: red for down and expired SSL / domain, amber for SSL or domain expiring soon, green for recovery. The embed includes the monitor name, URL, and registrar/CA where applicable.
Webhook
Pick a URL on your own infrastructure that accepts JSON POST. We send an envelope with event type, monitor metadata, and the payload:
{
"event": "down",
"monitor": { "id": "…", "name": "Acme marketing", "url": "https://acme.com" },
"incidentId": "…",
"payload": { "error": "HTTP 503" },
"timestamp": "2026-05-25T12:00:00Z"
}Your endpoint can do whatever it wants with it — page someone, write to a log, kick off a remediation script.
Always click "Test"
Once a channel is added, hit the Test button. We send a synthetic test alert through the same code path the worker uses for real alerts. A passing test really does prove the channel works end to end.
Routing — three tiers
When a monitor needs to alert, Everguardly resolves channels in this order, most-specific first:
- Per-monitor override — Edit monitor → "Send alerts to" → Custom channels. If set, only these channels fire.
- Per-client default — Clients → Edit → "Default alert channels". Used when the monitor inherits and has a client assigned.
- Global default — Channels marked "Default" in Settings → Channels. Used when neither the monitor nor the client overrides.
This means an agency can set one Discord webhook per client and never touch individual monitors — every site in the client routes there automatically.
Need something this doesn't cover? Email hello@everguardly.com — we'll write the doc.