Skip to content

Slack Notifications

Slack channels receive severity-icon-prefixed messages via a Slack Incoming Webhook. Setup takes about two minutes — create one webhook URL in Slack, paste it into Reoclo, done.

  • A Slack workspace where you can install apps (or someone who can install one for you)
  • The Slack channel you want notifications to post to

Step 1 — Create the Slack Incoming Webhook

Section titled “Step 1 — Create the Slack Incoming Webhook”
  1. Open https://api.slack.com/apps and click Create New AppFrom scratch.
  2. Name it (e.g., Reoclo Alerts) and pick your workspace.
  3. In the left sidebar, open Incoming Webhooks and toggle Activate Incoming Webhooks to On.
  4. Scroll down and click Add New Webhook to Workspace.
  5. Pick the destination Slack channel and click Allow.
  6. Copy the Webhook URL — it looks like https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX.

If your workspace blocks app installs, ask an admin to install the app or use a Workflow Builder webhook instead — Reoclo posts the same simple text message either way.

  1. Open Settings → Notification Channels.
  2. Click Add ChannelSlack.
  3. Give it a name (e.g., #deploys).
  4. Paste the webhook URL into Webhook URL.
  5. Click Send Test — a [TEST] message should land in the Slack channel within a second.
  6. Pick which events this channel receives.
  7. Save.
Terminal window
reoclo channels create slack \
--name "deploys" \
--secret "https://hooks.slack.com/services/T0.../B0.../XXX..." \
--events deploy_succeeded,deploy_failed

Or via YAML for repeatability:

kind: slack
name: deploys
config: {}
secret: ${env:SLACK_WEBHOOK_URL}
events:
deploy_succeeded: true
deploy_failed: true
Terminal window
SLACK_WEBHOOK_URL="https://hooks.slack.com/services/..." \
reoclo channels create slack --from-file slack-deploys.yaml

Each post is a single text line prefixed with a severity icon and label:

:red_circle: *CRITICAL* — Deployment failed
Deployment of MyApp to prod-1 failed: exit code 137 (OOM)
SeverityIcon
critical:red_circle:
warn:warning:
info:information_source:
none:bell:

Messages use Slack’s mrkdwn formatting, so *bold* renders bold. Reoclo expects an HTTP 200 response with body ok — Slack’s standard webhook reply.

SymptomCauseFix
404 invalid_tokenURL copied wrong or app was uninstalledGenerate a new Incoming Webhook URL and update the channel secret
403 invalid_channelChannel was deleted or app was removed from itAdd the app back to the channel, or regenerate the webhook for a different channel
Test passes, real events silentEvent toggles disabledOpen the channel and enable the events you want
Posts going to wrong channelWebhooks are pinned to one channel at creationCreate a new webhook for the new channel — webhooks can’t be moved
  • One webhook per channel. Create separate Reoclo channels for #deploys, #alerts, #oncall rather than firehosing one Slack channel.
  • Use event filters as routing. A deploys Reoclo channel with only deploy_* events enabled keeps #deploys focused.
  • Slack rate limits. Slack accepts ~1 message/sec per webhook. Reoclo’s retry/backoff handles bursts, but very chatty configurations may drop messages — split across multiple webhooks if you regularly exceed this.
  • Add a PagerDuty channel for after-hours paging so Slack stays informational
  • Configure Alert Rules to wire monitor thresholds into this channel