Slack

Send, update, delete messages, manage views and modals, add or remove reactions, manage canvases, get channel info and user presence in Slack

Slack is a business communication platform that offers teams a unified place for messaging, tools, and files.

With the Slack integration in SteelEngine, you can:

  • Send messages: Send formatted messages to any Slack channel or user, supporting Slack's mrkdwn syntax for rich formatting
  • Send ephemeral messages: Send temporary messages visible only to a specific user in a channel
  • Update messages: Edit previously sent bot messages to correct information or provide status updates
  • Delete messages: Remove bot messages when they're no longer needed or contain errors
  • Add reactions: Express sentiment or acknowledgment by adding emoji reactions to any message
  • Create canvases: Create and share Slack canvases (collaborative documents) directly in channels
  • Read messages: Retrieve recent messages from channels or DMs, with filtering by time range
  • Manage channels and users: List channels, members, and users in your Slack workspace
  • Download files: Retrieve files shared in Slack channels for processing or archival

In SteelEngine, the Slack integration enables your agents to programmatically interact with Slack as part of their workflows. This allows for automation scenarios such as sending notifications with dynamic updates, managing conversational flows with editable status messages, acknowledging important messages with reactions, and maintaining clean channels by removing outdated bot messages. The integration can also be used in trigger mode to start a workflow when a message is sent to a channel.

For custom Slack apps, Install Slack app creates the bot connection, which can be shared with members or groups. Connect my Slack account creates a personal connection that only you can use. Select the app bot to post as the app, or your personal credential to post as yourself; failed bot actions never switch identities.

The bot must be in private channels. For public channels, chat:write.public lets it post without joining; otherwise invite it first. Event subscriptions still follow the app's manifest and configured channel allowlist.

Open a Slack connection in Settings → Integrations to browse Bot channels or Your Slack channels. The list includes visible public channels before joining, with separate messaging and event-access guidance. Use All visible, Ready, or Needs action, search loaded channels, and Load more channels to browse the next page. Slack only reveals private channels visible to the selected identity.

Join as bot and Join as me change membership only. After joining, turn on Enable for workflow events separately. Bot and personal event lists are independent; joining with your account does not add the bot or share your private channels. If the bot is missing from a private channel, invite it in Slack, or choose Find my private channels to invite the bot and invite it using your own connected account when Slack permissions allow. Channel managers can also track a private channel by ID; events remain pending until access is confirmed.

Public discovery needs channels:read. Joining requires bot channels:join or user channels:write. Private discovery requires groups:read; inviting the bot through your personal account requires membership and groups:write.invites (or the broader groups:write). Add permissions to the app configuration and reconnect to authorize them. Archived and unsupported shared channels explain why they cannot be used. Actions always keep the selected bot or personal identity.

Bot installations appear under Workspace integrations with a Bot badge; personal Slack connections appear under Connected accounts. Sharing a bot requires granting credential access to the intended members or groups.

Managed Slack triggers filter the app's existing event stream. Configure the single Events URL and subscriptions in app settings, then choose the event source, events to match, and optional channel/message/file filters on each trigger. These filters do not change the Slack manifest. Bot events require a bot connection; user events use your personal connection. Existing manual triggers keep their URL setup.

AI-Generated Content

SteelEngine workflows may use AI models to generate messages and responses sent to Slack. AI-generated content may be inaccurate or contain errors. Always review automated outputs, especially for critical communications.

Need Help?

If you encounter issues with the Slack integration, contact us at support@steelengine.com

Usage Instructions

Integrate Slack into the workflow. Can send, update, and delete messages, send ephemeral messages visible only to a specific user, open/update/push modal views, publish Home tab views, create canvases, read messages, and add or remove reactions. Requires Bot Token instead of OAuth in advanced mode. Use the Slack trigger block to start a workflow from Slack events.

Tools

slack_message

Send messages to Slack channels or direct messages. Supports Slack mrkdwn formatting.

Input

ParameterTypeRequiredDescription
authMethodstringNoAuthentication method: oauth or bot_token
destinationTypestringNoDestination type: channel or dm
botTokenstringNoBot token for Custom Bot
channelstringNoSlack channel ID (e.g., C1234567890)
dmUserIdstringNoSlack user ID for direct messages (e.g., U1234567890)
textstringYesMessage text to send (supports Slack mrkdwn formatting)
threadTsstringNoThread timestamp to reply to (creates thread reply)
blocksjsonNoBlock Kit layout blocks as a JSON array. When provided, text becomes the fallback notification text.
filesfile[]NoFiles to attach to the message

Output

ParameterTypeDescription
messageobjectComplete message object with all properties returned by Slack
↳ typestringMessage type (usually "message")
↳ tsstringMessage timestamp (unique identifier)
↳ textstringMessage text content
↳ userstringUser ID who sent the message
↳ bot_idstringBot ID if sent by a bot
↳ usernamestringDisplay username
↳ channelstringChannel ID
↳ teamstringTeam/workspace ID
↳ thread_tsstringParent message timestamp (for threaded replies)
↳ parent_user_idstringUser ID of thread parent message author
↳ reply_countnumberTotal number of replies in thread
↳ reply_users_countnumberNumber of unique users who replied
↳ latest_replystringTimestamp of most recent reply
↳ subscribedbooleanWhether user is subscribed to thread
↳ last_readstringTimestamp of last read message
↳ unread_countnumberNumber of unread messages in thread
↳ subtypestringMessage subtype (bot_message, file_share, etc.)
↳ is_starredbooleanWhether message is starred by user
↳ pinned_toarrayChannel IDs where message is pinned
↳ permalinkstringPermanent URL to the message
↳ reactionsarrayReactions on this message
↳ namestringEmoji name (without colons)
↳ countnumberNumber of times this reaction was added
↳ usersarrayArray of user IDs who reacted
↳ filesarrayFiles attached to the message
↳ idstringUnique file identifier
↳ namestringFile name
↳ mimetypestringMIME type of the file
↳ sizenumberFile size in bytes
↳ url_privatestringPrivate download URL (requires auth)
↳ permalinkstringPermanent link to the file
↳ modestringFile mode (hosted, external, etc.)
↳ attachmentsarrayLegacy attachments on the message
↳ idnumberAttachment ID
↳ fallbackstringPlain text summary
↳ textstringMain attachment text
↳ pretextstringText shown before attachment
↳ colorstringColor bar hex code or preset
↳ author_namestringAuthor display name
↳ author_linkstringAuthor link URL
↳ author_iconstringAuthor icon URL
↳ titlestringAttachment title
↳ title_linkstringTitle link URL
↳ image_urlstringImage URL
↳ thumb_urlstringThumbnail URL
↳ footerstringFooter text
↳ footer_iconstringFooter icon URL
↳ tsstringTimestamp shown in footer
↳ blocksarrayBlock Kit blocks in the message
↳ typestringBlock type (section, divider, image, actions, etc.)
↳ block_idstringUnique block identifier
↳ editedobjectEdit information if message was edited
↳ userstringUser ID who edited the message
↳ tsstringTimestamp of the edit
tsstringMessage timestamp
channelstringChannel ID where message was sent
fileCountnumberNumber of files uploaded (when files are attached)
filesfile[]Files attached to the message

