Slack
The Slack node provides comprehensive integration with Slack workspaces. You can send and manage messages, create and administer channels, interact with users, upload files, and manage reactions. All actions use the Slack Web API through an OAuth connection.
Before You Use This Node
| What you may need | Where to set it up | Why it matters |
|---|---|---|
| Slack workspace connection | Connections | Create the Slack connection once, then reuse it in every Slack step. |
| Common channel IDs, user IDs, or message templates | Global Variables | Store frequently used Slack values once and reuse them safely. |
Actions
| Action | Description |
|---|---|
slack:sendMessage | Post a message to a channel |
slack:updateMessage | Edit an existing message |
slack:deleteMessage | Remove a message from a channel |
slack:createChannel | Create a new public or private channel |
slack:listChannels | List channels in the workspace |
slack:archiveChannel | Archive a channel |
slack:inviteToChannel | Invite a user to a channel |
slack:setChannelTopic | Set the topic of a channel |
slack:listUsers | List all users in the workspace |
slack:getUserInfo | Get detailed info about a specific user |
slack:sendDirectMessage | Send a direct message to a user |
slack:sendThreadReply | Reply to a message in a thread |
slack:listMessages | List recent messages in a channel |
slack:getChannelHistory | Retrieve message history for a channel |
slack:pinMessage | Pin a message to a channel |
slack:unpinMessage | Unpin a message from a channel |
slack:setChannelPurpose | Set the purpose description of a channel |
slack:renameChannel | Rename a channel |
slack:leaveChannel | Make the bot leave a channel |
slack:uploadFile | Upload a file to a channel |
slack:addReaction | Add an emoji reaction to a message |
slack:sendMessage
Posts a new message to a Slack channel. Supports plain text, Markdown (mrkdwn), and Block Kit layouts.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Channel name (e.g., #general) or channel ID |
message | string | Yes | Message text. Supports Slack mrkdwn formatting |
blocks | array | No | Block Kit block array for rich layouts |
unfurlLinks | boolean | No | Whether to unfurl URLs. Defaults to true |
slack:updateMessage
Edits an existing message. Requires the ts (timestamp) of the original message.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Channel ID or name |
ts | string | Yes | Timestamp of the message to update |
message | string | Yes | New message text |
slack:deleteMessage
Deletes a message from a channel.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Channel ID or name |
ts | string | Yes | Timestamp of the message to delete |
slack:createChannel
Creates a new channel in the workspace.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Channel name (lowercase, no spaces, max 80 chars) |
isPrivate | boolean | No | Set to true for a private channel. Defaults to false |
description | string | No | Channel description |
slack:listChannels
Lists channels in the workspace with optional filtering.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
types | string | No | Comma-separated: public_channel, private_channel. Defaults to public_channel |
limit | integer | No | Max channels to return. Defaults to 100 |
excludeArchived | boolean | No | Exclude archived channels. Defaults to true |
slack:archiveChannel
Archives a channel so it becomes read-only.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Channel ID or name to archive |
slack:inviteToChannel
Invites a user to a channel.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Channel ID or name |
userId | string | Yes | Slack user ID to invite |
slack:setChannelTopic
Sets the topic line displayed at the top of a channel.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Channel ID or name |
topic | string | Yes | New topic text (max 250 chars) |
slack:listUsers
Returns a list of all users in the workspace.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Max users to return. Defaults to 100 |
includeLocale | boolean | No | Include locale info in response |
slack:getUserInfo
Retrieves detailed profile information for a single user.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | Slack user ID |
slack:sendDirectMessage
Sends a direct message (DM) to a user.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | Slack user ID of the recipient |
message | string | Yes | Message text |
slack:sendThreadReply
Replies to an existing message, creating or continuing a thread.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Channel ID or name |
threadTs | string | Yes | Timestamp of the parent message |
message | string | Yes | Reply text |
slack:listMessages
Lists recent messages in a channel.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Channel ID or name |
limit | integer | No | Max messages to return. Defaults to 20 |
slack:getChannelHistory
Retrieves message history for a channel within a time range.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Channel ID or name |
oldest | string | No | Start of time range (Unix timestamp) |
latest | string | No | End of time range (Unix timestamp) |
limit | integer | No | Max messages. Defaults to 100 |
slack:pinMessage
Pins a message to a channel.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Channel ID or name |
ts | string | Yes | Timestamp of the message to pin |
slack:unpinMessage
Removes a pin from a message.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Channel ID or name |
ts | string | Yes | Timestamp of the message to unpin |
slack:setChannelPurpose
Sets the purpose description for a channel (shown in channel details).
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Channel ID or name |
purpose | string | Yes | Purpose text (max 250 chars) |
slack:renameChannel
Renames a channel.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Channel ID or current name |
name | string | Yes | New channel name |
slack:leaveChannel
Makes the bot leave a channel.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Channel ID or name |
slack:uploadFile
Uploads a file to a channel.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Channel ID or name |
fileName | string | Yes | Name for the uploaded file |
content | string | Yes | Base64-encoded file content |
title | string | No | File title displayed in Slack |
initialComment | string | No | Message posted alongside the file |
slack:addReaction
Adds an emoji reaction to a message.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Channel ID or name |
ts | string | Yes | Timestamp of the message |
emoji | string | Yes | Emoji name without colons (e.g., thumbsup) |
Rate Limits
Slack API enforces rate limits on all methods. Automation Hub handles rate limiting automatically with retry, but you should be aware of the limits when designing workflows:
- Tier 1 (posting messages, uploading files): approximately 1 request per second.
- Tier 2 (updating messages, setting topics): approximately 20 requests per minute.
- Tier 3 (reading channels, listing users): approximately 50 requests per minute.
When a rate limit is hit, Slack returns HTTP 429 with a Retry-After header. Automation Hub retries automatically after the specified delay.
For bulk operations (e.g., sending notifications to many channels), add delays between steps or batch your operations to stay within limits.
Message Formatting
Slack uses mrkdwn (not standard Markdown) for text formatting:
| Format | Syntax | Example |
|---|---|---|
| Bold | *text* | bold text |
| Italic | _text_ | italic text |
| Strikethrough | ~text~ | |
| Inline code | `code` | code |
| Code block | ```code``` | Multi-line code |
| Link | <https://example.com|Click here> | Hyperlink with display text |
| User mention | <@U12345> | Mentions a specific user |
| Channel broadcast | <!channel> | Notifies everyone in the channel |
| Here broadcast | <!here> | Notifies active members only |
For rich layouts with buttons, sections, and dividers, use the blocks parameter with Block Kit JSON. Always include a message as a plain text fallback even when using blocks, since some contexts (notifications, accessibility tools) only display the text fallback.
Common Problems
| Symptom | Likely Cause | Fix |
|---|---|---|
| Message not posted | Bot is not a member of the channel, or wrong channel name/ID | Invite the bot to the channel. Use channel ID instead of name for reliability |
| Permission denied | OAuth token missing required scopes | Check that the bot token has the scopes listed in the Connection section below |
| Channel not found | Using channel name for a private channel | Use the channel ID instead of the channel name for private channels |
| File upload failed | File exceeds size limit | Slack file size limits vary by plan. Check your workspace plan limits |
| Thread reply not appearing | Incorrect threadTs value | Verify that threadTs matches the ts of the parent message exactly |
| Bot cannot see private channels | Bot has not been invited | Invite the bot to the private channel before attempting any action on it |
Connection
Requires a Slack connection configured with an OAuth Bot Token. The token must have the following scopes depending on which actions you use:
chat:write-- Send, update, and delete messageschannels:read,groups:read-- List channelschannels:manage,groups:write-- Create, archive, rename channels; set topic/purposechannels:history,groups:history-- Read message historyusers:read-- List users and get user infofiles:write-- Upload filesreactions:write-- Add reactionspins:write-- Pin and unpin messages
Configure the connection in the Global Configurator under Connections > Slack.
Output
All Slack actions return a response with a status field and action-specific data:
For list operations, the data field contains an array of results along with pagination metadata when applicable.