GoRunner docs
Search or askSearch⌘K

Slack

Post, schedule, update and search messages, manage channels, upload files, react, and look up users and user groups in Slack.

48 actions · 1 trigger · Sign in with Slack

Connect Slack

  1. In the sidebar, open Connections and press Add connection.
  2. Type slack and choose Slack.
  3. Choose Sign in with Slack.
  4. Press Sign in with Slack at the bottom of the sheet, then choose your account in Slack’s window and allow access.

Or choose Paste your bot or user token, paste it, and press Test and save. It stays until someone deletes it.

Sign in with Slack, or paste a token from your own Slack app (api.slack.com/apps → your app → OAuth & Permissions): the Bot User OAuth Token (xoxb-…) for most operations, or a User OAuth Token (xoxp-…) for searching messages, stars and setting a profile. Add the app to each private channel it should use. The app’s Signing Secret (Basic Information → App Credentials) is optional: steps do not use it.

What if it says “Sign-in isn’t set up here yet”?

Signing in with Slack needs a Slack app on this installation, and it has none yet. Until it is set up, Paste your bot or user token works without it.

On Cloud: The sheet says “It’s set up once for everyone who uses this service, not by an organization.”

Self-hosted: An admin of the installation sees Set up Slack sign-in instead, and sets it up once for everyone. Everyone else sees who to ask.

  1. Create an app in Slack’s developer settings (Slack’s guide).
  2. In GoRunner, copy the Redirect address to add in Slack’s developer settings, and add it to the app.
  3. Paste the Client ID and Client secret, then press Save and sign in.

Set up a sign-in app

Can I use my own Slack app?

Yes. In the sheet, open Use your own Slack app and paste its Client ID and Client secret. Add the redirect address it shows to your app first. The connection then signs in through your app instead of the installation’s.

Connections says how to sign in again, rename or delete it. In a product that embeds GoRunner, Add connection can be missing: then your provider makes connections for you.

Start a workflow

Add a trigger and choose Slack. The trigger uses the same connection as the steps.

On Slack Event

Starts a run for each Slack event in the connection's workspace that you pick below (within seconds; nothing is polled). Signed in with Slack: nothing to set up, but the app only sees channels it was added to (invite it with /invite). With your own Slack app (a pasted token or your app's client ID): put the app's Signing Secret in the connection, publish, then paste the Request URL shown on this trigger into the app's Event Subscriptions once and subscribe it to the bot events you need (message.channels, message.im, app_mention, reaction_added …). Every delivery is checked against the Signing Secret and an unsigned or stale one is refused. A retried event starts no second run; messages from bots are ignored unless you turn that off.

Trigger On · Required

Which events start a run. Your own Slack app must be subscribed to them as well; App mentioned needs the app_mentions:read permission.

Options: Any event to Member's profile changed (18 options).

Only in Channel · Optional

Start runs only for events in this channel. Empty: the whole workspace.

Ignore Bot Messages · Optional

Skip messages sent by bots, this app's own included, so a reply cannot start the workflow again.

On by default.

Ignore People · Optional

User IDs (U…), separated by commas, whose events start nothing.

A later step can use its data, such as {{trigger.channel}}, {{trigger.event_id}}, {{trigger.event_time}} and 5 more. See Use data from earlier steps.

Do things in Slack

Add a Slack step, choose a Resource, then an Operation. Choose a row to see its fields.

Later steps read a step’s output by its name: see Use data from earlier steps.

Limits

  • A reply from Slack can be up to 16 MB (a file download can have its own limit). A larger one fails the step; it is never cut short.
  • When Slack says to slow down (429), the step waits as long as it asks, if the step’s time allows. Otherwise it fails and says when to try again.

Not in your list? See When an app isn’t here.

For developers

In the API, which calls apps pieces, Slack is pieceId: "slack" with actionId: "slack", set by resource and an operation_… field, such as operation_channel. Its trigger is slacktrigger / slack_event. Get an app returns every field.

It can change something outside the run (writes_external). See How versions and side effects work.

Slack › Message

Send

Send To · Optional

