Skip to main content

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 AlertsAlert Channels in BlackTide

Step 1: Create a Slack Incoming Webhook

Option A: Using Slack App Directory

  1. Visit Incoming Webhooks in Slack App Directory
  2. Click Add to Slack
  3. Select the channel where you want to receive alerts (e.g., #alerts)
  4. Click Add Incoming WebHooks integration
  5. Copy the Webhook URL (starts with https://hooks.slack.com/services/...)

Option B: Using Slack API (Custom App)

  1. Go to Slack API Apps
  2. Click Create New AppFrom scratch
  3. Name your app (e.g., "BlackTide Alerts") and select your workspace
  4. Go to Incoming Webhooks and toggle Activate Incoming Webhooks to On
  5. Click Add New Webhook to Workspace
  6. Select the channel and authorize
  7. Copy the Webhook URL

Step 2: Configure BlackTide Slack Channel

  1. Log in to BlackTide
  2. Navigate to AlertsAlert Channels
  3. Click New Channel
  4. Select Slack as the channel type
  5. 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)
  6. Click Test Channel to send a test message
  7. Verify the test message appears in your Slack channel
  8. 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

  1. Go to AlertsAlert Rules
  2. Click New Rule
  3. 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
  4. 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 @here instead of @channel for 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:

  1. Verify webhook URL is correct (starts with https://hooks.slack.com/services/)
  2. Test webhook manually with curl:
    curl -X POST -H 'Content-type: application/json' \
      --data '{"text":"Test from BlackTide"}' \
      YOUR_WEBHOOK_URL
  3. Recreate webhook if it was revoked
  4. 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:write permission

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