1. Support
  2. Integrations
  3. Slack
Communication 13 nodes

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:

FieldTypeDetails
Bot TokensecretRequiredxoxb-...
User Token (required — search needs a user token, not bot token)secretRequiredxoxp-...
Webhook URLstringRequiredhttps://hooks.slack.com/services/...
Username OverridestringFlomation Bot
Good to know

Pick an Environment on your flow (Flow Settings → Environment) so the secret resolves. Secret fields never show the value — they reference ${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.

FieldTypeDetails
Channel TypestringRequiredtelegram, slack, etc. — choices: Telegram, Slack
ActionstringRequiredtyping — choices: Typing, Upload Photo, Upload Document, Record Video, Record Voice, Find Location
Chat IDstringRequiredTarget chat/channel ID
Agent IDstring

Returns: success, message

03Channels

Slack Channels

slack/channels · Action

List or search Slack channels. Returns channel names, IDs, topics, and member counts

FieldTypeDetails
Optional filter: only return channels whose name contains this textstring
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.

FieldTypeDetails
Channel IDstringRequired${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 (optional — defaults to the uploaded file's own name)string
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.

FieldTypeDetails
Channel IDstringRequiredC01ABC2DEF3
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.

FieldTypeDetails
Channel IDstringRequiredC01ABC2DEF3
Message TimestampstringRequired1234567890.123456
Emoji Name (without colons)stringRequiredthumbsup

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).

FieldTypeDetails
Channel IDstring${channel_id}
Fallback text shown in notifications and accessibility (plain summary of the message)textRequired
Block Kit blocks as a JSON array (a bare [...] array, or the Block Kit Builder's {"blocks":[...]} object — both accepted). 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"}}]textRequired
Thread timestamp to reply in (optional)string
Legacy attachments JSON array — colour bars, fields, footers (optional)text

Returns: tool_result, timestamp, success, error

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

FieldTypeDetails
Search query. Supports Slack search modifiers: from:@user, in:#channel, before:2026-04-20, after:2026-04-01, has:linkstringRequired
Max results to return (default 10, max 100)string
Sort order: score (relevance) or timestamp (recent first). Default: scorestring

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

FieldTypeDetails
Channel IDstringRequired${channel_id}
MessagetextRequiredHello from Flomation! Use *bold*, _italic_, `code`
Thread IDstring${thread_id}
Block Kit JSONtext[{"type":"section","text":{"type":"mrkdwn","text":"*Rich* message"}}]
Attachments JSONtext[{"color":"#36a64f","text":"Attachment text"}]
Unfurl Linksboolean

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.

FieldTypeDetails
Channel IDstringRequiredC01ABC2DEF3
Thread TimestampstringRequired1234567890.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

FieldTypeDetails
Slack user ID (e.g. U01ABCDEF). Use slack_users to find IDs by namestringRequired

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

FieldTypeDetails
Optional filter: only return users whose name or display name contains this textstring
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

FieldTypeDetails
MessagetextRequiredHello from Flomation! Use *bold*, _italic_, `code`
Icon Emojistring:robot_face:
Block Kit JSONtext[{"type":"section","text":{"type":"mrkdwn","text":"*Rich* message"}}]
Attachments JSONtext[{"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

FieldTypeDetails
Connection Modestringevents_api — choices: Events API (HTTP webhooks), Socket Mode (WebSocket, no public URL)
App-Level Token (Socket Mode only)secretxapp-1-...
Signing Secret (Events API request verification)secret${secrets.slack_signing_secret}
App ID (optional)stringAxxxxxxxxxx

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.