Slack Integration
Slack Incoming Webhook setup, multi-channel routing on Pro+, mentions, reactions, slash commands.
Slack Integration
Slack is the most-used notification channel in AegisRunner. This page covers Slack-specific setup, message formatting, channel routing, and patterns that work well in practice.
Setup overview
Slack integration uses Incoming Webhooks — one URL per channel. Setup takes about two minutes:
- In Slack, create an Incoming Webhook for the channel you want.
- In AegisRunner, paste the webhook URL.
- Configure which events route to that channel.
Step-by-step
1. Create the webhook in Slack
Easiest path: use the Incoming Webhooks Slack app.
- Open Slack, go to Apps.
- Search Incoming Webhooks, click Add to Slack.
- Pick the channel where notifications should land.
- Click Add Incoming WebHooks integration.
- Copy the URL (starts with
https://hooks.slack.com/services/T.../B.../...). - Optionally customize the bot name and avatar (defaults work fine).
2. Paste into AegisRunner
- Open Project → Integrations → Notifications.
- Toggle Slack on.
- Paste the webhook URL.
- Click Test — a sample message lands in the Slack channel.
- Save.
3. Pick which events route to Slack
Five events available:
run_completed— every run, pass or fail.run_failed— only failures.crawl_completed— every scan.ai_generated— when AI test generation finishes.scheduled_runs— when a scheduled run completes.
Most teams send only run_failed to engineering channels and run_completed + ai_generated to QA. Pro and above support per-channel filters; Starter and below use whatever events are globally enabled.
What the messages look like
AegisRunner uses Slack's Block Kit format — clean, scannable cards with:
- Status emoji (✅ or ❌).
- Suite name and project.
- Pass/fail/skip counts in a row.
- Browser, environment, duration.
- Top failures (up to 3) with short error messages.
- Action button linking to the run page.
Failed runs show in red; passing runs in green. Visual regression rejections show their thumbnails inline.
Multi-channel routing
One project can post to multiple Slack channels by configuring multiple webhooks (Pro+):
| Channel | Webhook | Events |
|---|---|---|
| #eng-alerts | Webhook 1 | Only run_failed |
| #qa-channel | Webhook 2 | run_completed, ai_generated |
| #ops-monitor | Webhook 3 | Everything |
Add more webhooks under the Slack section in Notifications. Each row gets its own per-channel filter.
Common patterns
Engineering channel: failures only
Don't ping engineers when everything's passing — they'll mute it. Configure run_failed: true, all other events false.
QA channel: full picture
QA wants to see every run plus when new AI tests are generated for review. run_completed: true, ai_generated: true.
Status check in PR description
Combine Slack notifications with PR sticky comments. The PR comment gives the formal status check; Slack gives the team realtime visibility.
Reactions for triage
Some teams react to AegisRunner Slack messages to track triage state — 👀 for "looking", ✅ for "fixed". Just a team convention; no special integration needed.
Disabling temporarily
Toggle Slack off in Notifications. Webhook URL stays saved; flip back on when you want messages again.
Some teams run silent for a week after a feature release to avoid noise from baseline drift. Re-enable once new baselines settle.
Common questions
The webhook test posted but real runs don't.
Check that the events you want are enabled. Most often the global notify_run_completed is off but the per-channel filter expects it.
How do I delete the integration?
Toggle Slack off in Notifications. To revoke fully, also remove the webhook from Slack's Apps list.
Multiple Slack workspaces?
Each webhook is bound to one workspace. Configure separate webhooks per workspace under your project. Or run one AegisRunner project per workspace.
Related
- Notifications & Alerts — overview of all channels and per-channel filters.
- CI/CD Integration — PR comments alongside Slack.
- Issue Tracking — auto-create tickets from failures.