Slack Integration
Send real-time alerts to your Slack channels with rich formatting, inline action buttons, and team mentions. Get instant visibility into incidents without leaving Slack.
Prerequisites
- Slack workspace with permissions to create webhooks
- BlackTide account (any plan)
- Access to Alerts → Alert Channels in BlackTide
Step 1: Create a Slack Incoming Webhook
Option A: Using Slack App Directory
- Visit Incoming Webhooks in Slack App Directory
- Click Add to Slack
- Select the channel where you want to receive alerts (e.g.,
#alerts) - Click Add Incoming WebHooks integration
- Copy the Webhook URL (starts with
https://hooks.slack.com/services/...)
Option B: Using Slack API (Custom App)
- Go to Slack API Apps
- Click Create New App → From scratch
- Name your app (e.g., "BlackTide Alerts") and select your workspace
- Go to Incoming Webhooks and toggle Activate Incoming Webhooks to On
- Click Add New Webhook to Workspace
- Select the channel and authorize
- Copy the Webhook URL
Step 2: Configure BlackTide Slack Channel
- Log in to BlackTide
- Navigate to Alerts → Alert Channels
- Click New Channel
- Select Slack as the channel type
- Fill in the configuration:
- Name: Engineering Alerts (or descriptive name)
- Webhook URL: Paste the URL from Step 1
- Channel: #alerts (optional, overrides webhook default)
- Username: BlackTide (optional custom username)
- Icon Emoji: :rotating_light: (optional)
- Click Test Channel to send a test message
- Verify the test message appears in your Slack channel
- Click Save
Configuration Example
{
"type": "slack",
"name": "Engineering Alerts",
"config": {
"webhookUrl": "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXX",
"channel": "#alerts",
"username": "BlackTide",
"iconEmoji": ":rotating_light:",
"mentions": ["@channel", "@oncall"]
}
}Step 3: Create an Alert Rule
- Go to Alerts → Alert Rules
- Click New Rule
- Configure your rule:
- Name: Production API Down
- Monitors: Select monitors to watch
- Conditions: 3 consecutive failures
- Channels: Select your Slack channel
- Notify on Recovery: Yes
- Save the rule
Message Format
Downtime Alert
🚨 Monitor Down
Monitor: Production API
URL: https://api.example.com/health
Status: Down
Region: US East
Failed Checks: 3 consecutive
Last Error: Connection timeout after 10s
Time: 2026-02-13 14:30:00 UTC
[View Monitor] [View Dashboard] [Acknowledge]Recovery Alert
✅ Monitor Recovered
Monitor: Production API
URL: https://api.example.com/health
Status: Up
Region: US East
Downtime: 5 minutes 32 seconds
Time: 2026-02-13 14:35:32 UTC
[View Monitor] [View Incident]Advanced Features
1. Team Mentions
Notify specific users or groups when alerts trigger:
{
"mentions": [
"@channel", // Notify entire channel
"@here", // Notify online users
"@oncall", // Notify user group
"@john.doe" // Notify specific user
]
}2. Priority-Based Mentions
Mention different groups based on alert severity:
// P0 (Critical) - Mention entire channel
"priority": "P0",
"mentions": ["@channel"]
// P1 (High) - Mention on-call only
"priority": "P1",
"mentions": ["@oncall"]
// P2-P3 - No mentions
"priority": "P2",
"mentions": []3. Custom Message Format
Customize the alert message with template variables:
{
"messageTemplate": "🚨 {monitor} is {status} in {region}\n\nError: {error}\nTime: {timestamp}"
}4. Threaded Updates
Group related updates in a thread:
- Initial alert: Posted as new message
- Status updates: Posted as thread replies
- Recovery: Posted as final thread reply
5. Inline Action Buttons
Slack messages include interactive buttons:
- Acknowledge: Mark incident as acknowledged
- Silence Monitor: Silence for 1 hour
- View Monitor: Open monitor detail page
- View Dashboard: Open BlackTide dashboard
Best Practices
1. Separate Channels by Severity
Create different channels for different alert levels:
- #alerts-critical: P0 incidents only, always
@channel - #alerts-production: P1-P2 production issues
- #alerts-staging: Non-production alerts
- #alerts-web3: Web3-specific alerts (gas spikes, whale movements)
2. Use Descriptive Channel Names
In BlackTide, name your channels to match Slack:
- ✅
Slack - #alerts-critical - ✅
Slack - Engineering Team - ❌
Slack Channel 1
3. Test Webhooks Regularly
Webhooks can break if:
- Slack channel is deleted
- Webhook is revoked
- App permissions change
Test your Slack channels monthly to ensure they still work.
4. Avoid Alert Fatigue
Don't spam Slack with every minor issue:
- Use 3+ consecutive failures before alerting
- Group related monitors into single alert rules
- Use
@hereinstead of@channelfor non-critical alerts - Silence monitors during maintenance windows
5. Combine with Other Channels
Use Slack alongside other notification methods:
- Primary: Slack (immediate team visibility)
- Backup: Email (reaches everyone, even offline)
- Critical: PagerDuty (on-call escalation)
Troubleshooting
Test Message Not Appearing in Slack
Possible Causes:
- Webhook URL is incorrect
- Slack channel was deleted
- Webhook was revoked
- BlackTide IPs blocked by firewall
Solution:
- Verify webhook URL is correct (starts with
https://hooks.slack.com/services/) - Test webhook manually with curl:
curl -X POST -H 'Content-type: application/json' \ --data '{"text":"Test from BlackTide"}' \ YOUR_WEBHOOK_URL - Recreate webhook if it was revoked
- Check Slack channel still exists
Mentions Not Working
Possible Causes:
- User group doesn't exist
- Mention syntax incorrect
- App doesn't have permission to mention
Solution:
- Use correct syntax:
@channel,@here,@groupname - Verify user groups exist in Slack settings
- Check app has
chat:writepermission
Messages Appearing from Wrong Username/Icon
Solution:
Update the channel configuration in BlackTide with correct username and iconEmoji.
Security Considerations
Webhook URL Security
- Treat webhook URLs as secrets (anyone with the URL can post to your channel)
- Don't commit webhook URLs to version control
- Rotate webhooks if they're accidentally exposed
- Use environment variables in automation scripts
Sensitive Data in Alerts
- Don't include API keys, passwords, or tokens in monitor names/URLs
- Mask sensitive headers in alert messages
- Use private Slack channels for alerts containing PII
Rate Limits
Slack has rate limits for webhook messages:
- Slack API Limit: 1 message per second per webhook
- BlackTide Limit: 20 alerts per hour per channel
If you hit the BlackTide rate limit, alerts are queued and sent when the window resets.
Next Steps
- Discord Integration: Similar setup for Discord
- Telegram Integration: Mobile push notifications
- PagerDuty Integration: On-call escalation
- Alert Rules: Configure when alerts trigger
- Best Practices: Optimize your alerting strategy