Slack
Communication integration · 13 node(s) including 1 trigger.
00Overview
Every field below is exactly what you see in the Flomation editor. Fields marked ● live picker let you choose from a list pulled live from your account — no IDs to look up.
01Connecting Slack
Add your credentials as a Flomation environment secret, then pick them in each node. The connection fields are:
| Field | Type | Details | |
|---|---|---|---|
| Bot Token | secret | Required | xoxb-... |
| User Token (required — search needs a user token, not bot token) | secret | Required | xoxp-... |
| Webhook URL | string | Required | https://hooks.slack.com/services/... |
| Username Override | string | Flomation Bot |
${secrets.your_secret}.02Channel
Channel Action
slack/channel_action · Action
Send a channel-specific action like a typing indicator. Use this before long-running operations to show the user the agent is working.
| Field | Type | Details | |
|---|---|---|---|
| Channel Type | string | Required | telegram, slack, etc. — choices: Telegram, Slack |
| Action | string | Required | typing — choices: Typing, Upload Photo, Upload Document, Record Video, Record Voice, Find Location |
| Chat ID | string | Required | Target chat/channel ID |
| Agent ID | string |
Returns: success, message
03Channels
Slack Channels
slack/channels · Action
List or search Slack channels. Returns channel names, IDs, topics, and member counts
| Field | Type | Details | |
|---|---|---|---|
| Optional filter: only return channels whose name contains this text | string | ||
| Max channels to return (default 50, max 200) | string | ||
| Include private channels the bot is a member of (default false) | boolean |
Returns: tool_result, channels, count, success, error
04File
Slack File Upload
slack/file_upload · Action
Upload a file to a Slack channel. Accepts a flo:blob token, base64, or text.
| Field | Type | Details | |
|---|---|---|---|
| Channel ID | string | Required | ${channel_id} |
| File to upload (flo:blob: token from an upstream action) | string | ||
| File bytes as base64 (alternative to file_blob) | string | ||
| File content as text (for code snippets, CSV, logs, etc.) | text | ||
| Filename including extension (e.g. report.csv, photo.png, data.json) | string | Required | |
| Display title for the file in Slack (optional, defaults to filename) | string | ||
| Message to post alongside the file (optional) | string |
Returns: tool_result, file_id, success, error
05History
Slack Channel History
slack/history · Action
Read recent messages from a Slack channel. Uses conversations.history API.
| Field | Type | Details | |
|---|---|---|---|
| Channel ID | string | Required | C01ABC2DEF3 |
| Number of messages (default 20, max 100) | string | ||
| Oldest timestamp (Unix ts or ISO date, e.g. 2026-04-28) | string |
Returns: tool_result, messages, count, success, error
06React
Slack Add Reaction
slack/react · Action
Add an emoji reaction to a Slack message. Use emoji name without colons.
| Field | Type | Details | |
|---|---|---|---|
| Channel ID | string | Required | C01ABC2DEF3 |
| Message Timestamp | string | Required | 1234567890.123456 |
| Emoji Name (without colons) | string | Required | thumbsup |
Returns: tool_result, success, error
07Rich
Slack Rich Message
slack/rich_message · Action
Send a rich Slack message with Block Kit layouts. Use this when you need structured formatting: sections with fields, images, buttons, dividers, or context blocks. For simple text replies, use the normal response instead. Blocks use Slack mrkdwn (*bold*, _italic_, ~strike~, `code`). IMPORTANT: bot_token, channel_id, and thread_ts are pre-configured — do NOT provide them and do NOT ask the user for them. You only need to provide: text (fallback) and blocks (the Block Kit JSON array).
| Field | Type | Details | |
|---|---|---|---|
| Channel ID | secret | ${channel_id} | |
| Fallback text shown in notifications and accessibility (plain summary of the message) | text | Required | |
| Block Kit blocks as a JSON array. Common block types: section (with mrkdwn text or fields), divider, image, context, header, actions (buttons). Example: [{"type":"header","text":{"type":"plain_text","text":"Report"}},{"type":"section","text":{"type":"mrkdwn","text":"*Status:* All clear"}}] | text | Required | |
| Thread timestamp to reply in (optional) | string | ||
| Legacy attachments JSON array — colour bars, fields, footers (optional) | text |
Returns: tool_result, timestamp, success, error
08Search
Slack Search Messages
slack/search · Action
Search Slack messages. Requires a user token (xoxp-), not a bot token. Supports modifiers: from:user, in:channel, before:date, after:date
| Field | Type | Details | |
|---|---|---|---|
| Search query. Supports Slack search modifiers: from:@user, in:#channel, before:2026-04-20, after:2026-04-01, has:link | string | Required | |
| Max results to return (default 10, max 100) | string | ||
| Sort order: score (relevance) or timestamp (recent first). Default: score | string |
Returns: tool_result, messages, total, success, error
09Send
Send Slack Message
slack/send_message · Action
Send a message to a Slack channel via the Bot API with mrkdwn formatting and optional Block Kit layouts
| Field | Type | Details | |
|---|---|---|---|
| Channel ID | secret | Required | ${channel_id} |
| Message | text | Required | Hello from Flomation! Use *bold*, _italic_, `code` |
| Thread ID | string | ${thread_id} | |
| Block Kit JSON | text | [{"type":"section","text":{"type":"mrkdwn","text":"*Rich* message"}}] | |
| Attachments JSON | text | [{"color":"#36a64f","text":"Attachment text"}] | |
| Unfurl Links | boolean |
Returns: tool_result, timestamp, success, error
10Thread
Slack Thread Replies
slack/thread · Action
Read replies in a Slack thread. Requires the channel ID and thread timestamp.
| Field | Type | Details | |
|---|---|---|---|
| Channel ID | string | Required | C01ABC2DEF3 |
| Thread Timestamp | string | Required | 1234567890.123456 |
| Number of replies (default 50, max 200) | string |
Returns: tool_result, messages, count, success, error
11User
Slack User Profile
slack/user_profile · Action
Get a Slack user's full profile by user ID. Returns name, email, title, phone, timezone, status, and avatar
| Field | Type | Details | |
|---|---|---|---|
| Slack user ID (e.g. U01ABCDEF). Use slack_users to find IDs by name | string | Required |
Returns: tool_result, profile, real_name, display_name, email, title, timezone, status_text, success, error
12Users
Slack Users
slack/users · Action
List or search Slack workspace members. Returns display names, real names, email addresses, and status
| Field | Type | Details | |
|---|---|---|---|
| Optional filter: only return users whose name or display name contains this text | string | ||
| Max users to return (default 50, max 200) | string |
Returns: tool_result, users, count, success, error
13Webhook
Slack Webhook
slack/webhook · Action
Send a message to a Slack channel via webhook with mrkdwn formatting and optional Block Kit layouts
| Field | Type | Details | |
|---|---|---|---|
| Message | text | Required | Hello from Flomation! Use *bold*, _italic_, `code` |
| Icon Emoji | string | :robot_face: | |
| Block Kit JSON | text | [{"type":"section","text":{"type":"mrkdwn","text":"*Rich* message"}}] | |
| Attachments JSON | text | [{"color":"#36a64f","text":"Attachment text"}] |
Returns: tool_result, status_code, success, error
14Triggers
Slack Trigger
trigger/slack · Trigger
Triggers a flow when a Slack message or app mention is received
| Field | Type | Details | |
|---|---|---|---|
| Connection Mode | string | events_api — choices: Events API (HTTP webhooks), Socket Mode (WebSocket, no public URL) | |
| App-Level Token (Socket Mode only) | secret | xapp-1-... | |
| Signing Secret (Events API request verification) | secret | ${secrets.slack_signing_secret} | |
| App ID (optional) | string | Axxxxxxxxxx |
Returns: user_id, user_name, display_name, sender, channel_id, content, timestamp, thread_ts, team_id, event_id, event_type, agent_id, channel_type
15Notes & Limitations
Behaviours and constraints worth knowing before you build with these nodes.
- A bot must already be a member of a channel to read its history, post messages or add reactions there, so invite it with /invite in the channel first or those actions fail.
- Channels are addressed by their ID (for example C01ABC2DEF3), which the Slack Channels action returns, rather than by their name.
- Only the Search action uses a user token (xoxp-); every other action uses the bot token (xoxb-), and a search returns only the messages that user is allowed to see.
- An incoming-webhook message always posts to the single channel the webhook was created for, so use Send Slack Message when you need to choose the channel or reply in a thread.
- The Slack Users action can return a member's email address only when the app holds the users:read.email scope; otherwise the email comes back blank.