Slack integration lets your Narakim bots receive events from Slack workspaces and take actions like sending messages, replying in threads, and responding to slash commands. Once connected, Slack extensions are available in your bot's Node Palette.
Prerequisites
Before connecting Slack, you need to create a Slack App:
- Go to api.slack.com/apps and click Create New App → From scratch.
- Name your app and select your workspace.
- Go to OAuth & Permissions → add the following Bot Token Scopes:
chat:write— Send messagescommands— Slash commandsreactions:write— Add reactionsim:write— Send DMs
- Go to Event Subscriptions → enable events → set your Request URL to your Narakim webhook endpoint (found in Bot Configurations → Connect Platform → Slack).
- Subscribe to bot events:
message.channels,app_mention,message.im. - Go to Slash Commands to register any commands your bot handles.
- Go to Install App → install it to your workspace → copy the Bot User OAuth Token.
- Copy your app's Signing Secret from Basic Information.
Connecting Slack
- Go to Bot Dossier → Configurations → Connect Platform.
- Select Slack from the platform list.
- Enter your Bot Token (
xoxb-...) and Signing Secret. - Click Connect.
Once connected, all Slack extensions appear in your bot's Node Palette.
Integration Level: Slack connections use Bot Level — the automation operates as your Slack App's bot identity. Account Level integration (operating as your personal Slack account) is coming soon.
Trigger Extensions
| Studio name | Extension key | Fires when | Key outputs |
|---|---|---|---|
| Message Received | slack_message | Message in channel or DM | channelId, userId, text, ts, threadTs, teamId |
| App Mention | slack_app_mention | Bot @mentioned | channelId, userId, text, ts |
| Slash Command | slack_slash_command | Slash command invoked | command, text, user_id, channel_id, response_url |
| Reaction Added | slack_reaction_added | Reaction added to a message | emoji, userId, channelId, message_ts |
| Reaction Removed | slack_reaction_removed | Reaction removed | same |
| Member Joined | slack_member_joined | User joined workspace | userId, teamId |
| Member Left | slack_member_left | User left | userId, teamId |
| Block Action | slack_block_action | Button or interactive component | action_id, value, user, channel |
| View Submission | slack_view_submission | Modal form submitted | callback_id, values, user |
| Shortcut | slack_shortcut | Global or message shortcut | callback_id, user, channel |
Optional filters on Message Received (slack_message): contains, regex in node config.
Action Extensions
| Studio name | Extension key | Description |
|---|---|---|
| Send Message | slack_send_message | Post to a channel (channelId + text) |
| Send Direct Message | slack_send_dm | DM a user (userId + text) — not the same as channel id |
| Send Block Kit Message | slack_send_blocks | Block Kit JSON to a channel |
| Reply in Thread | slack_reply_in_thread | Reply using thread_ts |
| Update Message | slack_update_message | Edit by channelId + ts |
| Delete Message | slack_delete_message | Delete by channelId + ts |
| Ephemeral Message | slack_ephemeral_message | One-user-visible message in a channel |
| Respond to Command | slack_respond_to_command | Reply via slash command response_url |
| Add Reaction | slack_add_reaction | Emoji on a message |
| Remove Reaction | slack_remove_reaction | Remove emoji |
| Open Modal | slack_open_modal | Open Block Kit modal |
| Update Modal | slack_update_modal | Update open modal |
| Get Channel Info | slack_get_channel_info | Lookup channel metadata |
| Get User Info | slack_get_user_info | Lookup user profile |
| Get Channel Members | slack_get_channel_members | List members |
| Set Channel Topic | slack_set_channel_topic | Set topic string |
| Upload File | slack_upload_file | Upload file to channel(s) |
Full catalog for AI agents: platform-extensions-reference.md (Slack section).
Required Secrets
| Secret Key | Description |
|---|---|
SLACK_BOT_TOKEN | Your Slack App's Bot User OAuth Token (xoxb-...) |
SLACK_SIGNING_SECRET | Your Slack App's Signing Secret (used to verify request authenticity) |
Configure these in Bot Dossier → Configurations → Extension Secrets.
Common Patterns
Slash Command → AI → Reply
[Slash Command] → [OpenRouter AI] → [Send Message]
Map text from the slash command to the AI's message. Map the AI's response to the Send Message's text. Use channel_id from the trigger to target the right channel.
App Mention → Lookup → Reply in Thread
[App Mention] → [HTTP Request] → [Reply in Thread]
Use ts and channel from the App Mention to reply in the same thread.
Message → If Condition → React or Ignore
[Message] → [If Condition] → [Add Reaction]
→ [Log]
Check the message text for keywords in the If Condition. React with an emoji if the condition is true.
