Skip to main content

Slack Node

The Slack node provides integration with your Slack workspace in SkyStudio workflows. You can read channel messages, send messages, search messages, and run AI-powered queries.


Connection Setup and Management

To use the Slack node, you must create a Slack App on api.slack.com, add the required bot permission scopes, and enter the generated Bot User OAuth Token into SkyStudio.

Getting a Slack Bot Token

1. Create a New App

  1. Go to api.slack.com/apps.
  2. Click the Create New App button in the upper-right corner.
  3. Select From scratch in the window that opens.
  4. Enter a name for your app in the App Name field, such as SkyStudio.
  5. Select the workspace you want to integrate from the Pick a workspace dropdown.
  6. Click the Create App button.

2. Add Bot Permission Scopes

  1. In the left menu of the app page, go to OAuth & Permissions under Features.
  2. Scroll down to Scopes → Bot Token Scopes.
  3. Click the Add an OAuth Scope button and add the following scopes one by one:
ScopeDescription
channels:historyReads messages in public channels
channels:readViews the list and information of public channels
chat:writeSends messages as the bot
groups:historyReads messages in private channels
groups:readViews the list and information of private channels
users:readLists users in the workspace
users:read.emailViews users’ email addresses

3. Install the App to the Workspace

  1. After adding the scopes, go to the OAuth Tokens section of the page.
  2. Click the Install to [Workspace Name] button.
  3. Review the areas the app will access on the permission approval page and click the Allow button.

4. Copy the Bot Token

After installation is completed, you are redirected to the OAuth & Permissions page. Copy the token that starts with xoxb- from the Bot User OAuth Token field using the Copy button.

Note: Even if you lose this token, you can always return to the OAuth & Permissions page to view and copy it again.

Adding the Connection to SkyStudio

  1. Go to Application Connections from the left menu in SkyStudio.
  2. Click the Add New Connection button.
  3. Select Slack as the provider.
  4. Enter a descriptive name in the Connection Name field, such as Prod Slack.
  5. Paste the xoxb-… token you copied into the Bot Token field.
  6. Click the Save button.

Assigning the Connection to the Node

After adding the Slack node to the canvas, select the saved connection from the Application Connections dropdown in the right panel.

Tip: You can define separate connections for multiple Slack workspaces and choose which one to use in each workflow.


Operations

The Slack node provides 7 operations:

OperationCategoryDescription
Get Channel MessagesFeaturedLists historical messages from a specific channel
Send MessageFeaturedSends a message to a channel or user
Search MessagesFeaturedSearches messages across the workspace by keyword
Slack AI AssistantFeaturedQueries Slack data using natural language
List ChannelsStandardLists all channels in the workspace
Get Channel MembersStandardReturns members of a specific channel
List UsersStandardLists all users in the workspace

Get Channel Messages

Returns the message history of the specified channel. It is used in workflows for monitoring channel activity, reporting, or data analysis.

Parameters

ParameterRequiredDescription
ConnectionYesThe Slack connection to use
Channel IDYesID of the channel whose messages will be retrieved, such as C01234ABCDE
LimitNoMaximum number of messages to return

How to Find the Channel ID

Right-click the relevant channel in Slack and open View Channel Details; the Channel ID is shown at the bottom of the page.

Alternatively, you can use the id field from the output of the List Channels operation.

Example Output

{
"messages": [
{
"ts": "1717200000.000100",
"user": "U01234ABCDE",
"text": "Today’s sprint meeting is at 14:00.",
"type": "message"
}
]
}

Send Message

Sends a Slack message to the specified channel or user. It is used in notification, alert, and report-sharing workflows.

Parameters

ParameterRequiredDescription
ConnectionYesThe Slack connection to use
Channel ID or NameYesChannel ID or name where the message will be sent, such as C01234ABCDE or #general
MessageYesMessage text to send

Usage Note

When entering a channel name, you can include the # symbol or only write the name, such as general.

To send a direct message to a user, use the user’s @ name or User ID.

Example Output

{
"ok": true,
"channel": "C01234ABCDE",
"ts": "1717200100.000200",
"message": {
"text": "The daily report is ready.",
"type": "message"
}
}

Search Messages

Searches messages across all channels in the Slack workspace by keyword. It is used in content research and historical message query scenarios.

Parameters

ParameterRequiredDescription
ConnectionYesThe Slack connection to use
Search QueryYesKeyword or phrase to search for
CountNoMaximum number of results to return

Usage Note

Search is limited to channels accessible by the bot token. This operation does not work without the search:read scope.

Example Output

{
"messages": {
"matches": [
{
"channel": {
"id": "C01234ABCDE",
"name": "general"
},
"ts": "1717100000.000100",
"text": "The sprint review meeting has been canceled.",
"username": "ahmet.yilmaz"
}
],
"total": 1
}
}

