title: "Slack notifications" description: "Route BoxWatch alerts to a Slack channel via incoming webhooks." last_updated: "2026-05-24"

Slack notifications

Post BoxWatch alerts to a Slack channel via an incoming webhook URL. One Slack URL per account. Messages are formatted with attachments and color-coded by severity.

Set up the Slack side

  1. In Slack, open Apps and search for "Incoming Webhooks." Install it on your workspace if it isn't already.
  2. Click Add to Slack, pick the channel you want alerts in, and click Add Incoming Webhooks Integration.
  3. Copy the Webhook URL. It looks like https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX.
  4. Optionally customize the name and avatar Slack will use for the bot — these are Slack-side settings and don't affect BoxWatch.

Treat the webhook URL as a secret. Anyone with it can post to that channel.

Connect it to BoxWatch

  1. Go to Dashboard → Account → Notifications.
  2. Paste the webhook URL into the Slack webhook field.
  3. Click Save, then Send test alert to confirm the wiring.

BoxWatch validates that the URL starts with https://hooks.slack.com/ before saving. If you paste something else, it rejects the request.

What gets posted

Every alert renders as a Slack message with a title, the entity name, and a "View" link back to your dashboard. The attachment color encodes severity:

  • Red (#d93f3f) — down / failing
  • Amber (#eab308) — warnings (high CPU, stuck job, cert expiring)
  • Green (#3aa55c) — recoveries

Example for a missed cron heartbeat:

⚠️ Missed run: Nightly Postgres backup (on db-prod-1)
View check → https://boxwatch.app/dashboard/checks/4821

Example for a downed uptime check:

🚨 Check down: api.example.com (HTTP)
Target: https://api.example.com/health
View check → https://boxwatch.app/dashboard/uptime/119

Discord-style emoji codes (:rotating_light:, :warning:) render natively in Slack.

Test it

From Dashboard → Account → Notifications, click Test Slack. BoxWatch posts a synthetic alert with serverName: test-server and a CPU threshold breach. If the message lands in Slack, you're set.

You can also test from the API:

POST/auth/test-webhook
Auth: bearer

Body: { "platform": "slack" }.

Replacing or removing the URL

To rotate: revoke the old webhook in Slack (Apps → Incoming Webhooks → your hook → Remove), then paste a fresh URL into BoxWatch. To stop Slack alerts entirely, clear the field and save an empty value.

Troubleshooting

  • 404 from Slack — the channel was deleted, or the integration was removed in the Slack workspace. Re-create the webhook and update BoxWatch.
  • 410 Gone — Slack revoked the webhook (usually because someone disabled the app). Re-install Incoming Webhooks and paste the new URL.
  • No message but no error — verify under Dashboard → Alerts → History that the alert actually fired. If it did, your URL is wrong. Re-test.
  • Some alerts post, others don't — Slack rate-limits incoming webhooks to about one message per second per workspace. During an alert storm BoxWatch will lose some Slack posts even though email and webhooks make it through.

See also

Was this page helpful?