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.
Operations
The Operation dropdown decides what the node does and which fields appear under it. These are the exact values the API validates against:
| Value | In the dropdown | What it does |
|---|---|---|
| sendMessage | Send message | Post a message to a channel, group, or DM. |
| updateMessage | Update message | Edit a message the bot posted earlier. |
| deleteMessage | Delete message | Delete a message the bot posted earlier. |
| sendEphemeral | Send ephemeral | Post a message visible only to a single user (the rest of the channel does not see it). |
| scheduleMessage | Schedule message | Schedule a message to be posted at a future time. |
| getMessage | Get message | Fetch a single message by its timestamp. |
| listChannels | List channels | List public + private channels the bot can see in the workspace. |
| getChannelHistory | Get channel history | Read recent messages from a channel. |
| getThreadReplies | Get thread replies | Fetch replies to a thread. |
| createChannel | Create channel | Create a new public or private channel. |
| inviteToChannel | Invite to channel | Invite one or more users to a channel. |
| addReaction | Add reaction | Add an emoji reaction to a message. |
| removeReaction | Remove reaction | Remove an emoji reaction from a message. |
| listUsers | List users | List human members of the workspace (excludes deleted users + bots by default). |
| getUserInfo | Get user info | Fetch a user profile (name, email, timezone, status). |
| uploadFile | Upload file | Upload 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.
tsis the message id. Slack identifies messages by timestamp, so keep thetsa send returns if you plan to edit, delete or thread onto it.- Thread replies use
threadTs, the parent'sts— not the reply's. - Blocks beat text. Passing
blocksgives you the layout;textis still worth filling because it is what notifications show.