Slack
Slack API integration for messaging, channels, and workspace management
The Slack integration lets your agents send messages, read channel history, search messages, manage workspace interactions, and route Slack events through Agent Network.
Prerequisites
You need one of the following:
- Slack Bot Token (
xoxb-) — Create a Slack App at api.slack.com/apps, add the required bot scopes (e.g.,channels:read,chat:write,users:read), and install it to your workspace. - OAuth — For user-level access. Supports both bot scopes and user scopes, so the agent can act on behalf of individual users.
Setup
- Open Integrations from the sidebar
- Select Slack from the catalog
- Click Add Integration Config
- Give the config a display name (e.g., "Slack - Company Workspace")
- Choose your authentication method:
- Bot Token — Paste your
xoxb-token - OAuth — Click Connect to start the Slack OAuth flow. You'll be redirected to Slack to authorize access. Per-tool scopes ensure the agent only requests the permissions each tool needs.
- Bot Token — Paste your
- Save the config
For inbound Slack events, generate the config webhook URL in Fruxon and paste it into Event Subscriptions → Request URL in the Slack app dashboard. Slack apps accept one Events API request URL per app, so Fruxon uses one webhook per Slack integration config and dispatches to triggers and participants from there.
Using in Your Agent
- Open your agent in Agent Studio and select an Agent Step
- Under Attached Integration Configurations, click Attach configuration and choose your config
- Attach Slack tools from the tools panel
- Tools are referenced as
slack.send_message,slack.list_channels, etc.
Channels
Slack exposes channel descriptors for Agent Network participants:
| Channel | Description |
|---|---|
channel | Public Slack channel, identified by a C... id. |
group | Private channel, identified by a G... id. |
im | Direct message conversation, identified by a D... id from conversations.open. |
Use Slack ids, not display names like #general. Bind participants to Slack channels under Network → Participants to let agents send messages or receive replies through Slack.
Triggers
| Trigger | Description |
|---|---|
slack.message.received | Fires when the bot sees a message in a channel it can access. |
slack.app.mention | Fires only when the bot is explicitly mentioned. |
Both triggers require a Slack integration config and the Events API webhook. Their payloads include the standard inbound-message fields (payload.text, payload.from, payload.from_name, payload.conversation_name, payload.conversation_address, payload.session_id, payload.event_type) plus Slack-specific fields such as payload.message_attributes.channel_id, payload.message_attributes.ts, and, for thread replies, payload.message_attributes.thread_ts.
Available Tools
| Tool | Description | Action Type |
|---|---|---|
list_channels | List public and private channels in the workspace | ReadOnly |
get_channel_history | Retrieve message history from a Slack channel | ReadOnly |
send_message | Send a message to a Slack channel | Irreversible |
reply_to_thread | Reply to a message thread in Slack | Irreversible |
list_users | List all users in the Slack workspace | ReadOnly |
get_user_info | Get detailed information about a Slack user | ReadOnly |
search_messages | Search for messages across the workspace | ReadOnly |
add_reaction | Add an emoji reaction to a message | Reversible |
upload_file | Upload a text snippet or file content to a channel | Irreversible |