Skip to main content

Slack

💬

Slack

Send messages and manage channels in 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 needWhere to set it upWhy it matters
Slack workspace connectionConnectionsCreate the Slack connection once, then reuse it in every Slack step.
Common channel IDs, user IDs, or message templatesGlobal VariablesStore frequently used Slack values once and reuse them safely.

Actions

ActionDescription
slack:sendMessagePost a message to a channel
slack:updateMessageEdit an existing message
slack:deleteMessageRemove a message from a channel
slack:createChannelCreate a new public or private channel
slack:listChannelsList channels in the workspace
slack:archiveChannelArchive a channel
slack:inviteToChannelInvite a user to a channel
slack:setChannelTopicSet the topic of a channel
slack:listUsersList all users in the workspace
slack:getUserInfoGet detailed info about a specific user
slack:sendDirectMessageSend a direct message to a user
slack:sendThreadReplyReply to a message in a thread
slack:listMessagesList recent messages in a channel
slack:getChannelHistoryRetrieve message history for a channel
slack:pinMessagePin a message to a channel
slack:unpinMessageUnpin a message from a channel
slack:setChannelPurposeSet the purpose description of a channel
slack:renameChannelRename a channel
slack:leaveChannelMake the bot leave a channel
slack:uploadFileUpload a file to a channel
slack:addReactionAdd 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

ParameterTypeRequiredDescription
channelstringYesChannel name (e.g., #general) or channel ID
messagestringYesMessage text. Supports Slack mrkdwn formatting
blocksarrayNoBlock Kit block array for rich layouts
unfurlLinksbooleanNoWhether to unfurl URLs. Defaults to true

slack:updateMessage

Edits an existing message. Requires the ts (timestamp) of the original message.

Parameters

ParameterTypeRequiredDescription
channelstringYesChannel ID or name
tsstringYesTimestamp of the message to update
messagestringYesNew message text

slack:deleteMessage

Deletes a message from a channel.

Parameters

ParameterTypeRequiredDescription
channelstringYesChannel ID or name
tsstringYesTimestamp of the message to delete

slack:createChannel

Creates a new channel in the workspace.

Parameters

ParameterTypeRequiredDescription
namestringYesChannel name (lowercase, no spaces, max 80 chars)
isPrivatebooleanNoSet to true for a private channel. Defaults to false
descriptionstringNoChannel description

slack:listChannels

Lists channels in the workspace with optional filtering.

Parameters

ParameterTypeRequiredDescription
typesstringNoComma-separated: public_channel, private_channel. Defaults to public_channel
limitintegerNoMax channels to return. Defaults to 100
excludeArchivedbooleanNoExclude archived channels. Defaults to true

slack:archiveChannel

Archives a channel so it becomes read-only.

Parameters

ParameterTypeRequiredDescription
channelstringYesChannel ID or name to archive

slack:inviteToChannel

Invites a user to a channel.

Parameters

ParameterTypeRequiredDescription
channelstringYesChannel ID or name
userIdstringYesSlack user ID to invite

slack:setChannelTopic

Sets the topic line displayed at the top of a channel.

Parameters

ParameterTypeRequiredDescription
channelstringYesChannel ID or name
topicstringYesNew topic text (max 250 chars)

slack:listUsers

Returns a list of all users in the workspace.

Parameters

ParameterTypeRequiredDescription
limitintegerNoMax users to return. Defaults to 100
includeLocalebooleanNoInclude locale info in response

slack:getUserInfo

Retrieves detailed profile information for a single user.

Parameters

ParameterTypeRequiredDescription
userIdstringYesSlack user ID

slack:sendDirectMessage

Sends a direct message (DM) to a user.

Parameters

ParameterTypeRequiredDescription
userIdstringYesSlack user ID of the recipient
messagestringYesMessage text

slack:sendThreadReply

Replies to an existing message, creating or continuing a thread.

Parameters

ParameterTypeRequiredDescription
channelstringYesChannel ID or name
threadTsstringYesTimestamp of the parent message
messagestringYesReply text

slack:listMessages

Lists recent messages in a channel.

Parameters

ParameterTypeRequiredDescription
channelstringYesChannel ID or name
limitintegerNoMax messages to return. Defaults to 20

slack:getChannelHistory

Retrieves message history for a channel within a time range.

Parameters

ParameterTypeRequiredDescription
channelstringYesChannel ID or name
oldeststringNoStart of time range (Unix timestamp)
lateststringNoEnd of time range (Unix timestamp)
limitintegerNoMax messages. Defaults to 100

slack:pinMessage

Pins a message to a channel.

Parameters

ParameterTypeRequiredDescription
channelstringYesChannel ID or name
tsstringYesTimestamp of the message to pin

slack:unpinMessage

Removes a pin from a message.

Parameters

ParameterTypeRequiredDescription
channelstringYesChannel ID or name
tsstringYesTimestamp of the message to unpin

slack:setChannelPurpose

Sets the purpose description for a channel (shown in channel details).

Parameters

ParameterTypeRequiredDescription
channelstringYesChannel ID or name
purposestringYesPurpose text (max 250 chars)

slack:renameChannel

Renames a channel.

Parameters

ParameterTypeRequiredDescription
channelstringYesChannel ID or current name
namestringYesNew channel name

slack:leaveChannel

Makes the bot leave a channel.

Parameters

ParameterTypeRequiredDescription
channelstringYesChannel ID or name

slack:uploadFile

Uploads a file to a channel.

Parameters

ParameterTypeRequiredDescription
channelstringYesChannel ID or name
fileNamestringYesName for the uploaded file
contentstringYesBase64-encoded file content
titlestringNoFile title displayed in Slack
initialCommentstringNoMessage posted alongside the file

slack:addReaction

Adds an emoji reaction to a message.

Parameters

ParameterTypeRequiredDescription
channelstringYesChannel ID or name
tsstringYesTimestamp of the message
emojistringYesEmoji 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:

FormatSyntaxExample
Bold*text*bold text
Italic_text_italic text
Strikethrough~text~strikethrough
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

SymptomLikely CauseFix
Message not postedBot is not a member of the channel, or wrong channel name/IDInvite the bot to the channel. Use channel ID instead of name for reliability
Permission deniedOAuth token missing required scopesCheck that the bot token has the scopes listed in the Connection section below
Channel not foundUsing channel name for a private channelUse the channel ID instead of the channel name for private channels
File upload failedFile exceeds size limitSlack file size limits vary by plan. Check your workspace plan limits
Thread reply not appearingIncorrect threadTs valueVerify that threadTs matches the ts of the parent message exactly
Bot cannot see private channelsBot has not been invitedInvite 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 messages
  • channels:read, groups:read -- List channels
  • channels:manage, groups:write -- Create, archive, rename channels; set topic/purpose
  • channels:history, groups:history -- Read message history
  • users:read -- List users and get user info
  • files:write -- Upload files
  • reactions:write -- Add reactions
  • pins: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.