Slack Action

Posts and manages Slack from a flow. Sixteen operations across messages, channels, reactions, users and files — including the two that people usually reach for a bot to get: an ephemeral message only one person sees, and a message scheduled for later.

Setup

Pick a Slack credential — an OAuth connection or an incoming webhook. A webhook can post to the channel it was created for and nothing else, so choosing it narrows the operation list accordingly.


Mode — action or AI toolkit

The Mode selector decides who drives the node. In Action mode you pick one operation and fill its fields, and the node does that every time it runs. In AI toolkit mode the operations become tools an AI Node can call, and the model chooses which one and with what arguments.

Toolkit mode is opt-in per node, and it is what makes this node show up in an AI Node's tool picker. A node left in Action mode is invisible to agents.

Operations

The Operation dropdown decides what the node does and which fields appear under it. These are the exact values the API validates against:

ValueIn the dropdownWhat it does
sendMessageSend messagePost a message to a channel, group, or DM.
updateMessageUpdate messageEdit a message the bot posted earlier.
deleteMessageDelete messageDelete a message the bot posted earlier.
sendEphemeralSend ephemeralPost a message visible only to a single user (the rest of the channel does not see it).
scheduleMessageSchedule messageSchedule a message to be posted at a future time.
getMessageGet messageFetch a single message by its timestamp.
listChannelsList channelsList public + private channels the bot can see in the workspace.
getChannelHistoryGet channel historyRead recent messages from a channel.
getThreadRepliesGet thread repliesFetch replies to a thread.
createChannelCreate channelCreate a new public or private channel.
inviteToChannelInvite to channelInvite one or more users to a channel.
addReactionAdd reactionAdd an emoji reaction to a message.
removeReactionRemove reactionRemove an emoji reaction from a message.
listUsersList usersList human members of the workspace (excludes deleted users + bots by default).
getUserInfoGet user infoFetch a user profile (name, email, timezone, status).
uploadFileUpload fileUpload a file (PDF, image, anything) and optionally share it in a channel.

Gotchas

  • The bot has to be in the channel. A bot that has not joined gets not_in_channel, and no permission scope fixes it — invite the app to the channel.
  • Editing and deleting only work on the bot's own messages.
  • ts is the message id. Slack identifies messages by timestamp, so keep the ts a send returns if you plan to edit, delete or thread onto it.
  • Thread replies use threadTs, the parent's ts — not the reply's.
  • Blocks beat text. Passing blocks gives you the layout; text is still worth filling because it is what notifications show.