slack_ephemeral_message

Send an ephemeral message visible only to a specific user in a channel. Optionally reply in a thread. The message does not persist across sessions.

Input

ParameterTypeRequiredDescription
authMethodstringNoAuthentication method: oauth or bot_token
botTokenstringNoBot token for Custom Bot
channelstringYesSlack channel ID (e.g., C1234567890)
userstringYesUser ID who will see the ephemeral message (e.g., U1234567890). Must be a member of the channel.
textstringYesMessage text to send (supports Slack mrkdwn formatting)
threadTsstringNoThread timestamp to reply in. When provided, the ephemeral message appears as a thread reply.
blocksjsonNoBlock Kit layout blocks as a JSON array. When provided, text becomes the fallback notification text.

Output

ParameterTypeDescription
messageTsstringTimestamp of the ephemeral message (cannot be used with chat.update)
channelstringChannel ID where the ephemeral message was sent

slack_canvas

Create and share Slack canvases in channels. Canvases are collaborative documents within Slack.

Input

ParameterTypeRequiredDescription
authMethodstringNoAuthentication method: oauth or bot_token
botTokenstringNoBot token for Custom Bot
channelstringYesSlack channel ID (e.g., C1234567890)
titlestringYesTitle of the canvas
contentstringYesCanvas content in markdown format
document_contentobjectNoStructured canvas document content

Output

ParameterTypeDescription
canvas_idstringUnique canvas identifier
channelstringChannel where canvas was created
titlestringCanvas title

slack_message_reader

Read the latest messages from Slack channels. Retrieve conversation history with filtering options.

Input

ParameterTypeRequiredDescription
authMethodstringNoAuthentication method: oauth or bot_token
destinationTypestringNoDestination type: channel or dm
botTokenstringNoBot token for Custom Bot
channelstringNoSlack channel ID to read messages from (e.g., C1234567890)
dmUserIdstringNoSlack user ID for DM conversation (e.g., U1234567890)
limitnumberNoNumber of messages to retrieve (default: 10, max: 999)
oldeststringNoStart of time range (timestamp)
lateststringNoEnd of time range (timestamp)
cursorstringNoPagination cursor from a previous call's next_cursor
inclusivebooleanNoInclude messages exactly at oldest or latest

Output

ParameterTypeDescription
messagesarrayArray of message objects from the channel
↳ typestringMessage type (usually "message")
↳ tsstringMessage timestamp (unique identifier)
↳ textstringMessage text content
↳ userstringUser ID who sent the message
↳ bot_idstringBot ID if sent by a bot
↳ usernamestringDisplay username
↳ channelstringChannel ID
↳ teamstringTeam/workspace ID
↳ thread_tsstringParent message timestamp (for threaded replies)
↳ parent_user_idstringUser ID of thread parent message author
↳ reply_countnumberTotal number of replies in thread
↳ reply_users_countnumberNumber of unique users who replied
↳ latest_replystringTimestamp of most recent reply
↳ subscribedbooleanWhether user is subscribed to thread
↳ last_readstringTimestamp of last read message
↳ unread_countnumberNumber of unread messages in thread
↳ subtypestringMessage subtype (bot_message, file_share, etc.)
↳ is_starredbooleanWhether message is starred by user
↳ pinned_toarrayChannel IDs where message is pinned
↳ permalinkstringPermanent URL to the message
↳ reactionsarrayReactions on this message
↳ namestringEmoji name (without colons)
↳ countnumberNumber of times this reaction was added
↳ usersarrayArray of user IDs who reacted
↳ filesarrayFiles attached to the message
↳ idstringUnique file identifier
↳ namestringFile name
↳ mimetypestringMIME type of the file
↳ sizenumberFile size in bytes
↳ url_privatestringPrivate download URL (requires auth)
↳ permalinkstringPermanent link to the file
↳ modestringFile mode (hosted, external, etc.)
↳ attachmentsarrayLegacy attachments on the message
↳ idnumberAttachment ID
↳ fallbackstringPlain text summary
↳ textstringMain attachment text
↳ pretextstringText shown before attachment
↳ colorstringColor bar hex code or preset
↳ author_namestringAuthor display name
↳ author_linkstringAuthor link URL
↳ author_iconstringAuthor icon URL
↳ titlestringAttachment title
↳ title_linkstringTitle link URL
↳ image_urlstringImage URL
↳ thumb_urlstringThumbnail URL
↳ footerstringFooter text
↳ footer_iconstringFooter icon URL
↳ tsstringTimestamp shown in footer
↳ blocksarrayBlock Kit blocks in the message
↳ typestringBlock type (section, divider, image, actions, etc.)
↳ block_idstringUnique block identifier
↳ editedobjectEdit information if message was edited
↳ userstringUser ID who edited the message
↳ tsstringTimestamp of the edit
has_morebooleanWhether more messages exist in the window; page with next_cursor
next_cursorstringCursor for the next page, empty when has_more is false
countnumberNumber of messages returned in this page

slack_get_message

Retrieve a specific message by its timestamp. Useful for getting a thread parent message.

Input

ParameterTypeRequiredDescription
authMethodstringNoAuthentication method: oauth or bot_token
botTokenstringNoBot token for Custom Bot
channelstringYesSlack channel ID (e.g., C1234567890)
timestampstringYesMessage timestamp to retrieve (e.g., 1405894322.002768)

