Discord Webhooks
v1.4+Send real-time status notifications to Discord channels via webhooks with rich embeds and granular event controls.
Native Discord Integration
Rich embeds, severity colors, and customizable bot appearance
Overview
Discord integration allows you to send rich embed notifications to your Discord server when incidents occur, maintenance is scheduled, or component status changes. Each webhook can be configured independently with granular event controls and custom appearance settings.
Getting Started
Step 1: Create a Discord Webhook
- Open your Discord server and go to Server Settings
- Navigate to Integrations → Webhooks
- Click New Webhook
- Give it a name (e.g., "Status Updates") and select the target channel
- Click Copy Webhook URL
💡 Tip: Create a dedicated #status-updates channel for notifications to keep them organized and easily accessible.
Step 2: Add Webhook to ATStatus
- Go to Admin → Notifications → Discord Webhooks
- Click Add Webhook
- Enter a descriptive name (e.g., "Production Alerts")
- Paste your Discord webhook URL
- Configure event triggers and appearance
- Click Create Webhook
Granular Event Controls
Each webhook can be configured to trigger on specific events:
🔴 Incident Events
- Incident Created - When a new incident is reported
- Incident Updated - When an incident status or details change
- Incident Resolved - When an incident is marked resolved
🔧 Maintenance Events
- Maintenance Scheduled - When maintenance is planned
- Maintenance Started - When maintenance begins
- Maintenance Updated - When maintenance details change
- Maintenance Completed - When maintenance is finished
📦 Component Events
- Status Change - When a component status changes
- Component Created - When a new component is added
- Component Deleted - When a component is removed
📊 System Events
- Uptime Alerts - When uptime drops below threshold
- Scheduled Reports - Periodic uptime report delivery
Embed Customization
Discord embeds can be fully customized to match your branding:
| Field | Description |
|---|---|
| Bot Username | Name shown for the bot in Discord |
| Bot Avatar URL | Custom avatar for the bot |
| Embed Title | Custom title template (use {title} placeholder) |
| Embed Color | Custom hex color (or automatic by severity) |
| Author Name/Icon/URL | Author section at top of embed |
| Footer Text/Icon | Footer section at bottom of embed |
| Thumbnail URL | Small image displayed top-right |
| Image URL | Large image at bottom of embed |
Field Visibility Options
- Show Timestamp - Include timestamp in embed footer
- Show Status - Display current incident/component status
- Show Severity - Display incident severity level
- Show Components - List affected components
Automatic Severity Colors
When no custom color is set, embeds automatically use severity-based colors:
Critical
#DC2626
Major
#EA580C
Minor
#CA8A04
Maintenance
#2563EB
Resolved
#16A34A
Testing Webhooks
Each webhook has a Test Webhook button that sends a sample notification to verify the configuration is working correctly.
Test Message Content
The test sends a sample incident notification with all configured appearance settings so you can preview exactly how real notifications will look.
Multiple Webhooks
You can create multiple Discord webhooks for different purposes:
- Separate channels - Different channels for incidents vs. maintenance
- Different servers - Internal team server vs. public community server
- Severity filtering - Critical-only alerts to a dedicated channel
- Per-component - Different webhooks for different service components
Troubleshooting
Webhook Not Receiving Messages
- Verify the webhook URL is correct and complete
- Check that the webhook is enabled in ATStatus
- Ensure the desired event types are enabled
- Verify Discord hasn't deleted the webhook
- Check the channel permissions for the webhook
Rate Limiting
Discord has rate limits on webhooks. If sending many notifications quickly, some may be delayed. ATStatus handles retries automatically with exponential backoff.
Invalid Webhook URL
Discord webhook URLs must match the format: https://discord.com/api/webhooks/.... If your URL doesn't match this pattern, it will be rejected.
