Connect Slack
Connect Slack
Chatku connects to Slack as an app using the Events API (over HTTP). Messages people send to your bot — in a direct message or in a channel the bot is in — become conversations in your inbox, and replies post back to the same DM/channel.
Create a Slack app
At api.slack.com/apps → Create New App → From scratch (a blank app), pick your workspace, then note:
- Bot User OAuth Token (
xoxb-…, under OAuth & Permissions) - Signing Secret (Basic Information)
Under OAuth & Permissions → Bot Token Scopes, add:
chat:write— send repliesim:history— read direct messageschannels:history,groups:history— read public / private channelsusers:read— contact namesfiles:read— download attachments
1. Create the channel in Chatku
- Settings → Channels → Add Channel → Slack.
- Paste the Bot User OAuth Token and Signing Secret, then Save.
- Chatku shows a Request URL — copy it.
2. Enable events (HTTP, not Socket Mode)
In your Slack app:
- Settings → Socket Mode → turn it OFF. With Socket Mode on, Slack delivers events over a WebSocket instead of your Request URL, so nothing reaches Chatku.
- Event Subscriptions → Enable Events → paste the Request URL (Slack verifies it automatically → Verified ✓).
- Under Subscribe to bot events, add:
message.im(direct messages)message.channels,message.groups,message.mpim(channels)
- Save Changes, then Reinstall the app to your workspace when prompted.
3. Let people reach the bot
- Direct messages: App Home → Show Tabs → enable the Messages Tab and check "Allow users to send messages from the messages tab". Then anyone can DM the bot.
- Channels: invite the bot into the channel with
/invite @YourApp. The bot only receives events for channels it's a member of.
4. Test
Send the bot a DM, or post in a channel it was invited to. The message appears in Conversations; replies from Chatku post back into the same DM/channel.
Troubleshooting: if messages don't arrive, the usual cause is Socket Mode still enabled. Also check the Request URL is Verified, the bot events include
message.im/message.channels, and the app was reinstalled after changing scopes/events.