Output

ParameterTypeDescription
messageobjectThe retrieved message object
↳ typestringMessage type (usually "message")
↳ tsstringMessage timestamp (unique identifier)
↳ textstringMessage text content
↳ userstringUser ID who sent the message
↳ bot_idstringBot ID if sent by a bot
↳ usernamestringDisplay username
↳ channelstringChannel ID
↳ teamstringTeam/workspace ID
↳ thread_tsstringParent message timestamp (for threaded replies)
↳ parent_user_idstringUser ID of thread parent message author
↳ reply_countnumberTotal number of replies in thread
↳ reply_users_countnumberNumber of unique users who replied
↳ latest_replystringTimestamp of most recent reply
↳ subscribedbooleanWhether user is subscribed to thread
↳ last_readstringTimestamp of last read message
↳ unread_countnumberNumber of unread messages in thread
↳ subtypestringMessage subtype (bot_message, file_share, etc.)
↳ is_starredbooleanWhether message is starred by user
↳ pinned_toarrayChannel IDs where message is pinned
↳ permalinkstringPermanent URL to the message
↳ reactionsarrayReactions on this message
↳ namestringEmoji name (without colons)
↳ countnumberNumber of times this reaction was added
↳ usersarrayArray of user IDs who reacted
↳ filesarrayFiles attached to the message
↳ idstringUnique file identifier
↳ namestringFile name
↳ mimetypestringMIME type of the file
↳ sizenumberFile size in bytes
↳ url_privatestringPrivate download URL (requires auth)
↳ permalinkstringPermanent link to the file
↳ modestringFile mode (hosted, external, etc.)
↳ attachmentsarrayLegacy attachments on the message
↳ idnumberAttachment ID
↳ fallbackstringPlain text summary
↳ textstringMain attachment text
↳ pretextstringText shown before attachment
↳ colorstringColor bar hex code or preset
↳ author_namestringAuthor display name
↳ author_linkstringAuthor link URL
↳ author_iconstringAuthor icon URL
↳ titlestringAttachment title
↳ title_linkstringTitle link URL
↳ image_urlstringImage URL
↳ thumb_urlstringThumbnail URL
↳ footerstringFooter text
↳ footer_iconstringFooter icon URL
↳ tsstringTimestamp shown in footer
↳ blocksarrayBlock Kit blocks in the message
↳ typestringBlock type (section, divider, image, actions, etc.)
↳ block_idstringUnique block identifier
↳ editedobjectEdit information if message was edited
↳ userstringUser ID who edited the message
↳ tsstringTimestamp of the edit

slack_get_thread

Retrieve an entire thread including the parent message and all replies. Useful for getting full conversation context.

Input

ParameterTypeRequiredDescription
authMethodstringNoAuthentication method: oauth or bot_token
botTokenstringNoBot token for Custom Bot
channelstringYesSlack channel ID (e.g., C1234567890)
threadTsstringYesThread timestamp (thread_ts) to retrieve (e.g., 1405894322.002768)
limitnumberNoMaximum number of messages to return (default: 100, max: 200)

Output

