Slack
Connects to the Slack Web API for messaging, channel management, search, user lookup, canvases, and files. An agent can read and post messages, manage channels and DMs, search across the workspace, and work with Slack Canvases.
Add to an agent node's tools array with _node_type: "tool-slack". See Connector Reference — How connectors are used.
Authentication
| Field | Required | Description |
|---|---|---|
token | One of token/access_token | Slack bot token (e.g. xoxb-...), sent as Authorization: Bearer <token>. Typically a stored secret. |
access_token | One of token/access_token | Slack OAuth access token, used if token is not set. Typically resolved via oauth_connection_id. |
{
"name": "slack",
"_node_type": "tool-slack",
"oauth_connection_id": "{{ connection.slack }}"
}
Tools
slack_send_message
Send a message to any Slack channel, group DM, or direct message conversation.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Channel ID or name (e.g. C01234 or #general) |
text | string | Yes | Message text. Supports Slack mrkdwn formatting (*bold* _italic_ ~strike~ code blocks) |
username | string | No | Display name override for the bot (optional) |
icon_emoji | string | No | Emoji to use as the bot icon, e.g. :robot_face: (optional) |
Returns: A confirmation message including the message timestamp (ts) and target channel.
slack_get_history
Read the complete message history of a Slack channel. Returns messages with user IDs, text, timestamps, and thread info.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Channel ID (e.g. C01234ABC) |
limit | number | No | Number of messages to fetch (default 20, max 200) |
oldest | string | No | Only return messages after this Unix timestamp (optional) |
latest | string | No | Only return messages before this Unix timestamp (optional) |
Returns: A newline-separated list of [ts] user: text lines (with reply counts where applicable), or "No messages found.". Appends a note if more messages are available for pagination.
slack_get_thread
Read the complete conversation of a Slack message thread, including the parent message and all replies.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Channel ID containing the thread |
thread_ts | string | Yes | Timestamp of the parent message (the thread root) |
limit | number | No | Max replies to return (default 50) |
Returns: A newline-separated list of the parent message (prefixed 🧵) followed by replies (prefixed ↳), each as [ts] user: text, or "Thread not found or empty.".
slack_reply_thread
Reply to a message thread in a Slack channel.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Channel ID |
thread_ts | string | Yes | Timestamp of the parent message to reply to |
text | string | Yes | Reply text |
Returns: A confirmation message including the reply's timestamp and the thread it was posted in.
slack_add_reaction
Add an emoji reaction to a Slack message on behalf of the authenticated user.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Channel ID containing the message |
timestamp | string | Yes | Message timestamp (ts field) to react to |
emoji | string | Yes | Emoji name without colons (e.g. thumbsup, white_check_mark, tada) |
Returns: A confirmation message naming the emoji and the message timestamp it was added to.
slack_search_messages
Search Slack messages and files by keyword, user, channel, or date. Supports advanced query modifiers like from:@user or in:#channel.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | Yes | Search query. Supports modifiers: from:@user, in:#channel, before:2024-01-01, after:2024-01-01 |
count | number | No | Number of results per page (default 20, max 100) |
sort_dir | string | No | Sort direction: desc (newest first, default) or asc |
Returns: A summary line with the total match count followed by - [#channel] @user (ts): text lines with permalinks, or a "no messages found" message.
slack_search_channels
Search Slack channels by name or description. Returns channel metadata including ID, name, topic, purpose, and member count.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | Yes | Channel name or description to search for (partial match) |
limit | number | No | Max results to return (default 20) |
exclude_archived | boolean | No | Exclude archived channels (default true) |
Returns: A list of matching channels with ID, member count, topic, and purpose, or a "no channels found" message.
slack_search_users
Search Slack workspace members by name, display name, or email. Returns user details and current status.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | Yes | User's name, display name, email, or user ID to search for |
limit | number | No | Max results to return (default 10) |
Returns: If query looks like a user ID (starts with U) or an email, returns a single formatted user profile. Otherwise returns a newline-separated list of - <real name> (<display name>) id: <id> email: <email> lines for matching non-bot, non-deleted members, or a "no users found" message.
slack_search_emoji
List custom emoji available in the Slack workspace. Optionally filter by name.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
filter | string | No | Optional filter string to narrow down emoji by name |
Returns: A count and space-separated list of :emoji_name: strings, or "No custom emoji found.".
slack_list_channels
List Slack channels the bot has access to. Returns ID, name, and member count for each channel.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | number | No | Max channels to return (default 100) |
include_private | boolean | No | Include private channels the bot is a member of (default false) |
Returns: A newline-separated list of - #<name> (id: <id>, members: <count>) lines, or "No channels found.".
slack_channel_info
Get detailed information about a Slack channel: name, topic, purpose, member count, and creation date.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Channel ID (e.g. C01234ABC) |
Returns: A multi-line summary with channel name, ID, visibility (public/private), member count, creation date, topic, and purpose.
slack_create_channel
Create a new Slack channel (public or private) on behalf of the authenticated user.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Channel name (lowercase letters, numbers, hyphens, underscores only) |
is_private | boolean | No | Create as a private channel (default false = public) |
Returns: A confirmation message with the visibility, channel name, and new channel ID.
slack_open_dm
Open a direct message (DM) or group DM conversation with one or more Slack users.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
users | string | Yes | Comma-separated user IDs to open a DM or group DM with (e.g. U01234,U05678) |
Returns: A message with the new conversation ID, to be used with slack_send_message.
slack_list_members
Retrieve the list of user IDs who are members of a Slack channel or conversation.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Channel ID to list members of |
limit | number | No | Max members to return (default 100) |
Returns: A count and comma-separated list of member user IDs, or "No members found.". Notes if more members are available.
slack_get_user
Fetch complete profile information for a Slack user: real name, display name, email, title, status, timezone, and custom profile fields.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
user | string | Yes | User ID (e.g. U01234ABC) or email address |
Returns: A formatted user profile (real name, display name, ID, email, title, status, timezone), or "User not found.".
slack_create_canvas
Create a new Slack Canvas — a rich, formatted document. Content supports Markdown: headers (#), bold (**text**), lists, code blocks, and tables.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Canvas title |
content | string | Yes | Canvas body content in Markdown format |
Returns: A confirmation message with the new canvas ID.
slack_update_canvas
Update an existing Slack Canvas by inserting or replacing content. Supports Markdown formatting.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
canvas_id | string | Yes | Canvas ID to update |
content | string | Yes | New Markdown content to append to the canvas |
operation | string | No | How to apply the content: insert_at_end (default), insert_at_start, or replace. Invalid values fall back to insert_at_end. |
Returns: A confirmation message naming the canvas ID and operation applied.
slack_read_canvas
Export a Slack Canvas as Markdown text. Returns the complete document content.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
canvas_id | string | Yes | Canvas ID to read |
Returns: The canvas content as Markdown (sections joined by blank lines), or "Canvas is empty." / "Canvas has no readable text content.".
slack_read_file
Read metadata and text content of a Slack file. Works for text files, code snippets, and documents.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
file_id | string | Yes | File ID (starts with F, e.g. F01234ABC) |
Returns: File metadata (name, title, MIME type, size, uploader, date, permalink). For text/code/JSON/markdown files, also fetches and appends the file content (truncated to 8000 characters).