Slack channels
List and add Slack channels for alerts.
Slack channels
After Slack is installed, manage which channels Happy Uptime can post to without re-running OAuth.
List channels
GET /slack/installations/{installation_id}/channels
Lists channels the bot can post to. Searchable; auto-refreshed every 5s in the dashboard picker.
Substring filter on channel name.
Slack pagination cursor.
json{ "data": [ { "id": "C01ABCD", "name": "incidents", "is_private": false, "is_member": true }, { "id": "C01EFGH", "name": "ops", "is_private": false, "is_member": false } ], "next_cursor": "..."}
Add channel as alert target
POST /alerts/channels
json{ "type": "slack_app", "name": "Slack: #incidents", "config": { "installation_id": "ins_abc", "channel_id": "C01ABCD", "channel_name": "incidents" }}
Channel names are stored without leading #. Duplicate (installation_id, channel_id) pairs are rejected.
Test channel
POST /alerts/channels/{id}/test
Posts a test message. Returns Slack message timestamp on success or the Slack API error.
json{ "data": { "ok": true, "ts": "1734567890.123456" } }
Common errors
| Slack error | Cause | Fix |
|---|---|---|
not_in_channel | Bot isn't a member | /invite @happyuptime in the channel |
channel_not_found | Channel was archived/renamed | Re-pick channel from list |
missing_scope | App missing scope (e.g. im:write) | Reinstall via OAuth |