ParameterTypeDescription
parentMessageobjectThe thread parent message
↳ typestringMessage type (usually "message")
↳ tsstringMessage timestamp (unique identifier)
↳ textstringMessage text content
↳ userstringUser ID who sent the message
↳ bot_idstringBot ID if sent by a bot
↳ usernamestringDisplay username
↳ channelstringChannel ID
↳ teamstringTeam/workspace ID
↳ thread_tsstringParent message timestamp (for threaded replies)
↳ parent_user_idstringUser ID of thread parent message author
↳ reply_countnumberTotal number of replies in thread
↳ reply_users_countnumberNumber of unique users who replied
↳ latest_replystringTimestamp of most recent reply
↳ subscribedbooleanWhether user is subscribed to thread
↳ last_readstringTimestamp of last read message
↳ unread_countnumberNumber of unread messages in thread
↳ subtypestringMessage subtype (bot_message, file_share, etc.)
↳ is_starredbooleanWhether message is starred by user
↳ pinned_toarrayChannel IDs where message is pinned
↳ permalinkstringPermanent URL to the message
↳ reactionsarrayReactions on this message
↳ namestringEmoji name (without colons)
↳ countnumberNumber of times this reaction was added
↳ usersarrayArray of user IDs who reacted
↳ filesarrayFiles attached to the message
↳ idstringUnique file identifier
↳ namestringFile name
↳ mimetypestringMIME type of the file
↳ sizenumberFile size in bytes
↳ url_privatestringPrivate download URL (requires auth)
↳ permalinkstringPermanent link to the file
↳ modestringFile mode (hosted, external, etc.)
↳ attachmentsarrayLegacy attachments on the message
↳ idnumberAttachment ID
↳ fallbackstringPlain text summary
↳ textstringMain attachment text
↳ pretextstringText shown before attachment
↳ colorstringColor bar hex code or preset
↳ author_namestringAuthor display name
↳ author_linkstringAuthor link URL
↳ author_iconstringAuthor icon URL
↳ titlestringAttachment title
↳ title_linkstringTitle link URL
↳ image_urlstringImage URL
↳ thumb_urlstringThumbnail URL
↳ footerstringFooter text
↳ footer_iconstringFooter icon URL
↳ tsstringTimestamp shown in footer
↳ blocksarrayBlock Kit blocks in the message
↳ typestringBlock type (section, divider, image, actions, etc.)
↳ block_idstringUnique block identifier
↳ editedobjectEdit information if message was edited
↳ userstringUser ID who edited the message
↳ tsstringTimestamp of the edit
repliesarrayArray of reply messages in the thread (excluding the parent)
↳ typestringMessage type (usually "message")
↳ tsstringMessage timestamp (unique identifier)
↳ textstringMessage text content
↳ userstringUser ID who sent the message
↳ bot_idstringBot ID if sent by a bot
↳ usernamestringDisplay username
↳ channelstringChannel ID
↳ teamstringTeam/workspace ID
↳ thread_tsstringParent message timestamp (for threaded replies)
↳ parent_user_idstringUser ID of thread parent message author
↳ reply_countnumberTotal number of replies in thread
↳ reply_users_countnumberNumber of unique users who replied
↳ latest_replystringTimestamp of most recent reply
↳ subscribedbooleanWhether user is subscribed to thread
↳ last_readstringTimestamp of last read message
↳ unread_countnumberNumber of unread messages in thread
↳ subtypestringMessage subtype (bot_message, file_share, etc.)
↳ is_starredbooleanWhether message is starred by user
↳ pinned_toarrayChannel IDs where message is pinned
↳ permalinkstringPermanent URL to the message
↳ reactionsarrayReactions on this message
↳ namestringEmoji name (without colons)
↳ countnumberNumber of times this reaction was added
↳ usersarrayArray of user IDs who reacted
↳ filesarrayFiles attached to the message
↳ idstringUnique file identifier
↳ namestringFile name
↳ mimetypestringMIME type of the file
↳ sizenumberFile size in bytes
↳ url_privatestringPrivate download URL (requires auth)
↳ permalinkstringPermanent link to the file
↳ modestringFile mode (hosted, external, etc.)
↳ attachmentsarrayLegacy attachments on the message
↳ idnumberAttachment ID
↳ fallbackstringPlain text summary
↳ textstringMain attachment text
↳ pretextstringText shown before attachment
↳ colorstringColor bar hex code or preset
↳ author_namestringAuthor display name
↳ author_linkstringAuthor link URL
↳ author_iconstringAuthor icon URL
↳ titlestringAttachment title
↳ title_linkstringTitle link URL
↳ image_urlstringImage URL
↳ thumb_urlstringThumbnail URL
↳ footerstringFooter text
↳ footer_iconstringFooter icon URL
↳ tsstringTimestamp shown in footer
↳ blocksarrayBlock Kit blocks in the message
↳ typestringBlock type (section, divider, image, actions, etc.)
↳ block_idstringUnique block identifier
↳ editedobjectEdit information if message was edited
↳ userstringUser ID who edited the message
↳ tsstringTimestamp of the edit
messagesarrayAll messages in the thread (parent + replies) in chronological order
↳ typestringMessage type (usually "message")
↳ tsstringMessage timestamp (unique identifier)
↳ textstringMessage text content
↳ userstringUser ID who sent the message
↳ bot_idstringBot ID if sent by a bot
↳ usernamestringDisplay username
↳ channelstringChannel ID
↳ teamstringTeam/workspace ID
↳ thread_tsstringParent message timestamp (for threaded replies)
↳ parent_user_idstringUser ID of thread parent message author
↳ reply_countnumberTotal number of replies in thread
↳ reply_users_countnumberNumber of unique users who replied
↳ latest_replystringTimestamp of most recent reply
↳ subscribedbooleanWhether user is subscribed to thread
↳ last_readstringTimestamp of last read message
↳ unread_countnumberNumber of unread messages in thread
↳ subtypestringMessage subtype (bot_message, file_share, etc.)
↳ is_starredbooleanWhether message is starred by user
↳ pinned_toarrayChannel IDs where message is pinned
↳ permalinkstringPermanent URL to the message
↳ reactionsarrayReactions on this message
↳ namestringEmoji name (without colons)
↳ countnumberNumber of times this reaction was added
↳ usersarrayArray of user IDs who reacted
↳ filesarrayFiles attached to the message
↳ idstringUnique file identifier
↳ namestringFile name
↳ mimetypestringMIME type of the file
↳ sizenumberFile size in bytes
↳ url_privatestringPrivate download URL (requires auth)
↳ permalinkstringPermanent link to the file
↳ modestringFile mode (hosted, external, etc.)
↳ attachmentsarrayLegacy attachments on the message
↳ idnumberAttachment ID
↳ fallbackstringPlain text summary
↳ textstringMain attachment text
↳ pretextstringText shown before attachment
↳ colorstringColor bar hex code or preset
↳ author_namestringAuthor display name
↳ author_linkstringAuthor link URL
↳ author_iconstringAuthor icon URL
↳ titlestringAttachment title
↳ title_linkstringTitle link URL
↳ image_urlstringImage URL
↳ thumb_urlstringThumbnail URL
↳ footerstringFooter text
↳ footer_iconstringFooter icon URL
↳ tsstringTimestamp shown in footer
↳ blocksarrayBlock Kit blocks in the message
↳ typestringBlock type (section, divider, image, actions, etc.)
↳ block_idstringUnique block identifier
↳ editedobjectEdit information if message was edited
↳ userstringUser ID who edited the message
↳ tsstringTimestamp of the edit
replyCountnumberNumber of replies returned in this response
hasMorebooleanWhether there are more messages in the thread (pagination needed)

slack_list_channels

List all channels in a Slack workspace. Returns public and private channels the bot has access to.

Input

ParameterTypeRequiredDescription
authMethodstringNoAuthentication method: oauth or bot_token
botTokenstringNoBot token for Custom Bot
includePrivatebooleanNoInclude private channels the bot is a member of (default: true)
excludeArchivedbooleanNoExclude archived channels (default: true)
limitnumberNoMaximum number of channels to return (default: 100, max: 999)
cursorstringNoPagination cursor from a previous call's next_cursor

Output

ParameterTypeDescription
channelsarrayArray of channel objects from the workspace
↳ idstringChannel ID (e.g., C1234567890)
↳ namestringChannel name without # prefix
↳ is_channelbooleanWhether this is a channel
↳ is_privatebooleanWhether channel is private
↳ is_archivedbooleanWhether channel is archived
↳ is_generalbooleanWhether this is the general channel
↳ is_memberbooleanWhether the bot/user is a member
↳ is_sharedbooleanWhether channel is shared across workspaces
↳ is_ext_sharedbooleanWhether channel is externally shared
↳ is_org_sharedbooleanWhether channel is org-wide shared
↳ num_membersnumberNumber of members in the channel
↳ topicstringChannel topic
↳ purposestringChannel purpose/description
↳ creatednumberUnix timestamp when channel was created
↳ creatorstringUser ID of channel creator
↳ updatednumberUnix timestamp of last update
idsarrayArray of channel IDs for easy access
namesarrayArray of channel names for easy access
countnumberTotal number of channels returned
has_morebooleanWhether more channels exist; page with next_cursor
next_cursorstringCursor for the next page, empty when has_more is false

slack_list_members

List all members (user IDs) in a Slack channel. Use with Get User Info to resolve IDs to names.

Input

