Slack Adapter Starter Guide
Last updated 2026-02-12
Reference implementation:
rooaak-slack-adapter-starter
What Rooaak developers deploy
Deploy the Slack starter service, then wire:
- Slack events -> starter
/webhooks/slack/events - Rooaak
message.respondedwebhook -> starter/webhooks/rooaak
Required env
ROOAAK_API_KEYROOAAK_WEBHOOK_SECRETROOAAK_AGENT_IDSLACK_SIGNING_SECRETSLACK_BOT_TOKEN
Slack app configuration
- Slack app -> Event Subscriptions -> enable events.
- Request URL:
https://<your-host>/webhooks/slack/events - Subscribe bot events:
app_mention(minimum), plus channel message events if needed. - OAuth scopes:
app_mentions:read,chat:write - Reinstall app after scope/event changes.
- Invite bot user to target channel(s).
Rooaak webhook registration
curl -X POST https://www.rooaak.com/api/v1/webhooks \
-H "Authorization: Bearer $ROOAAK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://<your-host>/webhooks/rooaak",
"events": ["message.responded"]
}'Persist returned secret as ROOAAK_WEBHOOK_SECRET.
Session mapping
sessionId:slack:<channel_id>:<thread_ts_or_ts>metadata.channel.type:slack- include provider IDs in
metadata.channel.*
Smoke test
- In Slack channel with bot invited, send:
@<bot-name> reply with exactly slack-smoke-ok
- Verify bot posts response in channel/thread.
Failure checks
401 invalid slack signature:- verify
SLACK_SIGNING_SECRETmatches Slack app secret.
- verify
- Event received but no reply:
- verify bot has
chat:write, app reinstalled, and channel membership.
- verify bot has