Skip to content
All connectors
Slack logo

Slack

Messaging, collaboration & support

Send the right update through Slack at the right moment, with a person approving what reaches customers.

24 ways to read, 12 ways to write, each write switched on by you.

Quality checks

Built and tested with example responses.

  1. Ready to connect: doneEvery listed action is built in.
  2. Built and tested with example responses: doneEach action is built from the provider’s published API and tested against example responses, errors, rate limits and paging.
Slack with Nexra

Connected, approved, proven.

The things teams do most with Slack, an example flow with a person in the loop, and what Nexra keeps as proof.

Top actions

  • Add channel bookmarkApproval by rule
  • Create canvasApproval by rule
  • List channel bookmarksRead

Example flow

  1. BambooHR · Read employee directoryDone
  2. Slack · Create Slack user (SCIM)Needs approval
  3. Nexra · Record the decision and result in the evidence chainProven

Example workflow. Routine runs go through on their own. Only a change your rules flag, such as one over a limit you set, waits for the right person, who sees the exact change and the rule before it reaches Slack.

What gets logged

  • Whether it ran on its own or who approved it, and under which rule
  • A fingerprint of the exact request sent to Slack
  • Slack's reply: what it created or changed
  • One entry in the evidence chain, linked to the one before

Try this in the sandbox

Run the whole flow with test data in your sandbox, then connect a Salesforce test account before you go live.

For developers

Technical detail

Read Slack channels, messages, threads, pins, users, profiles, user groups, files and team info; search with a user token; post, update and schedule messages, react, create channels and canvases.

Salesforce API docs
Source actions
24
Destination actions
12
Data types
22

What you can map

Reads are always available. Writes are off until you switch them on for a connection, and governed writes follow your policies.

Auth1
  • Check bot identitySource

    Workspace and bot identity for the token (auth.test).

Bookmarks2
  • Add channel bookmarkDestinationNot retried automaticallyApproval before production

    Adds a link bookmark to a channel.

  • List channel bookmarksSource

    Bookmarks pinned to a channel's header.

Canvases2
  • Create canvasDestinationNot retried automaticallyApproval before production

    Creates a canvas from markdown, optionally attached to a channel.

  • Replace canvas contentDestinationProvider duplicate protectionApproval before production

    Replaces the entire canvas content with new markdown (canvases.edit replace).

Conversation members2
  • Invite users to channelDestinationProvider duplicate protectionApproval before production

    Invites up to 100 users to a channel.

  • List channel membersSource

    User IDs of the members of a channel.

Conversations3
  • Create channelDestinationProvider duplicate protectionApproval before production

    Creates a public or private channel. Channel names are unique per workspace.

  • Get channelSource

    Channel details including topic, purpose and member count.

  • List channels and conversationsSource

    Public and private channels, DMs and group DMs visible to the bot.

Direct messages1
  • Open direct messageDestinationProvider duplicate protectionApproval before production

    Opens (or returns the existing) direct or group DM with users; post to the returned channel ID.

Ephemeral messages1
  • Post ephemeral messageDestinationNot retried automaticallyApproval before production

    Posts a message only one user in the channel can see.

Files3
  • Get file metadataSource

    Metadata for one file (files.info); contents are not downloaded.

  • List filesSourceIncremental

    File metadata, optionally filtered by channel, user, type and time.

  • Search filesSource

    Searches file metadata the user token can see (search.files, a legacy Slack method).

Messages5
  • Get messageSource

    One channel message by timestamp (conversations.history bounded to that timestamp).

  • List channel messagesSourceIncremental

    Channel history, newest first, optionally bounded by time.

  • Search messagesSource

    Searches messages the user token can see, with Slack search modifiers such as in:#channel, from:@user and after:2024-01-01 (search.messages).

  • Post messageDestinationNot retried automaticallyApproval before production

    Posts a message to a channel or DM, optionally as a thread reply.

  • Update messageDestinationProvider duplicate protectionApproval before production

    Edits a message the app posted, identified by channel and timestamp.

Pins1
  • List pinned itemsSource

    Messages and files pinned to a channel.

Reactions1
  • Add reactionDestinationProvider duplicate protectionApproval before production

    Adds an emoji reaction to a message.