ParameterTypeRequiredDescription
authMethodstringNoAuthentication method: oauth or bot_token
botTokenstringNoBot token for Custom Bot
channelstringYesChannel ID to list members from
limitnumberNoMaximum number of members to return (default: 100, max: 200)

Output

ParameterTypeDescription
membersarrayArray of user IDs who are members of the channel (e.g., U1234567890)
countnumberTotal number of members returned

slack_list_users

List all users in a Slack workspace. Returns user profiles with names and avatars.

Input

ParameterTypeRequiredDescription
authMethodstringNoAuthentication method: oauth or bot_token
botTokenstringNoBot token for Custom Bot
includeDeletedbooleanNoInclude deactivated/deleted users (default: false)
limitnumberNoMaximum number of users to return (default: 100, max: 200)

Output

ParameterTypeDescription
usersarrayArray of user objects from the workspace
↳ idstringUser ID (e.g., U1234567890)
↳ namestringUsername (handle)
↳ real_namestringFull real name
↳ display_namestringDisplay name shown in Slack
↳ emailstringEmail address (requires users:read.email scope)
↳ is_botbooleanWhether the user is a bot
↳ is_adminbooleanWhether the user is a workspace admin
↳ is_ownerbooleanWhether the user is the workspace owner
↳ deletedbooleanWhether the user is deactivated
↳ timezonestringUser timezone identifier
↳ avatarstringURL to user avatar image
↳ status_textstringCustom status text
↳ status_emojistringCustom status emoji
idsarrayArray of user IDs for easy access
namesarrayArray of usernames for easy access
countnumberTotal number of users returned

slack_get_user

Get detailed information about a specific Slack user by their user ID.

Input

ParameterTypeRequiredDescription
authMethodstringNoAuthentication method: oauth or bot_token
botTokenstringNoBot token for Custom Bot
userIdstringYesUser ID to look up (e.g., U1234567890)

Output

ParameterTypeDescription
userobjectDetailed user information
↳ idstringUser ID (e.g., U1234567890)
↳ team_idstringWorkspace/team ID
↳ namestringUsername (handle)
↳ real_namestringFull real name
↳ display_namestringDisplay name shown in Slack
↳ first_namestringFirst name
↳ last_namestringLast name
↳ titlestringJob title
↳ phonestringPhone number
↳ skypestringSkype handle
↳ emailstringEmail address (requires users:read.email scope)
↳ is_botbooleanWhether the user is a bot
↳ is_adminbooleanWhether the user is a workspace admin
↳ is_ownerbooleanWhether the user is the workspace owner
↳ is_primary_ownerbooleanWhether the user is the primary owner
↳ is_restrictedbooleanWhether the user is a guest (restricted)
↳ is_ultra_restrictedbooleanWhether the user is a single-channel guest
↳ is_app_userbooleanWhether user is an app user
↳ is_strangerbooleanWhether user is from different workspace
↳ deletedbooleanWhether the user is deactivated
↳ colorstringUser color for display
↳ timezonestringTimezone identifier (e.g., America/Los_Angeles)
↳ timezone_labelstringHuman-readable timezone label
↳ timezone_offsetnumberTimezone offset in seconds from UTC
↳ avatarstringURL to user avatar image
↳ avatar_24stringURL to 24px avatar
↳ avatar_48stringURL to 48px avatar
↳ avatar_72stringURL to 72px avatar
↳ avatar_192stringURL to 192px avatar
↳ avatar_512stringURL to 512px avatar
↳ status_textstringCustom status text
↳ status_emojistringCustom status emoji
↳ status_expirationnumberUnix timestamp when status expires
↳ updatednumberUnix timestamp of last profile update
↳ has_2fabooleanWhether two-factor auth is enabled

slack_download

Download a file from Slack

Input

ParameterTypeRequiredDescription
authMethodstringNoAuthentication method: oauth or bot_token
botTokenstringNoBot token for Custom Bot
fileIdstringYesThe ID of the file to download
fileNamestringNoOptional filename override

Output

ParameterTypeDescription
filefileDownloaded file stored in execution files

slack_update_message

Update a message previously sent by the bot in Slack

Input

ParameterTypeRequiredDescription
authMethodstringNoAuthentication method: oauth or bot_token
botTokenstringNoBot token for Custom Bot
channelstringYesChannel ID where the message was posted (e.g., C1234567890)
timestampstringYesTimestamp of the message to update (e.g., 1405894322.002768)
textstringYesNew message text (supports Slack mrkdwn formatting)
blocksjsonNoBlock Kit layout blocks as a JSON array. When provided, text becomes the fallback notification text.

Output

ParameterTypeDescription
messageobjectComplete updated message object with all properties returned by Slack
↳ typestringMessage type (usually "message")
↳ tsstringMessage timestamp (unique identifier)
↳ textstringMessage text content
↳ userstringUser ID who sent the message
↳ bot_idstringBot ID if sent by a bot
↳ usernamestringDisplay username
↳ channelstringChannel ID
↳ teamstringTeam/workspace ID
↳ thread_tsstringParent message timestamp (for threaded replies)
↳ parent_user_idstringUser ID of thread parent message author
↳ reply_countnumberTotal number of replies in thread
↳ reply_users_countnumberNumber of unique users who replied
↳ latest_replystringTimestamp of most recent reply
↳ subscribedbooleanWhether user is subscribed to thread
↳ last_readstringTimestamp of last read message
↳ unread_countnumberNumber of unread messages in thread
↳ subtypestringMessage subtype (bot_message, file_share, etc.)
↳ is_starredbooleanWhether message is starred by user
↳ pinned_toarrayChannel IDs where message is pinned
↳ permalinkstringPermanent URL to the message
↳ reactionsarrayReactions on this message
↳ namestringEmoji name (without colons)
↳ countnumberNumber of times this reaction was added
↳ usersarrayArray of user IDs who reacted
↳ filesarrayFiles attached to the message
↳ idstringUnique file identifier
↳ namestringFile name
↳ mimetypestringMIME type of the file
↳ sizenumberFile size in bytes
↳ url_privatestringPrivate download URL (requires auth)
↳ permalinkstringPermanent link to the file
↳ modestringFile mode (hosted, external, etc.)
↳ attachmentsarrayLegacy attachments on the message
↳ idnumberAttachment ID
↳ fallbackstringPlain text summary
↳ textstringMain attachment text
↳ pretextstringText shown before attachment
↳ colorstringColor bar hex code or preset
↳ author_namestringAuthor display name
↳ author_linkstringAuthor link URL
↳ author_iconstringAuthor icon URL
↳ titlestringAttachment title
↳ title_linkstringTitle link URL
↳ image_urlstringImage URL
↳ thumb_urlstringThumbnail URL
↳ footerstringFooter text
↳ footer_iconstringFooter icon URL
↳ tsstringTimestamp shown in footer
↳ blocksarrayBlock Kit blocks in the message
↳ typestringBlock type (section, divider, image, actions, etc.)
↳ block_idstringUnique block identifier
↳ editedobjectEdit information if message was edited
↳ userstringUser ID who edited the message
↳ tsstringTimestamp of the edit
contentstringSuccess message
metadataobjectUpdated message metadata
↳ channelstringChannel ID
↳ timestampstringMessage timestamp
↳ textstringUpdated message text

