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.

searchstringquery

Substring filter on channel name.

cursorstringquery

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 errorCauseFix
not_in_channelBot isn't a member/invite @happyuptime in the channel
channel_not_foundChannel was archived/renamedRe-pick channel from list
missing_scopeApp missing scope (e.g. im:write)Reinstall via OAuth
Ask a question... ⌘I