Slack AI Assistant

Queries Slack workspace data using natural language. It is ideal for accessing channel and message analysis without writing complex search queries.

Parameters

ParameterRequiredDescription
ConnectionYesThe Slack connection to use
QueryYesSlack query written in natural language
System PromptNoSystem instruction that customizes the AI assistant’s behavior

Usage Example

Query: "What topic was discussed the most in the #support channel this week?"

System Prompt: "Consider only messages from the last 7 days. Summarize the results in Turkish and as bullet points."


List Channels

Returns the list of all channels in the Slack workspace. It is used to discover Channel IDs and select channels dynamically.

Parameters

ParameterRequiredDescription
ConnectionYesThe Slack connection to use
LimitNoMaximum number of channels to return
Exclude ArchivedNoIf enabled, archived channels are excluded from results

Example Output

{
"channels": [
{
"id": "C01234ABCDE",
"name": "general",
"is_private": false,
"num_members": 45
},
{
"id": "C09876ZYXWV",
"name": "support",
"is_private": false,
"num_members": 12
}
]
}

Get Channel Members

Returns the member list of a specific channel as User IDs. It is used in channel-based notification and member management workflows.

Parameters

ParameterRequiredDescription
ConnectionYesThe Slack connection to use
Channel IDYesID of the channel whose members will be retrieved

Example Output

{
"members": [
"U01234ABCDE",
"U09876ZYXWV",
"U05555MNOPQ"
],
"response_metadata": {
"next_cursor": ""
}
}

List Users

Returns the list of all users in the Slack workspace. It is used for synchronizing user information and discovering User IDs.

Parameters

ParameterRequiredDescription
ConnectionYesThe Slack connection to use
LimitNoMaximum number of users to return

Example Output

{
"members": [
{
"id": "U01234ABCDE",
"name": "ahmet.yilmaz",
"real_name": "Ahmet Yılmaz",
"profile": {
"email": "ahmet@company.com",
"display_name": "Ahmet"
},
"is_bot": false
}
]
}

Quick Start Examples

Example 1: Daily Summary Report

A workflow that summarizes messages from a specific channel every day and sends the summary to another channel:

Schedule (Every day at 09:00) → Get Channel Messages → LLM (summarize) → Send Message

Get Channel Messages settings:

  • Channel ID: C01234ABCDE channel to monitor
  • Limit: 100

Send Message settings:

  • Channel ID or Name: #management-summary
  • Message: {{llm.output}}

Example 2: Support Request Notification

A workflow that alerts the relevant team on Slack when a new support request arrives:

Webhook (new ticket trigger) → LLM (format message) → Send Message

Send Message settings:

  • Channel ID or Name: #support-team
  • Message: {{llm.output}}

Example 3: Channel Analysis with Slack AI

A chatbot that answers questions asked by the user in natural language using Slack data:

Text Input → Slack AI Assistant → Text Output

Slack AI Assistant settings:

  • Query: {{input.text}}
  • System Prompt: "You are an internal company assistant. Use only data from Slack channels. Keep your answers short and in Turkish."

Example 4: New Member Welcome Message

A workflow that automatically sends a welcome message when a new member joins a channel:

Webhook (channel membership trigger) → List Users → LLM (personalized message) → Send Message

Send Message settings:

  • Channel ID or Name: #general
  • Message: {{llm.output}}

Common Errors

ErrorPossible CauseSolution
invalid_authToken is invalid or revokedCreate a new Bot Token from the Slack App page and update the SkyStudio connection
missing_scopeToken does not have the required permission scopeAdd the required scope from Slack App → OAuth & Permissions and reinstall the app
channel_not_foundIncorrect Channel ID or the bot is not in the channelFind the correct ID using List Channels and add the bot to the channel with /invite @botname
not_in_channelBot is not a member of the target channelAdd the bot to the channel in Slack using /invite @botname
ratelimitedSlack API rate limit exceededAvoid sending too many requests in a short time; reduce workflow frequency
Empty membersBot does not have permission in the channel or the channel is emptyCheck that the bot token has the channels:read and users:read scopes

Notes

  • The bot token (xoxb-) can only read channels where the bot is a member. To add the bot to relevant channels, use the /invite @botname command in Slack.
  • When the Exclude Archived parameter is set to true, archived channels are not listed. This improves performance in large workspaces.
  • Slack API is subject to a rate limit of 50 requests per minute, Tier 3. In workflows that retrieve many messages, use the Limit parameter to keep the number of requests under control.
  • The Search Messages operation requires the search:read scope. This permission is not included by default and must be added separately from Slack App settings.
  • The user list may also include bot users with is_bot: true. You can process the results with an LLM or If-Else node to filter human users.