Alert Channels
Where CloudLine sends your alerts — Discord webhook and email. How to set each one up, what they look like, and which is available on which plan.
When CloudLine fires an alert (your bot went offline, CPU is high, gateway is zombied — see Alert thresholds), it pushes the message to whatever channel you configured. Two channels are available today:
| Channel | Plan | Setup |
|---|---|---|
| Discord webhook | All plans | Paste a webhook URL on the Alerts tab. |
| Pro and Business | Set the destination address on the Alerts tab. Starter accounts can't enable this. |
Both can be on at the same time — most users have Discord-only for low-priority alerts and add email for critical (SEV1) outages.
Discord webhook
The fastest and most common setup. CloudLine posts an embed to a Discord channel of your choosing.
Create the webhook in Discord
- Open your server in the Discord client.
- Go to Server Settings → Integrations → Webhooks → New Webhook.
- Pick a name (e.g. "CloudLine alerts"), an avatar (CloudLine sets its own per-alert so this is just a default), and a target channel.
- Click Copy Webhook URL. It looks like:
https://discord.com/api/webhooks/1234567890/abc_def-ghi…Add it to CloudLine
- On your bot's detail page, open the Alerts tab.
- Paste the URL into Discord webhook URL.
- Click Save.
The dashboard validates the URL shape immediately. Accepted hosts:
discord.com(canonical)discordapp.com(legacy alias)canary.discord.comandptb.discord.com(developer-bound webhooks)
If the URL looks wrong, you get a "doesn't look like a Discord webhook" error before saving.
How it's stored
The webhook URL is encrypted at rest using AES-256-GCM with a per-user encryption key. CloudLine never returns the URL back to the client after save — the dashboard only knows whether one is configured, not what the URL is.
What the alert looks like
A standard Discord embed:
- Title — e.g. "Bot offline: My Music Bot"
- Color — red for offline / SEV1, orange for SEV2, yellow for SEV3, green for recovery
- Fields — timestamp (in your timezone), duration, status, the metric that crossed the threshold (for non-offline alerts)
- Footer — "Sent by CloudLine" (or your custom footer text on Business)
Business users can override the brand color, attach a custom logo, and set custom footer text. See Custom branding in Alert thresholds.
Removing it
To stop Discord notifications, clear the URL field on the Alerts tab and save. The encrypted columns are nulled server-side; we don't keep the old value.
CAUTION
Anyone with the webhook URL can post messages to that channel. Don't share screenshots that include it, and treat it like any other secret. If it leaks, revoke from Discord's integrations panel and create a new one.
Email (Pro and Business)
Less noisy than Discord for personal use — a single inbox for your most important alerts.
Configuration
- On your bot's detail page, open the Alerts tab.
- Enter the destination address in the Email field. Standard validation applies.
- Click Save.
IMPORTANT
Email is a Pro+ feature. On the Starter plan the field is locked, and the server silently ignores any value you try to submit. If you downgrade from Pro to Starter, the stored email is cleared on the next save so old alerts don't keep arriving for free.
Custom reply-to (Business)
By default, alert emails use a no-reply sender. Business users can set a custom customReplyTo address — replies go there instead. Useful if you want incident replies routed to a shared support inbox.
What the email looks like
- Subject —
[CloudLine] Bot offline: <bot name>(or similar for other alert types) - From —
alerts@…(configurable per-deployment) - Body — same fields as the Discord embed, in HTML + plain-text multi-part
Business users can attach a custom logo (shown in the email header) and custom footer text.
Per-channel scoping
Each alert type (offline / latency / CPU / memory / lag / errors / zombie / shard-down) lets you choose which channel(s) it sends to. The toggles live next to each alert on the Alerts tab.
Example: send latencyHigh only to Discord (it's noisy), send offline to both, send errorRate only to email so you read it once a day.
Quiet hours
A daily quiet-hours window can mute non-critical alerts on both channels. Offline alerts still fire by default during quiet hours, controlled by the quietHoursAllowOffline toggle. See Alert thresholds → Quiet hours.
Testing your setup
The Alerts → Send test button delivers one sample message to every configured channel — Discord, email, or both. The test is rate-limited at 1 per minute per bot to keep accidental click-spamming from flooding your channel.
You can also test channels individually by appending ?channel=discord or ?channel=email to the test endpoint URL — useful when you've just changed one and don't want to spam the other.
If neither channel is configured, the test returns "No alert channels configured" and asks you to add one first.
Failure handling
When CloudLine fails to deliver an alert (Discord webhook returns 404, email bounces, etc.), the failure is recorded in the Alert history for that bot. The dashboard shows a small "delivery failed" badge next to the entry so you can spot a broken channel without checking your inbox.
Most-common causes of delivery failure:
- Discord 404 — the webhook was deleted in Discord but the URL is still saved in CloudLine. Regenerate the webhook and update the saved URL.
- Discord 401 — the webhook URL was rotated. Same fix.
- Email bounce — the address mistyped, or your mail provider quarantined the sender. Add CloudLine's sender domain to your safelist.
- Email accepted but not visible — check spam / quarantine. Pro users have a custom reply-to option that often improves deliverability.