slack_delete_message

Delete a message previously sent by the bot in Slack

Input

ParameterTypeRequiredDescription
authMethodstringNoAuthentication method: oauth or bot_token
botTokenstringNoBot token for Custom Bot
channelstringYesChannel ID where the message was posted (e.g., C1234567890)
timestampstringYesTimestamp of the message to delete (e.g., 1405894322.002768)

Output

ParameterTypeDescription
contentstringSuccess message
metadataobjectDeleted message metadata
↳ channelstringChannel ID
↳ timestampstringMessage timestamp

slack_add_reaction

Add an emoji reaction to a Slack message

Input

ParameterTypeRequiredDescription
authMethodstringNoAuthentication method: oauth or bot_token
botTokenstringNoBot token for Custom Bot
channelstringYesChannel ID where the message was posted (e.g., C1234567890)
timestampstringYesTimestamp of the message to react to (e.g., 1405894322.002768)
namestringYesName of the emoji reaction (without colons, e.g., thumbsup, heart, eyes)

Output

ParameterTypeDescription
contentstringSuccess message
metadataobjectReaction metadata
↳ channelstringChannel ID
↳ timestampstringMessage timestamp
↳ reactionstringEmoji reaction name

slack_remove_reaction

Remove an emoji reaction from a Slack message

Input

ParameterTypeRequiredDescription
authMethodstringNoAuthentication method: oauth or bot_token
botTokenstringNoBot token for Custom Bot
channelstringYesChannel ID where the message was posted (e.g., C1234567890)
timestampstringYesTimestamp of the message to remove reaction from (e.g., 1405894322.002768)
namestringYesName of the emoji reaction to remove (without colons, e.g., thumbsup, heart, eyes)

Output

ParameterTypeDescription
contentstringSuccess message
metadataobjectReaction metadata
↳ channelstringChannel ID
↳ timestampstringMessage timestamp
↳ reactionstringEmoji reaction name

slack_get_channel_info

Get detailed information about a Slack channel by its ID

Input

ParameterTypeRequiredDescription
authMethodstringNoAuthentication method: oauth or bot_token
botTokenstringNoBot token for Custom Bot
channelstringYesChannel ID to get information about (e.g., C1234567890)
includeNumMembersbooleanNoWhether to include the member count in the response

Output

ParameterTypeDescription
channelInfoobjectDetailed channel information
↳ idstringChannel ID (e.g., C1234567890)
↳ namestringChannel name without # prefix
↳ is_channelbooleanWhether this is a channel
↳ is_privatebooleanWhether channel is private
↳ is_archivedbooleanWhether channel is archived
↳ is_generalbooleanWhether this is the general channel
↳ is_memberbooleanWhether the bot/user is a member
↳ is_sharedbooleanWhether channel is shared across workspaces
↳ is_ext_sharedbooleanWhether channel is externally shared
↳ is_org_sharedbooleanWhether channel is org-wide shared
↳ num_membersnumberNumber of members in the channel
↳ topicstringChannel topic
↳ purposestringChannel purpose/description
↳ creatednumberUnix timestamp when channel was created
↳ creatorstringUser ID of channel creator
↳ updatednumberUnix timestamp of last update

slack_get_user_presence

Check whether a Slack user is currently active or away

Input

ParameterTypeRequiredDescription
authMethodstringNoAuthentication method: oauth or bot_token
botTokenstringNoBot token for Custom Bot
userIdstringYesUser ID to check presence for (e.g., U1234567890)

Output

ParameterTypeDescription
presencestringUser presence status: "active" or "away"
onlinebooleanWhether user has an active client connection (only available when checking own presence)
autoAwaybooleanWhether user was automatically set to away due to inactivity (only available when checking own presence)
manualAwaybooleanWhether user manually set themselves as away (only available when checking own presence)
connectionCountnumberTotal number of active connections for the user (only available when checking own presence)
lastActivitynumberUnix timestamp of last detected activity (only available when checking own presence)

slack_edit_canvas

Edit an existing Slack canvas by inserting, replacing, or deleting content

Input

ParameterTypeRequiredDescription
authMethodstringNoAuthentication method: oauth or bot_token
botTokenstringNoBot token for Custom Bot
canvasIdstringYesCanvas ID to edit (e.g., F1234ABCD)
operationstringYesEdit operation: insert_at_start, insert_at_end, insert_after, insert_before, replace, delete, or rename
contentstringNoMarkdown content for the operation (required for insert/replace operations)
sectionIdstringNoSection ID to target (required for insert_after, insert_before, replace, and delete)
titlestringNoNew title for the canvas (only used with rename operation)

Output

ParameterTypeDescription
contentstringSuccess message

slack_create_channel_canvas

Create a canvas pinned to a Slack channel as its resource hub

Input

ParameterTypeRequiredDescription
authMethodstringNoAuthentication method: oauth or bot_token
botTokenstringNoBot token for Custom Bot
channelstringYesChannel ID to create the canvas in (e.g., C1234567890)
titlestringNoTitle for the channel canvas
contentstringNoCanvas content in markdown format

Output

ParameterTypeDescription
canvas_idstringID of the created channel canvas

slack_create_conversation

Create a new public or private channel in a Slack workspace.

Input

