Slack Alert Setup Guide
Overview
DeadQueue sends alerts to Slack via Incoming Webhooks. When a queue's status changes (e.g., OK → WARNING, or CRITICAL → RESOLVED), a formatted message is posted to your chosen Slack channel with the queue name, depth, oldest message age, and a link to the runbook if one is configured.
This guide walks through the complete setup from scratch. It takes about 5 minutes.
Step 1: Create a Slack App
Slack requires a "Slack App" to use webhooks. If your workspace already has one you can reuse, skip to Step 2.
- Go to api.slack.com/apps and click Create New App.
- Select From scratch.
- Name it something like
DeadQueue Alertsand select your workspace. - Click Create App.
Step 2: Enable Incoming Webhooks
- On the app settings page, click Incoming Webhooks in the left sidebar (under "Features").
- Toggle Activate Incoming Webhooks to On.
- Scroll down and click Add New Webhook to Workspace.
- Slack will ask you to pick a channel. Choose the channel where you want DLQ alerts (e.g.,
#ops-alerts,#sre-notifications, or#engineering). - Click Allow.
#dlq-alerts) rather than a general channel. This keeps noise down and makes it easy to mute during maintenance windows.
Step 3: Copy the Webhook URL
- After authorizing, you'll be redirected back to the Incoming Webhooks page.
- Your new webhook URL appears at the bottom of the page. It looks like:
https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX
- Click Copy to copy it to your clipboard.
Step 4: Add the Webhook to DeadQueue
- In DeadQueue, go to the Alerts page.
- In the Add Channel form:
- Type: Select
Slack Webhook - Target: Paste the webhook URL you copied
- Label: (Optional) Give it a name like
#ops-alertsso you can identify it later
- Type: Select
- Click Add Channel.
- The channel appears in the list below with an Enabled toggle. Make sure it's on.
Step 5: Test It
The easiest way to test is to trigger a real alert:
- Make sure you have an AWS account connected and at least one DLQ discovered.
- Send a test message to one of your DLQs using the AWS CLI:
aws sqs send-message \ --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/your-dlq \ --message-body "test alert message"
- Wait up to 60 seconds for the next poll cycle.
- When DeadQueue detects the queue went from OK to WARNING, it sends an alert to Slack.
What the Slack Alert Looks Like
DeadQueue sends a formatted Slack message using Block Kit with:
Status: critical
Depth: 47
Oldest message: 3600s
Threshold: 5
Runbook: https://wiki.example.com/orders-runbook
The emoji and header change based on severity: 🔴 CRITICAL, 🟡 WARNING, 🟢 RESOLVED.
Multiple Channels
You can add multiple Slack webhooks pointed at different channels. All enabled channels receive every alert. Common setups:
- One channel for all alerts — Simple. Add one webhook to
#dlq-alerts. - Slack + PagerDuty — Add a Slack channel for visibility and a PagerDuty channel for on-call paging. Slack gets all alerts; PagerDuty only fires for critical.
- Separate channels per team — If different teams own different queues, you can create multiple Slack webhooks and enable/disable them as needed. (Per-queue routing is on the roadmap.)
Troubleshooting
Alert isn't showing up in Slack
- Check the Alerts page — is the channel Enabled?
- Check the Recent Alerts table. If the alert shows there, delivery succeeded from DeadQueue's side.
- If no alert appears in the history either, the queue status may not have changed. Alerts only fire on transitions, not on every poll.
- Verify the webhook URL starts with
https://hooks.slack.com/. DeadQueue rejects other URLs.
Getting "invalid_payload" errors
This usually means the webhook URL is malformed or the Slack App was deleted. Create a new webhook and update the channel target in DeadQueue.
Too many alerts / alert fatigue
- Raise the threshold — Click a queue on the dashboard, increase the Depth Threshold, and save. A higher threshold means fewer WARNING transitions.
- Disable monitoring — For noisy queues you're already aware of, toggle monitoring off in the queue settings.
- Disable the channel temporarily — Use the toggle on the Alerts page during maintenance windows.
Can I send alerts to a DM instead of a channel?
Yes. When creating the webhook in Slack, select a DM conversation instead of a channel. The webhook URL works the same way.
Webhook rate limits
Slack allows ~1 webhook message per second per URL. DeadQueue only sends on status transitions (not every poll), so you won't hit this unless you have hundreds of queues all changing status simultaneously.
Quick Reference
| Webhook URL format | https://hooks.slack.com/services/T.../B.../xxx |
| Alert triggers | Status transitions only (OK→WARNING, WARNING→CRITICAL, any→RESOLVED) |
| Poll interval | 60 seconds |
| Message format | Slack Block Kit (header + section) |
| Includes runbook link? | Yes, if configured on the queue |