Slack
Slack messaging platform integration
This node signs in with a credential: Slack API Token. See Connect a credential.
Triggers
Events from this node that can start a flow. Add one from Choose a trigger.
New Message Posted
Triggers when a new message is posted to a channel
Settings
| Field | Type | Required | Description |
|---|---|---|---|
| URL Group › Callback URL | Text | Yes | Copy this URL and paste it in your Slack app's Event Subscriptions settings |
Output
Later steps use this data through Current Trigger in the $ picker. For example, channel_id is $trigger.output.channel_id.
{
"channel_id": "string",
"event_type": "string",
"team": "string",
"text": "string",
"ts": "string",
"user_id": "string"
}Example values show the shape of the data, not real values. See Using data from earlier steps.
Field descriptions
| Field | Type | Description |
|---|---|---|
channel_id | Text | The ID of the channel where the message was posted |
event_type | Text | The type of event (message) |
team | Text | The team ID (workspace) |
text | Text | The text content of the message |
ts | Text | The timestamp of the message |
user_id | Text | The ID of the user who posted the message |
New Channel Created
Triggers when a new channel is created
Settings
| Field | Type | Required | Description |
|---|---|---|---|
| URL Group › Callback URL | Text | Yes | Copy this URL and paste it in your Slack app's Event Subscriptions settings |
Output
Later steps use this data through Current Trigger in the $ picker. For example, channel_id is $trigger.output.channel_id.
{
"channel_id": "string",
"channel_name": "string",
"created": 0,
"creator_id": "string",
"event_type": "string",
"is_private": false
}Example values show the shape of the data, not real values. See Using data from earlier steps.
Field descriptions
| Field | Type | Description |
|---|---|---|
channel_id | Text | The ID of the created channel |
channel_name | Text | The name of the created channel |
created | Number | The timestamp when the channel was created |
creator_id | Text | The ID of the user who created the channel |
event_type | Text | The type of event (channel_created) |
is_private | Yes / No | Whether the channel is private |
User Joined Channel
Triggers when a user joins a channel
Settings
| Field | Type | Required | Description |
|---|---|---|---|
| URL Group › Callback URL | Text | Yes | Copy this URL and paste it in your Slack app's Event Subscriptions settings |
Output
Later steps use this data through Current Trigger in the $ picker. For example, channel_id is $trigger.output.channel_id.
{
"channel_id": "string",
"event_type": "string",
"team": "string",
"user_id": "string"
}Example values show the shape of the data, not real values. See Using data from earlier steps.
Field descriptions
| Field | Type | Description |
|---|---|---|
channel_id | Text | The ID of the channel the user joined |
event_type | Text | The type of event (member_joined_channel) |
team | Text | The team ID (workspace) |
user_id | Text | The ID of the user who joined the channel |
Message Pinned
Triggers when a message is pinned to a channel
Settings
| Field | Type | Required | Description |
|---|---|---|---|
| URL Group › Callback URL | Text | Yes | Copy this URL and paste it in your Slack app's Event Subscriptions settings |
Output
Later steps use this data through Current Trigger in the $ picker. For example, channel_id is $trigger.output.channel_id.
{
"channel_id": "string",
"event_type": "string",
"message_ts": "string",
"team": "string",
"user_id": "string"
}Example values show the shape of the data, not real values. See Using data from earlier steps.
Field descriptions
| Field | Type | Description |
|---|---|---|
channel_id | Text | The ID of the channel where the message was pinned |
event_type | Text | The type of event (pin_added) |
message_ts | Text | The timestamp of the pinned message |
team | Text | The team ID (workspace) |
user_id | Text | The ID of the user who pinned the message |
Message Unpinned
Triggers when a message is unpinned from a channel
Settings
| Field | Type | Required | Description |
|---|---|---|---|
| URL Group › Callback URL | Text | Yes | Copy this URL and paste it in your Slack app's Event Subscriptions settings |
Output
Later steps use this data through Current Trigger in the $ picker. For example, channel_id is $trigger.output.channel_id.
{
"channel_id": "string",
"event_type": "string",
"message_ts": "string",
"team": "string",
"user_id": "string"
}Example values show the shape of the data, not real values. See Using data from earlier steps.
Field descriptions
| Field | Type | Description |
|---|---|---|
channel_id | Text | The ID of the channel where the message was unpinned |
event_type | Text | The type of event (pin_removed) |
message_ts | Text | The timestamp of the unpinned message |
team | Text | The team ID (workspace) |
user_id | Text | The ID of the user who unpinned the message |
User Mentioned
Triggers when a specific user is mentioned in a channel
Settings
| Field | Type | Required | Description |
|---|---|---|---|
| URL Group › Callback URL | Text | Yes | Copy this URL and paste it in your Slack app's Event Subscriptions settings |
| User ID to Monitor | Text | The Slack user ID to monitor for mentions (e.g., U1234567890). Leave empty to monitor all user mentions. | |
| Channel Filter | Text | Comma-separated list of channel IDs to monitor (e.g., C123,C456). Leave empty to monitor all channels. |
Output
Later steps use this data through Current Trigger in the $ picker. For example, channel_id is $trigger.output.channel_id.
{
"channel_id": "string",
"event_type": "string",
"mentioned_user_id": "string",
"team": "string",
"text": "string",
"ts": "string",
"user_id": "string"
}Example values show the shape of the data, not real values. See Using data from earlier steps.
Field descriptions
| Field | Type | Description |
|---|---|---|
channel_id | Text | The ID of the channel where the mention occurred |
event_type | Text | The type of event (message with mention) |
mentioned_user_id | Text | The ID of the user who was mentioned |
team | Text | The team ID (workspace) |
text | Text | The text content of the message containing the mention |
ts | Text | The timestamp of the message |
user_id | Text | The ID of the user who sent the message with the mention |
Bot Mentioned
Triggers when the bot is mentioned in a channel
Settings
| Field | Type | Required | Description |
|---|---|---|---|
| URL Group › Callback URL | Text | Yes | Copy this URL and paste it in your Slack app's Event Subscriptions settings |
| Channel Filter | Text | Comma-separated list of channel IDs to monitor (e.g., C123,C456). Leave empty to monitor all channels. |
Output
Later steps use this data through Current Trigger in the $ picker. For example, channel_id is $trigger.output.channel_id.
{
"channel_id": "string",
"event_type": "string",
"team": "string",
"text": "string",
"ts": "string",
"user_id": "string"
}Example values show the shape of the data, not real values. See Using data from earlier steps.
Field descriptions
| Field | Type | Description |
|---|---|---|
channel_id | Text | The ID of the channel where the bot was mentioned |
event_type | Text | The type of event (app_mention) |
team | Text | The team ID (workspace) |
text | Text | The text content of the message mentioning the bot |
ts | Text | The timestamp of the message |
user_id | Text | The ID of the user who mentioned the bot |
Message Received
Triggers when the bot receives a direct message
Settings
| Field | Type | Required | Description |
|---|---|---|---|
| URL Group › Callback URL | Text | Yes | Copy this URL and paste it in your Slack app's Event Subscriptions settings |
Output
Later steps use this data through Current Trigger in the $ picker. For example, channel_id is $trigger.output.channel_id.
{
"channel_id": "string",
"event_type": "string",
"team": "string",
"text": "string",
"ts": "string",
"user_id": "string"
}Example values show the shape of the data, not real values. See Using data from earlier steps.
Field descriptions
| Field | Type | Description |
|---|---|---|
channel_id | Text | The ID of the DM channel |
event_type | Text | The type of event (message.im) |
team | Text | The team ID (workspace) |
text | Text | The text content of the direct message |
ts | Text | The timestamp of the message |
user_id | Text | The ID of the user who sent the DM |
Reaction
Triggers when a reaction is added to a message
Settings
| Field | Type | Required | Description |
|---|---|---|---|
| URL Group › Callback URL | Text | Yes | Copy this URL and paste it in your Slack app's Event Subscriptions settings |
| Emoji Filter | Text | Comma-separated list of emoji names to monitor (e.g., thumbsup,heart,eyes). Leave empty to monitor all reactions. | |
| Channel Filter | Text | Comma-separated list of channel IDs to monitor (e.g., C123,C456). Leave empty to monitor all channels. |
Output
Later steps use this data through Current Trigger in the $ picker. For example, channel_id is $trigger.output.channel_id.
{
"channel_id": "string",
"event_type": "string",
"item_user": "string",
"message_ts": "string",
"reaction": "thumbsup",
"team": "string",
"user_id": "string"
}Example values show the shape of the data, not real values. See Using data from earlier steps.
Field descriptions
| Field | Type | Description |
|---|---|---|
channel_id | Text | The ID of the channel where the reaction was added |
event_type | Text | The type of event (reaction_added) |
item_user | Text | The ID of the user who created the original item |
message_ts | Text | The timestamp of the message that was reacted to |
reaction | Text | The name of the emoji reaction (e.g., thumbsup, heart) |
team | Text | The team ID (workspace) |
user_id | Text | The ID of the user who added the reaction |
Actions
Steps this node can perform. Add one from Add a step, then pick the action.
List Channels
List channels in the workspace
Settings
| Field | Type | Required | Description |
|---|---|---|---|
| Exclude Archived | Yes / No | Whether to exclude archived channels Default: true | |
| Channel Types | Choice | Types of channels to include Options: Public ChannelsDefault: public_channel |
Output
Later steps use this data by picking this step in the $ picker. For example, channel_count is $.<step ID>.output.channel_count.
{
"channel_count": 0,
"channel_ids": [
"string"
],
"channel_names": [
"string"
],
"channels": [
{
"created": 0,
"creator": "string",
"id": "string",
"is_archived": false,
"is_general": false,
"is_member": false,
"is_private": false,
"name": "string",
"num_members": 0,
"purpose": "string",
"topic": "string"
}
],
"has_more": false,
"next_cursor": "string",
"success": false
}Example values show the shape of the data, not real values. See Using data from earlier steps.
Field descriptions
| Field | Type | Description |
|---|---|---|
channel_count | Number | Number of channels on this page |
channel_ids[] | List | IDs of the channels on this page, in order |
channel_names[] | List | Names of the channels on this page, in order |
channels[] | List | Channels on this page |
channels[].created | Number | Creation time in Unix seconds |
channels[].creator | Text | User ID of the channel creator |
channels[].id | Text | Channel ID |
channels[].is_archived | Yes / No | Whether the channel is archived |
channels[].is_general | Yes / No | Whether this is the workspace general channel |
channels[].is_member | Yes / No | Whether the bot is a member |
channels[].is_private | Yes / No | Whether the channel is private |
channels[].name | Text | Channel name |
channels[].num_members | Number | Number of members |
channels[].purpose | Text | Purpose text |
channels[].topic | Text | Topic text |
has_more | Yes / No | Whether more channels are available |
next_cursor | Text | Cursor for the next page; absent on the last page |
success | Yes / No | True when Slack returned the list |
Get Channel Info
Get information about a Slack channel
Settings
| Field | Type | Required | Description |
|---|---|---|---|
| Channel ID | Text | Yes | The ID of the channel to get information about |
Output
Later steps use this data by picking this step in the $ picker. For example, channel is $.<step ID>.output.channel.
{
"channel": {},
"channel_id": "string",
"channel_name": "string",
"is_archived": false,
"is_private": false,
"member_count": 0,
"purpose": "string",
"success": false,
"topic": "string"
}Example values show the shape of the data, not real values. See Using data from earlier steps.
Field descriptions
| Field | Type | Description |
|---|---|---|
channel | Object | The full channel object returned by Slack conversations.info (id, name, topic, purpose, members, ...) |
channel_id | Text | Channel ID |
channel_name | Text | Channel name |
is_archived | Yes / No | Whether the channel is archived |
is_private | Yes / No | Whether the channel is private |
member_count | Number | Number of member IDs Slack returned with the channel |
purpose | Text | Purpose text; absent when the channel has no purpose |
success | Yes / No | True when Slack returned the channel |
topic | Text | Topic text; absent when the channel has no topic |
Get User Info
Get information about a Slack user
Settings
| Field | Type | Required | Description |
|---|---|---|---|
| User ID | Text | Yes | The ID of the user to get information about |
Output
Later steps use this data by picking this step in the $ picker. For example, avatar is $.<step ID>.output.avatar.
{
"avatar": "string",
"display_name": "string",
"email": "string",
"is_admin": false,
"is_bot": false,
"profile": {},
"real_name": "string",
"status": "string",
"success": false,
"user": {},
"user_id": "string",
"username": "string"
}Example values show the shape of the data, not real values. See Using data from earlier steps.
Field descriptions
| Field | Type | Description |
|---|---|---|
avatar | Text | URL of the 192px avatar; absent when not set |
display_name | Text | Display name; absent when not set |
email | Text | Email address; absent when not set or not visible |
is_admin | Yes / No | Whether the user is a workspace admin |
is_bot | Yes / No | Whether the user is a bot |
profile | Object | The full user profile returned by Slack (email, display_name, title, image_192, ...) |
real_name | Text | Full name |
status | Text | Status text; absent when not set |
success | Yes / No | True when Slack returned the user |
user | Object | The full user object returned by Slack users.info (id, team_id, name, real_name, tz, ...) |
user_id | Text | User ID |
username | Text | Username |
Send Message
Send a message to a Slack channel or user
Settings
| Field | Type | Required | Description |
|---|---|---|---|
| Channel ID | Text | Yes | The ID of the channel or user to send the message to |
| Message Text | Text | Yes | The text content of the message |
| Message Type | Choice | The type of message to send Options: Text, Attachments, BlocksDefault: text | |
| Attachments | Code | JSON string of message attachments (for legacy formatting) | |
| Blocks | Code | JSON string of Block Kit blocks |
Output
Later steps use this data by picking this step in the $ picker. For example, channel is $.<step ID>.output.channel.
{
"channel": "string",
"message": "string",
"message_ts": "string",
"success": false
}Example values show the shape of the data, not real values. See Using data from earlier steps.
Field descriptions
| Field | Type | Description |
|---|---|---|
channel | Text | |
message | Any | |
message.attachments[] | List | Legacy attachments. Elements are free-form Slack attachment objects |
message.blocks[] | List | Block Kit blocks. Elements are free-form Block Kit objects |
message.text | Text | Message text |
message.ts | Text | Message timestamp |
message.username | Text | Username if available |
message_ts | Text | |
success | Yes / No |