DocsIntegrationsSlack

Slack

Tool set: slackDefault: DisabledRequires: Slack Bot Token

Connect your personal agent to Slack to send messages, read channels you authorize, search conversations, add reactions, and manage channel topics. Slack uses the term "workspace" for setup; HiGantic is not currently positioned as an organization-management product.

Setup

1. Create a Slack app at api.slack.com/apps — click Create an AppFrom scratch.

Slack Your Apps page with the Create an App button
The "Your Apps" page on api.slack.com — click Create an App to begin.

2. In the dialog that appears, choose From scratch, then enter an app name (e.g. "Agent Maker") and pick the workspace where the bot will live. Click Create App.

Slack Create an app dialog with From manifest and From scratch options
Pick From scratch — manifests are optional and not needed here.

3. In the left sidebar, click OAuth & Permissions.

Slack app left sidebar with OAuth & Permissions highlighted
The OAuth & Permissions link in the sidebar.

4. Scroll to Scopes → Bot Token Scopes and click Add an OAuth Scope for each scope below. Ignore User Token Scopes unless you need slack_search_messages.

Slack OAuth Scopes page showing Bot Token Scopes and User Token Scopes sections
Add bot scopes one by one — the list starts empty.
chat:write        — Send messages and DMs
channels:read     — List public channels
channels:history  — Read public channel messages
groups:read       — List private channels
groups:history    — Read private channel messages
reactions:write   — Add emoji reactions
search:read.public   — Search public channel messages
search:read.private  — Search private channels the bot is in
search:read.im       — Search direct messages (optional)
search:read.mpim     — Search group DMs (optional)
search:read.files    — Search files (slack_search_files)
search:read.users    — Search Slack workspace users (slack_search_users)
users:read        — List Slack workspace users (slack_list_users)
users:read.email  — Include user emails (optional)
im:write          — Open DMs for slack_send_dm
files:write       — Upload files via slack_upload_file
pins:write        — Pin / unpin messages
channels:manage   — Create channels, invite users (public)
groups:write      — Create / invite for private channels
channels:join     — slack_join_channel

Note: Slack split the legacy search:read into granular scopes. Pick the ones matching the surfaces you want searchable (public/private channels, DMs, files). If your workspace only exposes search scopes under User Token Scopes, you'll need to install with a user token (xoxp-) for the search tools to work.

5. Scroll up to the OAuth Tokens section and click the green Install to [YourWorkspace] button (Slack labels it with your workspace name, e.g. "Install to Aneaire"). Approve the prompt. After install, the page will show a Bot User OAuth Token starting with xoxb- — copy it.

6. In your agent's Settings, enable Slack and paste the token.

7. Invite the bot to channels it should access: type /invite @YourBotName in each channel.

Tools

ToolDescription
slack_send_messageSend a message to a channel or thread
slack_list_channelsList available channels with IDs and topics
slack_read_messagesRead recent messages from a channel or thread
slack_add_reactionAdd an emoji reaction to a message
slack_set_topicSet a channel's topic
slack_search_messagesSearch messages across channels
slack_search_filesSearch uploaded files in the connected Slack workspace
slack_search_usersSearch Slack workspace users by name (faster than list_users)
slack_list_usersList Slack workspace users (resolve names → user IDs)
slack_send_dmSend a direct message to a user by user ID
slack_upload_fileUpload a text file or snippet to a channel
slack_update_messageEdit a message previously posted by the bot
slack_delete_messageDelete a message previously posted by the bot
slack_schedule_messageSchedule a message for a future Unix timestamp
slack_get_permalinkGet a shareable permalink URL for a message
slack_lookup_user_by_emailLook up a user by email address
slack_pin_messagePin a message in a channel
slack_unpin_messageUnpin a message from a channel
slack_create_channelCreate a new public or private channel
slack_join_channelBot joins a public channel
slack_invite_to_channelInvite users to a channel by ID

Sending Messages

Messages support Slack's mrkdwn formatting:

*bold*  _italic_  ~strikethrough~  `code`
> blockquote
• bullet list (use bullet character)
<https://example.com|Link Text>
:emoji_name:

To reply in a thread, pass the thread_ts parameter (the timestamp of the parent message).

Events

Slack actions emit events to execution history for monitoring. These events are not public automation triggers:

EventWhen
slack.message_sentA message is posted to Slack
slack.topic_setA channel topic is updated
slack.dm_sentA direct message is sent to a user
slack.file_uploadedA file is uploaded to a channel
slack.message_updatedBot edited a message
slack.message_deletedBot deleted a message
slack.message_scheduledA message was scheduled for future delivery
slack.message_pinnedA message was pinned
slack.message_unpinnedA message was unpinned
slack.channel_createdA new channel was created
slack.channel_joinedBot joined a channel
slack.users_invitedUsers were invited to a channel
slack.mention_receivedBot was @mentioned in a channel (Socket Mode bot)
slack.dm_receivedBot received a direct message (Socket Mode bot)

Example

User: "Post a summary of today's completed tasks to #journal"

Agent: Lists channels to find #journal, reads the task board, composes a summary, and posts it.

Conversational Bot (Socket Mode)

In addition to the outbound tools above, you can run the agent as a two-way conversational bot that replies when @mentioned in a channel or sent a DM. This uses Slack Socket Mode — a persistent WebSocket, no public URL required.

One-time Slack app setup

1. In api.slack.com/apps → your app → Socket Mode → toggle Enable Socket Mode on. Generate a token (e.g. "agent-maker") with the connections:write scope. Copy the App-Level Token (starts with xapp-).

2. Event Subscriptions → toggle on → under Subscribe to bot events add app_mention and message.im.

3. App Home → Show Tabs → enable Messages Tab and check "Allow users to send Slash commands and messages from the messages tab". Without this, DMs to the bot are blocked.

4. Add these additional bot scopes under OAuth & Permissions:

app_mentions:read  — receive @mention events
im:history         — read DMs the bot receives
im:read            — list DM channels

5. Reinstall the app to the Slack workspace when Slack prompts.

Configure in Agent Maker

1. Open the Slack credential and paste the new xapp-… token into the App-Level Token (Socket Mode) field.

2. Open the agent's Settings page → enable Slack Bot (Two-Way Chat).

3. Configure Bot Mode Defaults for the shared public prompt/model, then optionally set a Slack-specific platform override and Authorized Slack User IDs (trusted users who get full agent access — everyone else falls back to restricted bot mode).

4. Save. The agent server picks up the change on its next sync (within 60s).

How it works

Inbound messages arrive on the persistent Socket Mode WebSocket and are routed to a Convex conversation that's persistent per (agent, channel). Threaded back-and-forth keeps context across mentions. Each inbound message emits slack.mention_received or slack.dm_received to the event bus so you can wire automations off them. Replies are posted via chat.postMessage; if the inbound was in a thread, the reply is posted in the same thread.

Integration Ideas

Combine with Automations for event-driven Slack notifications (e.g., "when a task is completed → post to #done"). Use with Scheduled Actions for daily standups or weekly reports posted to Slack.