Slack agent tools
Look up the Slack tools, selectors, permissions, inputs, and outputs available to agent steps.
This reference lists the shipped Slack agent-tool catalog. See the Slack overview for authentication and setup.
Selectors
Use a standalone tool selector in an agent step's integrations: block. For the
agent integration contract, see the workflow schema reference.
Tool catalog
The catalog uses the Slack bot scopes required by each tool. Read tools inspect
workspace data. Write tools change messages, reactions, or canvases, and the
workflow step's integrations entry must set allow_write: true or Shipfox
rejects the step at validation.
tools
read_channel
Read messages from a Slack channel in reverse chronological order (newest first). Reading direct message history needs the ID of that conversation, not the ID of the user on the other side.
Sensitivity: read.
Sensitive: No.
Required permissions: read
Selector tokens: read_channel
Input
| Field | Type | Required | Description |
|---|---|---|---|
channel_id | string | Required | Channel, private group, or direct message conversation ID, such as C0ABC12345 or D0ABC12345. A user ID is not accepted here |
oldest | string | Optional | Start of the time range, as a Slack timestamp |
latest | string | Optional | End of the time range, as a Slack timestamp |
limit | integer | Optional | Messages to return, 1 to 100 (default 100) |
cursor | string | Optional | Pagination cursor from a previous request |
read_thread
Read a Slack thread: the parent message and all of its replies. Requires the channel ID and the timestamp of the parent message.
Sensitivity: read.
Sensitive: No.
Required permissions: read
Selector tokens: read_thread
Input
| Field | Type | Required | Description |
|---|---|---|---|
channel_id | string | Required | Channel, private group, or direct message conversation ID, such as C0ABC12345 or D0ABC12345. A user ID is not accepted here |
message_ts | string | Required | Timestamp of the parent message, such as 1234567890.123456 |
oldest | string | Optional | Start of the time range, as a Slack timestamp |
latest | string | Optional | End of the time range, as a Slack timestamp |
limit | integer | Optional | Messages to return, 1 to 1000 (default 100) |
cursor | string | Optional | Pagination cursor from a previous request |
read_channel_info
Retrieve metadata for a single Slack channel by ID: name, topic, purpose, privacy, and archive status. Use this to learn what a channel is for before reading or posting. To read its messages, use read_channel instead.
Sensitivity: read.
Sensitive: No.
Required permissions: read
Selector tokens: read_channel_info
Input
| Field | Type | Required | Description |
|---|---|---|---|
channel_id | string | Required | Channel, private group, or direct message conversation ID, such as C0ABC12345 or D0ABC12345. A user ID is not accepted here |
include_num_members | boolean | Optional | Include the channel member count (default false) |
read_channel_members
List the user IDs of the members of a Slack channel. Pair it with read_user_profile to resolve a member to a name.
Sensitivity: read.
Sensitive: No.
Required permissions: read
Selector tokens: read_channel_members
Input
| Field | Type | Required | Description |
|---|---|---|---|
channel_id | string | Required | Channel, private group, or direct message conversation ID, such as C0ABC12345 or D0ABC12345. A user ID is not accepted here |
limit | integer | Optional | Members to return per page (default 100) |
cursor | string | Optional | Pagination cursor from a previous request |
read_user_profile
Retrieve profile information for a Slack user, including contact details, status, timezone, and role.
Sensitivity: read.
Sensitive: No.
Required permissions: read
Selector tokens: read_user_profile
Input
| Field | Type | Required | Description |
|---|---|---|---|
user_id | string | Required | Slack user ID, such as U0ABC12345 |
include_locale | boolean | Optional | Include the user's locale information (default false) |
search_channels
Search the channels this integration can see, by name, topic, or purpose. Returns channel names, IDs, topics, purposes, and archive status. Names are typically lowercase with hyphens. Space-separated terms all have to match. Only the requested page is searched, so page through with the returned cursor when a channel is missing.
Sensitivity: read.
Sensitive: No.
Required permissions: read
Selector tokens: search_channels
Input
| Field | Type | Required | Description |
|---|---|---|---|
query | string | Required | Search query for finding channels |
channel_types | string | Optional | Comma-separated channel types: public_channel, private_channel. Defaults to public_channel |
include_archived | boolean | Optional | Include archived channels in the results |
limit | integer | Optional | Channels to scan per page (default 100) |
cursor | string | Optional | Pagination cursor from a previous request |
send_message
Send a message to a Slack channel or user. To send a direct message, pass the user ID as the channel ID. Supports standard Markdown: bold, italic, strikethrough, links, lists, blockquotes, inline code, and code blocks. Returns the posted message timestamp.
Sensitivity: write.
Sensitive: No.
Required permissions: write
Selector tokens: send_message
Input
| Field | Type | Required | Description |
|---|---|---|---|
channel_id | string | Required | Channel, private group, or direct message conversation ID. Pass a user ID to open a direct message with that user |
message | string | Required | Message content, written as standard Markdown |
thread_ts | string | Optional | Timestamp of the parent message to reply in its thread |
reply_broadcast | boolean | Optional | Also send the thread reply to the channel |
schedule_message
Schedule a message for future delivery to a Slack channel. Does not send immediately. post_at has to be at least 2 minutes in the future and at most 120 days out. Once scheduled, the message cannot be edited.
Sensitivity: write.
Sensitive: No.
Required permissions: write
Selector tokens: schedule_message
Input
| Field | Type | Required | Description |
|---|---|---|---|
channel_id | string | Required | Channel, private group, or direct message conversation ID. Pass a user ID to open a direct message with that user |
message | string | Required | Message content, written as standard Markdown |
post_at | integer | Required | Unix timestamp at which to send the message |
thread_ts | string | Optional | Timestamp of the parent message to reply in its thread |
reply_broadcast | boolean | Optional | Also send the thread reply to the channel |
update_message
Update an already posted Slack message, replacing its content. Supports the same standard Markdown as send_message.
Sensitivity: write.
Sensitive: No.
Required permissions: write
Selector tokens: update_message
Input
| Field | Type | Required | Description |
|---|---|---|---|
channel_id | string | Required | Channel, private group, or direct message conversation ID, such as C0ABC12345 or D0ABC12345. A user ID is not accepted here |
message_ts | string | Required | Timestamp of the message to update |
message | string | Required | Message content, written as standard Markdown |
add_reaction
Add an emoji reaction to a Slack message.
Sensitivity: write.
Sensitive: No.
Required permissions: write
Selector tokens: add_reaction
Input
| Field | Type | Required | Description |
|---|---|---|---|
channel_id | string | Required | Channel, private group, or direct message conversation ID, such as C0ABC12345 or D0ABC12345. A user ID is not accepted here |
message_ts | string | Required | Timestamp of the message to react to |
emoji | string | Required | Emoji name without the surrounding colons, such as white_check_mark |
create_canvas
Create a standalone Slack canvas from Markdown and return its ID. Not available on free teams.
Sensitivity: write.
Sensitive: No.
Required permissions: write
Selector tokens: create_canvas
Input
| Field | Type | Required | Description |
|---|---|---|---|
title | string | Required | Concise, descriptive canvas name. Do not repeat it in the content |
content | string | Required | Canvas body, written as standard Markdown |