ParameterTypeRequiredDescription
authMethodstringNoAuthentication method: oauth or bot_token
botTokenstringNoBot token for Custom Bot
namestringYesName of the channel to create (lowercase, numbers, hyphens, underscores only; max 80 characters)
isPrivatebooleanNoCreate a private channel instead of a public one (default: false)
teamIdstringNoEncoded team ID to create the channel in (required if using an org token)

Output

ParameterTypeDescription
channelInfoobjectThe newly created channel object
↳ idstringChannel ID (e.g., C1234567890)
↳ namestringChannel name without # prefix
↳ is_channelbooleanWhether this is a channel
↳ is_privatebooleanWhether channel is private
↳ is_archivedbooleanWhether channel is archived
↳ is_generalbooleanWhether this is the general channel
↳ is_memberbooleanWhether the bot/user is a member
↳ is_sharedbooleanWhether channel is shared across workspaces
↳ is_ext_sharedbooleanWhether channel is externally shared
↳ is_org_sharedbooleanWhether channel is org-wide shared
↳ num_membersnumberNumber of members in the channel
↳ topicstringChannel topic
↳ purposestringChannel purpose/description
↳ creatednumberUnix timestamp when channel was created
↳ creatorstringUser ID of channel creator
↳ updatednumberUnix timestamp of last update

slack_invite_to_conversation

Invite one or more users to a Slack channel. Supports up to 100 users at a time.

Input

ParameterTypeRequiredDescription
authMethodstringNoAuthentication method: oauth or bot_token
botTokenstringNoBot token for Custom Bot
channelstringYesThe ID of the channel to invite users to
usersstringYesComma-separated list of user IDs to invite (up to 100)
forcebooleanNoWhen true, continues inviting valid users while skipping invalid ones (default: false)

Output

ParameterTypeDescription
channelInfoobjectThe channel object after inviting users
↳ idstringChannel ID (e.g., C1234567890)
↳ namestringChannel name without # prefix
↳ is_channelbooleanWhether this is a channel
↳ is_privatebooleanWhether channel is private
↳ is_archivedbooleanWhether channel is archived
↳ is_generalbooleanWhether this is the general channel
↳ is_memberbooleanWhether the bot/user is a member
↳ is_sharedbooleanWhether channel is shared across workspaces
↳ is_ext_sharedbooleanWhether channel is externally shared
↳ is_org_sharedbooleanWhether channel is org-wide shared
↳ num_membersnumberNumber of members in the channel
↳ topicstringChannel topic
↳ purposestringChannel purpose/description
↳ creatednumberUnix timestamp when channel was created
↳ creatorstringUser ID of channel creator
↳ updatednumberUnix timestamp of last update
errorsarrayPer-user errors when force is true and some invitations failed
↳ userstringUser ID that failed
↳ okbooleanAlways false for error entries
↳ errorstringError code for this user

slack_open_view

Open a modal view in Slack using a trigger_id from an interaction payload. Used to display forms, confirmations, and other interactive modals.

Input

ParameterTypeRequiredDescription
authMethodstringNoAuthentication method: oauth or bot_token
botTokenstringNoBot token for Custom Bot
triggerIdstringYesExchange a trigger to post to the user. Obtained from an interaction payload (e.g., slash command, button click)
interactivityPointerstringNoAlternative to trigger_id for posting to user
viewjsonYesA view payload object defining the modal. Must include type ("modal"), title, and blocks array

Output

ParameterTypeDescription
viewobjectThe opened modal view object
↳ idstringUnique view identifier
↳ team_idstringWorkspace/team ID
↳ typestringView type (e.g., "modal")
↳ titlejsonPlain text title object with type and text fields
↳ typestringText object type (plain_text)
↳ textstringTitle text content
↳ submitjsonPlain text submit button object
↳ typestringText object type (plain_text)
↳ textstringSubmit button text
↳ closejsonPlain text close button object
↳ typestringText object type (plain_text)
↳ textstringClose button text
↳ blocksarrayBlock Kit blocks in the view
↳ typestringBlock type (section, divider, image, actions, etc.)
↳ block_idstringUnique block identifier
↳ private_metadatastringPrivate metadata string passed with the view
↳ callback_idstringCustom identifier for the view
↳ external_idstringCustom external identifier (max 255 chars, unique per workspace)
↳ statejsonCurrent state of the view with input values
↳ hashstringView version hash for updates
↳ clear_on_closebooleanWhether to clear all views in the stack when this view is closed
↳ notify_on_closebooleanWhether to send a view_closed event when this view is closed
↳ root_view_idstringID of the root view in the view stack
↳ previous_view_idstringID of the previous view in the view stack
↳ app_idstringApplication identifier
↳ bot_idstringBot identifier

slack_update_view

Update an existing modal view in Slack. Identify the view by view_id or external_id, and provide the updated view payload.

Input

ParameterTypeRequiredDescription
authMethodstringNoAuthentication method: oauth or bot_token
botTokenstringNoBot token for Custom Bot
viewIdstringNoUnique identifier of the view to update. Either viewId or externalId is required
externalIdstringNoDeveloper-set unique identifier of the view to update (max 255 chars). Either viewId or externalId is required
hashstringNoView state hash to protect against race conditions. Obtained from a previous views response
viewjsonYesA view payload object defining the updated modal. Must include type ("modal"), title, and blocks array. Use identical block_id and action_id values to preserve input data

Output

ParameterTypeDescription
viewobjectThe updated modal view object
↳ idstringUnique view identifier
↳ team_idstringWorkspace/team ID
↳ typestringView type (e.g., "modal")
↳ titlejsonPlain text title object with type and text fields
↳ typestringText object type (plain_text)
↳ textstringTitle text content
↳ submitjsonPlain text submit button object
↳ typestringText object type (plain_text)
↳ textstringSubmit button text
↳ closejsonPlain text close button object
↳ typestringText object type (plain_text)
↳ textstringClose button text
↳ blocksarrayBlock Kit blocks in the view
↳ typestringBlock type (section, divider, image, actions, etc.)
↳ block_idstringUnique block identifier
↳ private_metadatastringPrivate metadata string passed with the view
↳ callback_idstringCustom identifier for the view
↳ external_idstringCustom external identifier (max 255 chars, unique per workspace)
↳ statejsonCurrent state of the view with input values
↳ hashstringView version hash for updates
↳ clear_on_closebooleanWhether to clear all views in the stack when this view is closed
↳ notify_on_closebooleanWhether to send a view_closed event when this view is closed
↳ root_view_idstringID of the root view in the view stack
↳ previous_view_idstringID of the previous view in the view stack
↳ app_idstringApplication identifier
↳ bot_idstringBot identifier