A channel, or a person (the app's direct message with them).

Options: Channel, User.

Default: Channel.

Channel · Required

The channel. Pick one, or paste its ID (C…) or link.

Shows when Send To isn’t User.

User · Required

The person. Pick one, or paste their user ID (U…).

Shows when Send To is User.

Message Type · Optional

Plain Slack text (mrkdwn), Markdown, Block Kit blocks, or legacy attachments.

Options: Text, Markdown, Blocks, Attachments (legacy).

Default: Text.

Text · Optional

The message (Slack's mrkdwn, or Markdown when Message Type is Markdown). With blocks or attachments it is the notification text.

Attachments · Required

Legacy attachments, such as [{"color": "#36a64f", "title": "Order #1042", "text": "Shipped"}].

Shows when Message Type is Attachments (legacy).

Blocks · Required

Block Kit blocks: a list, or what Block Kit Builder copies ({"blocks": [...]}), up to 50. For example, [{"type": "section", "text": {"type": "mrkdwn", "text": "*Order #1042* shipped"}}].

Shows when Message Type is Blocks.

Reply in Thread · Optional

The ts (or link) of the thread's first message, to reply in its thread.

Also Send to Channel · Optional

Show the thread reply in the channel too.

Off by default.

Unfurl Links · Optional

Show previews of links in the text (Slack's default: on for bots' text-only messages).

Unfurl Media · Optional

Show previews of images and videos.

Link User Groups · Optional

Turn @group names in the text into mentions.

Off by default.

Send As (Name) · Optional

Post under this name instead of the app's.

Icon Emoji · Optional

Post with this emoji as the picture.

Icon URL · Optional

Post with this image as the picture.

Only Visible To One Person · Optional

Post in the channel so that only the person below sees it (it is not kept in history).

Off by default.

Shows when Send To isn’t User.

Visible To · Required

The person. Pick one, or paste their user ID (U…).

Shows when Only Visible To One Person is on.

Send and Wait for Approval

Send To · Optional

A channel, or a person (the app's direct message with them).

Options: Channel, User.

Default: Channel.

Channel · Required

The channel. Pick one, or paste its ID (C…) or link.

Shows when Send To isn’t User.

User · Required

The person. Pick one, or paste their user ID (U…).

Shows when Send To is User.

Message · Required

What the person is asked to decide (Slack mrkdwn). Its first line is the title the run page shows.

Buttons · Optional

Approve and Reject, or a single Approve button when the only useful answer is yes.

Options: Approve and Reject, Approve only.

Default: Approve and Reject.

Approve Button Label · Optional

Default: Approve.

Reject Button Label · Optional

Default: Reject.

Shows when Buttons isn’t Approve only.

Auto-continue after (timeout) · Optional

Resume automatically after this long if nobody answers (0 = wait indefinitely). Then status is "timed_out": branch on status == "approved".

Default: 0.

Timeout Unit · Optional

Options: Seconds, Minutes, Hours, Days.

Default: Hours.

Public Base URL · Optional

This installation's public address, for the buttons' links. Defaults to PUBLIC_API_URL. It must open for the person deciding: a link on localhost is one nobody can answer.

Reply in Thread · Optional

The ts (or link) of the thread's first message, to reply in its thread.

Update

Channel · Required

The channel. Pick one, or paste its ID (C…) or link.

Shows when Send To isn’t User.

Message · Required

The message's ts (such as 1730450000.123456, from the step that posted it) or its link (⋯ → Copy link).

Message Type · Optional

Plain Slack text (mrkdwn), Markdown, Block Kit blocks, or legacy attachments.

Options: Text, Markdown, Blocks, Attachments (legacy).

Default: Text.

Text · Optional

The message (Slack's mrkdwn, or Markdown when Message Type is Markdown). With blocks or attachments it is the notification text.

Attachments · Required

Legacy attachments, such as [{"color": "#36a64f", "title": "Order #1042", "text": "Shipped"}].

Shows when Message Type is Attachments (legacy).

Blocks · Required

Block Kit blocks: a list, or what Block Kit Builder copies ({"blocks": [...]}), up to 50. For example, [{"type": "section", "text": {"type": "mrkdwn", "text": "*Order #1042* shipped"}}].

Shows when Message Type is Blocks.

Also Send to Channel · Optional

Show the thread reply in the channel too.

Off by default.

Link User Groups · Optional

Turn @group names in the text into mentions.

Off by default.

Delete and Get Permalink

Channel · Required

The channel. Pick one, or paste its ID (C…) or link.

Shows when Send To isn’t User.

Message · Required

The message's ts (such as 1730450000.123456, from the step that posted it) or its link (⋯ → Copy link).

Search

Search Query · Required

What to find, with Slack's modifiers: in:#channel from:@person before:2026-11-01 has:link ….

Sort By · Optional

Options: Best match, Time.

Default: Best match.

Order · Optional

Options: Newest or best first, Oldest or worst first.

Default: Newest or best first.

Return All · Optional

Read every message, page by page (at most 1000; past that the step fails rather than stop early).

Off by default.

Limit · Optional

How many messages to return (1–1000).

Default: 50.

Shows when Return All is off.

Schedule

Send To · Optional

A channel, or a person (the app's direct message with them).

Options: Channel, User.

Default: Channel.

Channel · Required

The channel. Pick one, or paste its ID (C…) or link.

Shows when Send To isn’t User.

User · Required

The person. Pick one, or paste their user ID (U…).

Shows when Send To is User.

Message Type · Optional

Plain Slack text (mrkdwn), Markdown, Block Kit blocks, or legacy attachments.

Options: Text, Markdown, Blocks, Attachments (legacy).

Default: Text.

Text · Optional

The message (Slack's mrkdwn, or Markdown when Message Type is Markdown). With blocks or attachments it is the notification text.

Attachments · Required

Legacy attachments, such as [{"color": "#36a64f", "title": "Order #1042", "text": "Shipped"}].

Shows when Message Type is Attachments (legacy).

Blocks · Required

Block Kit blocks: a list, or what Block Kit Builder copies ({"blocks": [...]}), up to 50. For example, [{"type": "section", "text": {"type": "mrkdwn", "text": "*Order #1042* shipped"}}].

Shows when Message Type is Blocks.

Post At · Required

When to post: an ISO 8601 date and time (2026-11-08T09:00:00Z) or Unix seconds, at most 120 days ahead.

Reply in Thread · Optional

The ts (or link) of the thread's first message, to reply in its thread.

Also Send to Channel · Optional

Show the thread reply in the channel too.

Off by default.

Unfurl Links · Optional

Show previews of links in the text (Slack's default: on for bots' text-only messages).

Unfurl Media · Optional

Show previews of images and videos.

Link User Groups · Optional

Turn @group names in the text into mentions.

Off by default.

Get Many Scheduled

Channel · Optional

The channel. Pick one, or paste its ID (C…) or link.

Return All · Optional

Read every message, page by page (at most 1000; past that the step fails rather than stop early).

Off by default.

Limit · Optional

How many messages to return (1–1000).

Default: 50.

Shows when Return All is off.

Delete Scheduled

Channel · Required

The channel. Pick one, or paste its ID (C…) or link.

Shows when Send To isn’t User.

Scheduled Message ID · Required

The scheduled_message_id the Schedule step returned.

Slack › Channel

Archive, Close, Get, Join, Leave and Unarchive

Channel · Required

The channel. Pick one, or paste its ID (C…) or link.

Create

Name · Required

Up to 80 lowercase letters, digits, hyphens and underscores.

Visibility · Optional

Options: Public, Private.

Default: Public.

Get Many

Types · Optional

Which kinds of conversations to list.

Options: Public channels, Private channels, Group messages, Direct messages.

Leave Out Archived · Optional

On by default.

Return All · Optional

Read every item, page by page (at most 1000; past that the step fails rather than stop early).

Off by default.

Limit · Optional

How many items to return (1–1000).

Default: 100.

Shows when Return All is off.

History

Channel · Required

The channel. Pick one, or paste its ID (C…) or link.

After · Optional

Only messages after this ts (Unix seconds, such as 1730450000).

Before · Optional

Only messages before this ts.

Include the Bounds · Optional

Also return the messages at exactly After and Before.

Off by default.

Return All · Optional

Read every item, page by page (at most 1000; past that the step fails rather than stop early).

Off by default.

Limit · Optional

How many items to return (1–1000).

Default: 100.

Shows when Return All is off.

Invite

Channel · Required

The channel. Pick one, or paste its ID (C…) or link.

Users · Required

User IDs (U…), separated by commas: up to 1,000 to invite; 1 to 8 for a direct or group message.

Kick

Channel · Required

The channel. Pick one, or paste its ID (C…) or link.

User · Required

The person. Pick one, or paste their user ID (U…).

Get Members

Channel · Required

The channel. Pick one, or paste its ID (C…) or link.

Return All · Optional

Read every item, page by page (at most 1000; past that the step fails rather than stop early).

Off by default.

Limit · Optional

How many items to return (1–1000).

Default: 100.

Shows when Return All is off.

Open

Users · Required

User IDs (U…), separated by commas: up to 1,000 to invite; 1 to 8 for a direct or group message.

Rename

Channel · Required

The channel. Pick one, or paste its ID (C…) or link.

Name · Required

Up to 80 lowercase letters, digits, hyphens and underscores.

Replies

Channel · Required

The channel. Pick one, or paste its ID (C…) or link.

Thread · Required

The message's ts (such as 1730450000.123456, from the step that posted it) or its link (⋯ → Copy link).

After · Optional

Only messages after this ts (Unix seconds, such as 1730450000).

Before · Optional

Only messages before this ts.

Include the Bounds · Optional

Also return the messages at exactly After and Before.

Off by default.

Return All · Optional

Read every item, page by page (at most 1000; past that the step fails rather than stop early).

Off by default.

Limit · Optional

How many items to return (1–1000).

Default: 100.

Shows when Return All is off.

Set Purpose

Channel · Required

The channel. Pick one, or paste its ID (C…) or link.

Purpose · Required

Up to 250 characters.

Set Topic

Channel · Required

The channel. Pick one, or paste its ID (C…) or link.

Topic · Required

Up to 250 characters.

Slack › File

Upload

File · Required

Upload a file, or switch to an expression to use one from an earlier step (such as {{steps.download.result}}). Up to 100 MB.

Channel · Optional

Upload: the channel to share the file in (empty keeps it private to the app). Get Many: only files in this channel.

File Name · Optional

Defaults to the file's own name.

Title · Optional
Message · Optional

Text posted with the file.

Reply in Thread · Optional

The ts (or link) of a thread's first message, to share the file there.

Get

File ID · Required

The file's ID (F…).

Get Many

Channel · Optional

Upload: the channel to share the file in (empty keeps it private to the app). Get Many: only files in this channel.

Uploaded By · Optional

The person. Pick one, or paste their user ID (U…).

Types · Optional

Options: All, Posts, Snippets, Images, Google Docs, Zip files, PDFs.

Default: All.

Return All · Optional

Read every file, page by page (at most 1000; past that the step fails rather than stop early).

Off by default.

Limit · Optional

How many files to return (1–1000).

Default: 50.

Shows when Return All is off.

Slack › Reaction

Add and Remove

Channel · Required

The channel. Pick one, or paste its ID (C…) or link.

Message · Required

The message's ts (such as 1730450000.123456, from the step that posted it) or its link (⋯ → Copy link).

Emoji · Required

The emoji's name, without colons (thumbsup, white_check_mark, or a custom emoji's name).

Get

Channel · Required

The channel. Pick one, or paste its ID (C…) or link.

Message · Required

The message's ts (such as 1730450000.123456, from the step that posted it) or its link (⋯ → Copy link).

Slack › Star

Add and Delete

Item · Optional

Options: Message, File, Channel.

Default: Message.

Channel · Required

The channel. Pick one, or paste its ID (C…) or link.

Shows when Item isn’t File.

File ID · Required

Shows when Item is File.

Message · Required

The message's ts (such as 1730450000.123456, from the step that posted it) or its link (⋯ → Copy link).

Shows when Item is Message.

Get Many

Return All · Optional

Read every star, page by page (at most 1000; past that the step fails rather than stop early).

Off by default.

Limit · Optional

How many stars to return (1–1000).

Default: 50.

Shows when Return All is off.

Slack › User

Get, Get Profile and Get Presence

User · Required

The person. Pick one, or paste their user ID (U…).

Get Many

Return All · Optional

Read every user, page by page (at most 1000; past that the step fails rather than stop early).

Off by default.

Limit · Optional

How many users to return (1–1000).

Default: 100.

Shows when Return All is off.

Find by Email

Email · Required

The person's email address in Slack.

Update Profile

User · Optional

Empty: the person whose token the connection holds. Another person: only a workspace admin's token on a paid plan may.

First Name · Optional
Last Name · Optional
Display Name · Optional
Status Text · Optional

Up to 100 characters. Empty with an emoji below keeps only the emoji.

Status Emoji · Optional

such as :palm_tree:.

Status Until · Optional

When the status clears: ISO 8601 or Unix seconds. Empty: it stays.

Custom Fields · Optional

The workspace's profile fields by id, such as {"Xf06054BBB": {"value": "Berlin", "alt": ""}}.

Slack › User Group

Create

Name · Optional

Required to create.

Handle · Optional

The @handle people mention, without the @.

Description · Optional
Default Channels · Optional

Channel IDs, separated by commas, that new members join.

Disable and Enable

User Group · Required

Pick a user group, or paste its ID (S…).

Get Many

Include Members · Optional

Off by default.

Include Disabled · Optional

Off by default.

Return All · Optional

Read every user group, page by page (at most 1000; past that the step fails rather than stop early).

Off by default.

Limit · Optional

How many user groups to return (1–1000).

Default: 100.

Shows when Return All is off.

Get Users

User Group · Required

Pick a user group, or paste its ID (S…).

Include Disabled · Optional

Off by default.

Update

User Group · Required

Pick a user group, or paste its ID (S…).

Name · Optional

Required to create.

Handle · Optional

The @handle people mention, without the @.

Description · Optional
Default Channels · Optional

Channel IDs, separated by commas, that new members join.

Update Users

User Group · Required

Pick a user group, or paste its ID (S…).

Users · Required

User IDs (U…), separated by commas.

Update · Optional

Set the members to exactly these people, or add them to the members it has.

Options: Set the members to these, Add these to the members.

Default: Set the members to these.