Slack is where your team already communicates. Getting downtime alerts directly in Slack means faster response times and better team visibility. Here's how to set it up.
Why Slack for Alerts?
- Team visibility - Everyone sees issues immediately
- Quick response - No switching between apps
- Collaboration - Discuss incidents in threads
- History - Searchable alert archive
- Mobile - Get push notifications anywhere
Setting Up Slack Integration
Method 1: Native Integration
Most monitoring tools offer direct Slack integration:
- Go to your monitoring dashboard
- Navigate to Integrations or Notifications
- Select Slack
- Click "Connect to Slack"
- Authorize the app for your workspace
- Select the default channel
Method 2: Incoming Webhook
For more control, use webhooks:
Step 1: Create Incoming Webhook
- Go to api.slack.com/apps
- Click "Create New App" ā "From scratch"
- Name it (e.g., "WizStatus Alerts")
- Select your workspace
- Go to "Incoming Webhooks"
- Toggle "Activate Incoming Webhooks" on
- Click "Add New Webhook to Workspace"
- Select the channel
- Copy the webhook URL
Step 2: Add to Monitoring
Add the webhook URL to your monitoring service's notification settings.
Step 3: Test
Send a test alert to verify it works.
Configuring Alert Channels
Channel Strategy
Create dedicated channels for different purposes:
#alerts-production - Critical production issues only
#alerts-staging - Staging environment alerts
#alerts-all - All alerts (for review)
#incidents - Active incident discussion
Channel-Based Routing
Configure different monitors to alert different channels:
| Monitor Type | Channel |
|---|---|
| Production HTTP | #alerts-production |
| Production SSL | #alerts-production |
| Staging | #alerts-staging |
| Development | #alerts-dev or none |
Message Formatting
Rich Slack Messages
Configure your monitoring tool to send formatted messages:
{
"blocks": [
{
"type": "header",
"text": {
"type": "plain_text",
"text": "š“ Production API is DOWN"
}
},
{
"type": "section",
"fields": [
{"type": "mrkdwn", "text": "*Monitor:*\nProduction API"},
{"type": "mrkdwn", "text": "*Status:*\nHTTP 500"},
{"type": "mrkdwn", "text": "*Duration:*\n5 minutes"},
{"type": "mrkdwn", "text": "*Location:*\nUS-East"}
]
},
{
"type": "actions",
"elements": [
{"type": "button", "text": {"type": "plain_text", "text": "View Dashboard"}, "url": "https://..."},
{"type": "button", "text": {"type": "plain_text", "text": "Acknowledge"}, "style": "primary"}
]
}
]
}
Essential Information
Every alert should include:
- Status - Up/Down with emoji indicator
- Monitor name - Which service is affected
- Error details - HTTP code, error message
- Duration - How long it's been down
- Action link - Quick access to dashboard
Notification Settings
Configure Alert Types
Choose what triggers notifications:
- Down alerts - Always enable
- Recovery alerts - Recommended
- Degraded performance - Optional
- SSL expiry warnings - Recommended
Quiet Hours
Prevent non-critical alerts during off-hours:
Critical (service down): 24/7
Warning (slow response): 8 AM - 10 PM only
Info (minor issues): Business hours only
Using Slack Workflows
Automated Incident Response
Create Slack Workflow for incoming alerts:
- Trigger: Message in #alerts-production
- Action: Create thread
- Action: Invite @oncall-team
- Action: Post incident template
Escalation Workflow
If no response within 10 minutes:
- Trigger: No reaction to alert message
- Action: DM @oncall-primary
- Action: Post in #escalations
Best Practices
Do
- Use threads for discussion
- React with emoji to acknowledge
- Pin active incidents
- Use @channel sparingly
- Archive resolved incidents
Don't
- Alert to #general
- Send test alerts to production channels
- Ignore alert fatigue signals
- Use unclear monitor names
Slack Integration Checklist
- Slack app or webhook created
- Connected to monitoring service
- Channel routing configured
- Message format verified
- Test alert sent and received
- Team notified of new alerts
- Escalation workflow set up
Troubleshooting
Alerts Not Arriving
- Check webhook URL is correct
- Verify channel exists and is public (or bot is invited)
- Test webhook manually with curl
- Check monitoring service logs
Rate Limiting
Slack has rate limits. If hitting them:
- Reduce alert frequency
- Use deduplication
- Consider summary alerts
Wrong Channel
If alerts go to wrong channel:
- Verify webhook is for correct channel
- Check channel routing in monitor settings
- Ensure correct integration is selected