Scheduled messages1
  • Schedule messageDestinationNot retried automaticallyApproval before production

    Schedules a message for delivery up to 120 days ahead.

Team profile fields1
  • List profile fieldsSource

    The workspace's custom profile field definitions (team.profile.get).

Team1
  • Get workspaceSource

    Workspace name, domain, email domain and enterprise (team.info).

Thread replies1
  • List thread repliesSource

    The parent message and replies of a thread.

User conversations1
  • List a user's conversationsSource

    Channels and conversations a member (or the bot, when no user is given) belongs to (users.conversations).

User email lookups1
  • Find user by email (private)Source

    Looks up a member by email address with users.lookupByEmail, sending the email in a form-encoded POST body so it never appears in a URL.

User group members1
  • List user group membersSource

    User IDs in a user group (usergroups.users.list).

User groups1
  • List user groupsSource

    User groups (handles) with member IDs.

User presence1
  • Get user presenceSource

    Whether a member is active or away (users.getPresence).

User profiles1
  • Get user profileSource

    A member's full profile including status and custom profile fields (users.profile.get).

Users4
  • Create Slack user (SCIM)DestinationProvider duplicate protectionApproval before production

    Creates an active Slack account for a new starter through Slack's SCIM API, with their work email, name and title. Slack emails them an invitation to sign in.

  • Get userSource

    One user by ID.

  • List usersSource

    Workspace members including bots and deactivated users.

  • Find user by emailSource

    Looks up a member by email address (users.lookupByEmail).

Access and limits

Authentication
Bot user OAuth token (xoxb-), optional user token (xoxp-) for search
Plans and access
All Slack plans, including Free (Free workspaces only show 90 days of history). A bot token only sees channels the app is a member of; private channels and DMs need the app to be invited. Workspace admins may need to approve the app.
Test environment
Use a free workspace or a Slack developer sandbox from the Slack Developer Program.
Rate limits
Per-method tiers (Tier 1: 1+/min to Tier 4: 100+/min); chat.postMessage allows about one message per second per channel. HTTP 429 with Retry-After. Non-Marketplace apps created after May 2025 are limited to 1 request/min and 15 messages for conversations.history and conversations.replies.
Pagination
Cursor pagination with response_metadata.next_cursor; files.list uses page numbers.
Provider events
Events API (message, reaction, channel and user events). Flows can start the moment something happens: when a new message is posted in a channel the app is in; when someone mentions the app; when someone adds a reaction; when someone joins a channel.

Before you build a flow

  • Slack has no idempotency key for chat.postMessage, chat.scheduleMessage, chat.postEphemeral, bookmarks.add or canvases.create; uncertain sends are not repeated automatically.
  • Message and file search (search.messages, search.files) only accept a user token (xoxp-) with search:read; add the optional user token to use them. Results are what that user can see, are limited to 100 pages of up to 100 matches, and Slack lists search.files as a legacy method.
  • users.lookupByEmail and email fields need users:read.email; Slack omits email when an admin hides it.
  • Get message reads conversations.history bounded to one timestamp, so it returns channel (top-level) messages only; use List thread replies for replies.
  • Pins, bookmarks, files and team data are read-only here apart from Add channel bookmark; pins.add, pins.remove, bookmarks.edit and bookmarks.remove are not implemented.
  • No direct-message broadcast, chat.postMessage fan-out to many channels, admin.* methods, conversations.kick, conversations.archive or any delete method are implemented.
  • File metadata is read; file contents are not downloaded or uploaded.
  • Deleting messages, channels, bookmarks and canvases, and archiving channels, are not implemented.
  • Slack returns most errors as HTTP 200 with ok:false; Nexra classifies the error code (invalid_auth, missing_scope, channel_not_found, ratelimited and others).

Developer reference

  1. Create the Salesforce credentials described above with the narrowest permissions your flows need.
  2. In Nexra, open Connect, then Connections, then New connection, choose Slack, enter its settings and credentials, and tick only the write actions you need. Connection guide
  3. Test the connection, then use its actions as flow sources and destinations. Flow guide

Machine-readable detail: GET /api/public/connect/connectors/slack and the Connections API.