Slack Node
Connect to Slack workspaces to send messages, manage channels, upload files, manage reactions, and look up users and user groups. 41 operations across 6 resources.
sendAndWait operation. channel (16 ops), file (3 ops), reaction (3 ops), user (5 ops), and userGroup (7 ops) cover the full Slack API surface. Each operation is documented on its own page with configuration, output schema, expression reference, and real workflow examples.
Authentication
All operations share a token-based connection configured once per node instance. Two token types are supported:
| Token Type | Format | Used For |
|---|---|---|
| Bot Token | xoxb-... | All 41 operations except message/search and user/updateProfile. Obtained from your Slack App's OAuth & Permissions page. Requires appropriate scopes (e.g. chat:write, channels:manage, files:write, reactions:write, users:read). |
| User Token | xoxp-... | message/search (requires search:read) and user/updateProfile (requires users.profile:write). User tokens act on behalf of an individual Slack user and carry broader permissions — store with extra care and rotate regularly. |
Rate Limits
| Tier | Rate | Affected Operations |
|---|---|---|
| Tier 3 (with burst) | 50+ req/min | chat.postMessage, chat.update, chat.delete, chat.postEphemeral, chat.getPermalink |
| Tier 2 | 20+ req/min | conversations.*, files.upload, reactions.*, users.*, users.profile.* |
| Tier 1 | 1+ req/min | usergroups.*, admin.* operations |
| Special restriction | User Token required | search.messages — cannot be called with a Bot Token at any rate tier |
message/send
Send a message to any channel, DM, or thread. Supports plain text, mrkdwn formatting, and Block Kit layouts.
message/sendAndWait
Send a message and suspend the workflow until the recipient replies. Human-In-The-Loop approval and acknowledgement pattern.
message/sendEphemeral
Send a message visible only to a specific user in a channel. Not stored in Slack history and invisible to other members.
message/update
Edit an existing message's text or Block Kit content. Requires the bot to be the original sender.
message/delete
Permanently delete a message. Requires the bot to be the original sender or admin delete permissions.
message/getPermalink
Retrieve a permanent, shareable URL to a specific message for cross-system linking and audit trails.
message/search
Full-text search across the workspace using Slack's search API. Requires a User Token with search:read scope.
| Operation | Description |
|---|---|
| channel/create | Create a new public or private channel with an optional purpose and topic. |
| channel/get | Retrieve full details of a single channel by ID or name. |
| channel/getMany | List channels in the workspace with optional type filters (public, private, DM, MPDM). |
| channel/getHistory | Fetch message history from a channel with optional date range and pagination. |
| channel/getMembers | List all member user IDs in a channel. |
| channel/getReplies | Retrieve all replies in a message thread by parent thread timestamp. |
| channel/invite | Invite one or more users to a channel. |
| channel/join | Have the bot join a public channel. |
| channel/leave | Have the bot leave a channel. |
| channel/kick | Remove a user from a channel (requires admin or channel manager permissions). |
| channel/open | Open or resume a direct message or multi-party DM with a set of users. |
| channel/rename | Rename a channel (requires channel manager or admin permissions). |
| channel/setPurpose | Set or update the purpose (description) of a channel. |
| channel/setTopic | Set or update the topic line shown at the top of a channel. |
| channel/archive | Archive a channel, making it read-only and removing it from active channel lists. |
| channel/unarchive | Restore an archived channel to active status. |
| Operation | Description |
|---|---|
| file/upload | Upload a file to Slack and share it to one or more channels. |
| file/get | Retrieve metadata and download URL for a specific file by ID. |
| file/getMany | List files in the workspace with filters for channel, user, type, and date range. |
| Operation | Description |
|---|---|
| reaction/add | Add an emoji reaction to a message. |
| reaction/get | Get all reactions and their counts on a specific message. |
| reaction/remove | Remove an emoji reaction that the bot previously added to a message. |
| Operation | Description |
|---|---|
| user/get | Retrieve full profile and account details for a user by ID or email address. |
| user/getMany | List all users in the workspace with optional active/deleted filters. |
| user/getProfile | Retrieve a user's extended profile fields including custom fields defined by the workspace. |
| user/getStatus | Get the current status emoji and status text for a user. |
| user/updateProfile | Update profile fields for the authenticated user. Requires a User Token (xoxp-) with users.profile:write. |
| Operation | Description |
|---|---|
| userGroup/create | Create a new user group handle with a name, handle slug, and optional description. |
| userGroup/disable | Disable a user group, removing it from @-mention autocomplete visibility. |
| userGroup/enable | Re-enable a previously disabled user group. |
| userGroup/getMany | List all user groups in the workspace, including disabled ones if requested. |
| userGroup/getUsers | Get the list of user IDs that belong to a user group. |
| userGroup/addUsers | Set the membership of a user group to a specified list of users (replaces entire membership). |
| userGroup/update | Update a user group's name, handle, description, or associated channel list. |