Appearance
Slack
triaged. This is outbound. It does not create Pulses.Posts go to the channel a workspace admin connected. There is no per-user unsubscribe. Personal incident email and SMS use membership opt-in instead.
Connect
Sign in as a workspace admin → Connections → Notifications → Slack.
Add to Slack (OAuth)
When the Exhale Slack app is configured on the platform, Add to Slack authorizes chat:write plus incoming-webhook so Slack can offer a channel picker. Exhale stores the install webhook URL when Slack returns one. Delivery posts to that URL first, and uses chat.postMessage only when no webhook URL is stored.
Incoming Webhook
- In Slack, create an Incoming Webhook for the destination channel.
- Paste the
hooks.slack.comHTTPS URL and an optional channel label. - Save, then Test connection.
See Slack's official guide: Sending messages using incoming webhooks.
A tenant can keep both a bot token and a webhook URL. Delivery prefers the webhook URL. The webhook host must be hooks.slack.com. The URL is stored as a secret and is not shown again after connect.
Delivery
When triage completes, Exhale posts Block Kit (header, summary, next-step facts, View pulse in Exhale). Title and triage text are scrubbed again before send. Retry-triage does not send a second Slack message for the same Pulse.
Quiet hours do not defer Slack. Optional minimum severity (Notifications → Other preferences) can skip Slack below the floor; unclassified Pulses always notify. Optional notify-on-acknowledge / resolve posts a short status plus link.
Test connection uses the stored Incoming Webhook URL when one is present, otherwise chat.postMessage.
Plan
Slack is available on all plans and consumes an outgoing slot (Trial/Starter 1, Growth 3, Business 3, Enterprise 5, shared with Teams). Updates on an already-configured Slack row do not consume a second slot.
API
Canonical paths are under /v1. Session plus CSRF on writes.
| Method | Path |
|---|---|
PUT | /v1/auth/notifications/slack |
POST | /v1/auth/notifications/slack/test |
GET | /v1/auth/notifications/slack/oauth/start |
DELETE | /v1/auth/notifications/slack/oauth |
Webhook URLs and bot tokens are never returned on GET /v1/auth/notification-channels.