slack_push_view

Push a new view onto an existing modal stack in Slack. Limited to 2 additional views after the initial modal is opened.

Input

ParameterTypeRequiredDescription
authMethodstringNoAuthentication method: oauth or bot_token
botTokenstringNoBot token for Custom Bot
triggerIdstringYesExchange a trigger to post to the user. Obtained from an interaction payload (e.g., button click within an existing modal)
interactivityPointerstringNoAlternative to trigger_id for posting to user
viewjsonYesA view payload object defining the modal to push. Must include type ("modal"), title, and blocks array

Output

ParameterTypeDescription
viewobjectThe pushed modal view object
↳ idstringUnique view identifier
↳ team_idstringWorkspace/team ID
↳ typestringView type (e.g., "modal")
↳ titlejsonPlain text title object with type and text fields
↳ typestringText object type (plain_text)
↳ textstringTitle text content
↳ submitjsonPlain text submit button object
↳ typestringText object type (plain_text)
↳ textstringSubmit button text
↳ closejsonPlain text close button object
↳ typestringText object type (plain_text)
↳ textstringClose button text
↳ blocksarrayBlock Kit blocks in the view
↳ typestringBlock type (section, divider, image, actions, etc.)
↳ block_idstringUnique block identifier
↳ private_metadatastringPrivate metadata string passed with the view
↳ callback_idstringCustom identifier for the view
↳ external_idstringCustom external identifier (max 255 chars, unique per workspace)
↳ statejsonCurrent state of the view with input values
↳ hashstringView version hash for updates
↳ clear_on_closebooleanWhether to clear all views in the stack when this view is closed
↳ notify_on_closebooleanWhether to send a view_closed event when this view is closed
↳ root_view_idstringID of the root view in the view stack
↳ previous_view_idstringID of the previous view in the view stack
↳ app_idstringApplication identifier
↳ bot_idstringBot identifier

slack_publish_view

Publish a static view to a user's Home tab in Slack. Used to create or update the app's Home tab experience.

Input

ParameterTypeRequiredDescription
authMethodstringNoAuthentication method: oauth or bot_token
botTokenstringNoBot token for Custom Bot
userIdstringYesThe user ID to publish the Home tab view to (e.g., U0BPQUNTA)
hashstringNoView state hash to protect against race conditions. Obtained from a previous views response
viewjsonYesA view payload object defining the Home tab. Must include type ("home") and blocks array

Output

ParameterTypeDescription
viewobjectThe published Home tab view object
↳ idstringUnique view identifier
↳ team_idstringWorkspace/team ID
↳ typestringView type (e.g., "modal")
↳ titlejsonPlain text title object with type and text fields
↳ typestringText object type (plain_text)
↳ textstringTitle text content
↳ submitjsonPlain text submit button object
↳ typestringText object type (plain_text)
↳ textstringSubmit button text
↳ closejsonPlain text close button object
↳ typestringText object type (plain_text)
↳ textstringClose button text
↳ blocksarrayBlock Kit blocks in the view
↳ typestringBlock type (section, divider, image, actions, etc.)
↳ block_idstringUnique block identifier
↳ private_metadatastringPrivate metadata string passed with the view
↳ callback_idstringCustom identifier for the view
↳ external_idstringCustom external identifier (max 255 chars, unique per workspace)
↳ statejsonCurrent state of the view with input values
↳ hashstringView version hash for updates
↳ clear_on_closebooleanWhether to clear all views in the stack when this view is closed
↳ notify_on_closebooleanWhether to send a view_closed event when this view is closed
↳ root_view_idstringID of the root view in the view stack
↳ previous_view_idstringID of the previous view in the view stack
↳ app_idstringApplication identifier
↳ bot_idstringBot identifier

Triggers

A workflow can start when one of these Slack events occurs.

Slack Webhook

Trigger workflow from Slack events like mentions, messages, and reactions

Slack sends the event to the webhook URL shown in the block.

Configuration

FieldTypeDescription
App setupdropdownNo description. Options: Enter app secrets, Use a connected app.
Auth connectioncredentialChoose the installed app and its workspace connection. Manage the shared Events URL and subscriptions in app settings.
Signing SecrettextThe signing secret from your Slack app to validate request authenticity.
Bot TokentextThe bot token from your Slack app. Required for downloading files attached to messages.
Events to matchdropdownOnly events in the app manifest are available. This filter does not change Slack subscriptions.
Channel filterdropdownOptionally narrow this trigger to one allowed channel. All allowed channels adds no extra channel filter. Manage allowed channels in app settings.
Include message changes and system messagestoggleInclude edits, channel joins, and messages from other bots. The app’s own messages are always skipped.
Include file attachmentstoggleDownload and include file attachments from messages. Requires files:read on the selected bot.

Output

FieldTypeDescription
eventobjectSlack event data
↳ event_typestringType of Slack event (e.g., app_mention, message)
↳ subtypestringMessage subtype (e.g., channel_join, channel_leave, bot_message, file_share). Null for regular user messages
↳ channelstringSlack channel ID where the event occurred
↳ channel_namestringHuman-readable channel name
↳ channel_typestringType of channel (e.g., channel, group, im, mpim). Useful for distinguishing DMs from public channels
↳ userstringUser ID who triggered the event
↳ user_namestringUsername who triggered the event
↳ bot_idstringBot ID if the message was sent by a bot. Null for human users
↳ textstringMessage text content
↳ timestampstringMessage timestamp from the triggering event
↳ thread_tsstringParent thread timestamp (if message is in a thread)
↳ team_idstringSlack workspace/team ID
↳ event_idstringUnique event identifier
↳ reactionstringEmoji reaction name (e.g., thumbsup). Present for reaction_added/reaction_removed events
↳ item_userstringUser ID of the original message author. Present for reaction_added/reaction_removed events
↳ hasFilesbooleanWhether the message has file attachments
↳ filesfile[]File attachments downloaded from the message (if includeFiles is enabled and bot token is provided)

On this page