Skip to content
Integrations

Slack

A message in your Slack channel when a CI run finishes - set up per project with an incoming webhook.

One message per finished CI run:

🔴 Failed — Acme Web (main)
Run #128 · 64 passed · 2 flaky · 1 failed · 0 skipped
Fix the coupon rounding
View run #128 in Squally

The first line starts with how the run ended:

  • 🔴 Failed - at least one test failed;
  • 🟡 Flaky - nothing failed, but at least one test passed only after retries;
  • 🟢 Passed - every test passed on its first try;
  • ⚪ Incomplete - the run did not complete (see below).

Then the project and the branch, the run’s number and its four counts - always all four, in this order, zeros included, counted like the run page: each test once, by its final attempt, flaky for a test that passed only after a retry - then the commit message and a link to the run. A sharded run sends one message once all of its shards are in.

  • Only CI runs. A local run sends nothing.

  • A run that did not complete sends one message when it settles - once the run timeout has passed - with the results its shards reported and a line under the counts: “Incomplete — counted with the results its shards reported.” When the monthly result limit stopped it, the line says so.

  • A cancelled run sends nothing - with cancel-in-progress workflows, most cancels are a superseded push.

  • A re-run on GitHub Actions counts only the shards that ran again. When the attempt it re-ran reported to Squally too, a line under the counts says which attempt it re-ran - linked to it in Squally - and which shards ran:

    Run #28 · 43 passed · 0 flaky · 3 failed · 1 skipped
    Re-run of #27 (shards 1, 2)

    An unsharded re-run’s line is “Re-run of #27”. See GitHub Actions.

Admins can switch off the run summary message in the project’s Slack settings; then no message is sent.

  1. In Slack, create an incoming webhook for the channel - see Slack’s guide, Sending messages using incoming webhooks.
  2. An organization admin opens Settings › Integrations › Slack in the project, pastes the webhook URL into the Webhook row and clicks Save. Only https://hooks.slack.com/… URLs are accepted.
  3. Send test message posts a test message right away.

The Slack page is the same card as on the Integrations tab: Webhook, Run summary with its switch, and Status, with Save, Send test message and Disconnect Slack under them.

Each project has its own webhook, so different projects can post to different channels. Admins can disconnect it at any time.

Squally gives a webhook 5 seconds to answer. A message that times out or is refused is not sent again - there is no retry. Squally’s own error tracking is told, with the run’s ids and the failure code only; never the webhook URL. See Hosting and data.

Slack works on every plan. The webhook URL is stored encrypted (AES-256-GCM).