Documentation
Integrations

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:

  1. In Slack, create an Incoming Webhook for the channel you want.
  2. In AegisRunner, paste the webhook URL.
  3. Configure which events route to that channel.

Step-by-step

1. Create the webhook in Slack

Easiest path: use the Incoming Webhooks Slack app.

  1. Open Slack, go to Apps.
  2. Search Incoming Webhooks, click Add to Slack.
  3. Pick the channel where notifications should land.
  4. Click Add Incoming WebHooks integration.
  5. Copy the URL (starts with https://hooks.slack.com/services/T.../B.../...).
  6. Optionally customize the bot name and avatar (defaults work fine).

2. Paste into AegisRunner

  1. Open Project → Integrations → Notifications.
  2. Toggle Slack on.
  3. Paste the webhook URL.
  4. Click Test — a sample message lands in the Slack channel.
  5. 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+):

ChannelWebhookEvents
#eng-alertsWebhook 1Only run_failed
#qa-channelWebhook 2run_completed, ai_generated
#ops-monitorWebhook 3Everything

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

Need help?

Can't find what you're looking for? Our support team is here to help.