Slack
2 min read
Slack connects a bot to the channels and direct messages where it is present. It can reply in threads, exchange files, and present approvals; Slack validates every event before it reaches Kujira through the events URL and signing secret.
Prepare the application
Create a Slack application
Set the minimum permissions
chat:write to reply; and files:read only when it must process files. Install the application
Create the channel in Kujira
Do not reuse another bot's token
Each application and workspace must have its own credentials. Store the token and Signing Secret only in Kujira or an authorized secret manager.
Configure events and interactions
In Event Subscriptions, enable events and paste Kujira's inbound URL as the Request URL. Slack verifies it before saving the configuration. Subscribe only to the events needed for the conversation types the agent will handle.
For approvals and other buttons, enable Interactivity & Shortcuts and use the same URL with the /interactive suffix. After changing scopes or events, reinstall the application in the workspace when Slack requests it.
Access depends on the channel
Slack delivers only activity the bot can see. Inviting it to a workspace does not automatically add it to every channel; add it explicitly to each public or private channel where it must work, and authorize those identifiers in Kujira too.
Public channels
Private channels and direct messages
Check the integration
- Check that Slack accepted the Request URL.
- Invite the bot to an authorized channel and mention it.
- Verify that it can reply in the same thread or channel.
- If the message does not arrive, review subscribed events, the matching history scope, bot membership, and the allow list.
- If it arrives but cannot reply, review
chat:writeand channel permissions.
An empty allow list blocks incoming messages. External conversations are managed from Agent Desk.