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.
Prerequisites
Section titled “Prerequisites”- 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”- Open https://api.slack.com/apps and click Create New App → From scratch.
- Name it (e.g.,
Reoclo Alerts) and pick your workspace. - In the left sidebar, open Incoming Webhooks and toggle Activate Incoming Webhooks to On.
- Scroll down and click Add New Webhook to Workspace.
- Pick the destination Slack channel and click Allow.
- 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.
Step 2 — Create the channel in Reoclo
Section titled “Step 2 — Create the channel in Reoclo”Dashboard
Section titled “Dashboard”- Open Settings → Notification Channels.
- Click Add Channel → Slack.
- Give it a name (e.g.,
#deploys). - Paste the webhook URL into Webhook URL.
- Click Send Test — a
[TEST]message should land in the Slack channel within a second. - Pick which events this channel receives.
- Save.
reoclo channels create slack \ --name "deploys" \ --secret "https://hooks.slack.com/services/T0.../B0.../XXX..." \ --events deploy_succeeded,deploy_failedOr via YAML for repeatability:
kind: slackname: deploysconfig: {}secret: ${env:SLACK_WEBHOOK_URL}events: deploy_succeeded: true deploy_failed: trueSLACK_WEBHOOK_URL="https://hooks.slack.com/services/..." \ reoclo channels create slack --from-file slack-deploys.yamlMessage format
Section titled “Message format”Each post is a single text line prefixed with a severity icon and label:
:red_circle: *CRITICAL* — Deployment failedDeployment of MyApp to prod-1 failed: exit code 137 (OOM)| Severity | Icon |
|---|---|
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.
Troubleshooting
Section titled “Troubleshooting”| Symptom | Cause | Fix |
|---|---|---|
404 invalid_token | URL copied wrong or app was uninstalled | Generate a new Incoming Webhook URL and update the channel secret |
403 invalid_channel | Channel was deleted or app was removed from it | Add the app back to the channel, or regenerate the webhook for a different channel |
| Test passes, real events silent | Event toggles disabled | Open the channel and enable the events you want |
| Posts going to wrong channel | Webhooks are pinned to one channel at creation | Create a new webhook for the new channel — webhooks can’t be moved |
Routing tips
Section titled “Routing tips”- One webhook per channel. Create separate Reoclo channels for
#deploys,#alerts,#oncallrather than firehosing one Slack channel. - Use event filters as routing. A
deploysReoclo channel with onlydeploy_*events enabled keeps#deploysfocused. - 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.
Next Steps
Section titled “Next Steps”- Add a PagerDuty channel for after-hours paging so Slack stays informational
- Configure Alert Rules to wire monitor thresholds into this channel