
Slack
Team communication and messaging platform
✅ Ready📖 Documentation Available
Overview
The Slack connector syncs conversations from Slack — channels, messages, thread replies, shared files, and shared links — into PipesHub so they become searchable and available to agents. Slack ships as two separate connectors. Pick the one that matches how you want data brought in:Both connectors can run side by side. The team connector gives the organization shared channel history; the individual connector adds each user’s DMs and private conversations, visible only to them.
What gets synced
Messages posted close together are grouped into short conversational bursts before indexing, so a back-and-forth exchange is retrieved as one coherent piece of context rather than isolated one-liners.
Configuration Guide
Team Setup
Team Setup
Overview
The Slack Workspace connector syncs public and private channels for your entire organization using a Slack app installed in your workspace. It authenticates with a Bot User OAuth Token, so there is no per-user sign-in.Prerequisites
- Permission to create and install a Slack app in your workspace (a workspace owner or admin may need to approve the installation).
- PipesHub administrator access to Workspace Settings → Connectors.
Authentication
The connector uses a Bot Access Token (xoxb-…). You create a Slack app, grant it bot scopes, install it into your workspace, and paste the resulting token into PipesHub.How to configure and enable the Slack Workspace connector
Step 1: Create a Slack app
- Go to the Slack API app dashboard and sign in.
- Click Create New App.

Step 2: Start from a blank app
In the Create new app dialog, under Or start your own way, choose Blank app, then click Continue.
Step 3: Name the app and pick the workspace
Enter an App name (for exampleslack-app), select the Workspace you want to sync, and click Create.
Step 4: Add Bot Token Scopes
- In the left sidebar, open OAuth & Permissions.
- Scroll to Scopes → Bot Token Scopes and click Add an OAuth Scope.
- Add every scope below:

What each group of scopes is used for:
channels:*/groups:*— read public and private channel metadata and message historychannels:join— lets the bot join public channels on its own, so you don’t have to invite it to each oneim:*/mpim:*— read DM and group-DM metadatausers:read,users:read.email,users.profile:read— map Slack users to PipesHub accounts by email, and resolve@mentionsto namesfiles:read— fetch files shared in messagesusergroups:read,usergroups.users:read— sync Slack user groups and their members
Step 5: Install the app to your workspace
Still on OAuth & Permissions, scroll to OAuth Tokens and click Install to <your workspace>.
Step 6: Review and allow the requested permissions
Confirm the workspace, review the requested permissions, and click Allow.
If your workspace requires admin approval for apps, the request is sent to a workspace owner. Installation finishes once they approve it.
Step 7: Copy the Bot User OAuth Token
Back on OAuth & Permissions, copy the Bot User OAuth Token — it starts withxoxb-.
Step 8: Configure the connector in PipesHub
- Navigate to Workspace Settings → under Workspace in the sidebar → Connectors.

- Find the Slack Workspace connector and click + Setup.
- On the Authenticate Instance tab:
- Enter an Instance name (for example
Slack Workspace). - Paste the Bot Access Token from Step 7.
- Click Next →.
- Enter an Instance name (for example

Step 9: Configure records and save
On the Configure Records tab, choose your Sync Strategy (Scheduled or Manual) and adjust the sync and indexing filters. See Connector Settings for what each filter does. Click Save Configuration.
Step 10: Start syncing
Once PipesHub confirms the instance is ready, you can start the sync immediately or start it later from the instance card.
Channel access for the bot
- Public channels — the bot joins them on its own thanks to the
channels:joinscope, so no manual action is needed. - Private channels — Slack never grants an app access automatically. Invite the bot from inside each private channel you want synced:
slack-app with the name you gave the app in Step 3.DMs and group DMs are not synced by the team connector, even though the bot holds
im:* and mpim:* scopes. Use the Individual Setup if you need personal conversations indexed.Individual Setup
Individual Setup
Overview
The Slack connector syncs your own Slack view — public and private channels you are a member of, your direct messages, and your group DMs. Records synced this way are visible only to you in PipesHub.Prerequisites
- Permission to create a Slack app in your workspace (some workspaces require admin approval before an app can be installed).
- A PipesHub account whose email matches the Slack account you will authorize with.
Authentication
This connector uses OAuth 2.0 with a user token (xoxp-…). You create a Slack app, register PipesHub’s callback URL, request user token scopes, then sign in from PipesHub to authorize it.If an administrator has already registered a Slack OAuth app in PipesHub, you can select that saved app on the configuration screen and skip Steps 2 to 7 — go straight to authorizing.
How to configure and enable the Slack connector
Step 1: Copy the Redirect/Callback URL from PipesHub
- Navigate to Workspace Settings → under Personal in the sidebar → Your Connectors.

- You will see the list of connectors available for Individual Setup.

- Find Slack, click + Setup, and on the Authenticate Instance tab set the Authentication method to OAuth 2.0.
- Copy the Redirect/Callback URL shown on that screen — you will paste it into Slack in Step 5.

The URL follows the pattern
https://your-frontend-dns/connectors/oauth/callback/Slack. Always copy the exact value from your own instance rather than typing it from memory.Step 2: Create a Slack app
Go to the Slack API app dashboard, click Create New App, choose Blank app, then give the app a name (for exampleslack-personal-app) and select your workspace.

Step 3: Add the Redirect URL in Slack
- In the left sidebar, open OAuth & Permissions.
- Under Redirect URLs, click Add New Redirect URL and paste the URL you copied in Step 1.
- Click Add, then Save URLs.

Planning to use the Slack toolset as well? It has its own callback path (
.../toolsets/oauth/callback/Slack). Add that URL here too so both can authorize against the same Slack app.Step 4: Add User Token Scopes
On the same OAuth & Permissions page, scroll to Scopes → User Token Scopes and add every scope below.
Step 5: Install the app to your workspace
Scroll to OAuth Tokens, click Install to <your workspace>, and click Allow on the permission screen. This makes the app available for the OAuth sign-in you’ll run from PipesHub.
Step 6: Copy the Client ID and Client Secret
Open Settings → Basic Information and, under App Credentials, copy the Client ID and the Client Secret (click Show to reveal it).
Step 7: Enter the credentials in PipesHub
Return to the Slack Configuration dialog and fill in:Confirm the Redirect/Callback URL still matches what you added in Slack, then click Next →.

Step 8: Authorize with Slack
On the Authorize tab, click Authenticate Slack to Proceed. Sign in to Slack and click Allow on the consent screen. When authorization succeeds, click Continue to configuration →.
Step 9: Configure records and save
On Configure Records, set your Sync Strategy and adjust the sync and indexing filters — including whether direct messages and group direct messages are indexed. See Connector Settings for details. Click Save Configuration, then start the sync now or later.Connector Settings
Connector Settings
Sync Settings
Sync settings control how the connector pulls data from Slack.Sync Strategy:- Scheduled — the connector syncs automatically at the configured interval.
- Manual — the connector syncs only when the sync is triggered from the connector settings page.
Sync Filters
Sync filters control which conversations are fetched from Slack. Anything excluded here is never fetched, so it never becomes a record.Channel
Include or exclude specific channels. The list is populated from your Slack workspace, so you can pick channels by name and use either an is any of (include) or is none of (exclude) operator.Channel Types
Filter by conversation type.- Slack Workspace (Team):
public_channelandprivate_channel. DMs and group DMs are not synced by the team connector. - Slack (Individual): public channel, private channel, Direct Messages, and Group Direct Messages.
Sync Messages From
How far back to reach on the initial sync — for exampleLast 30 Days (the default), or Is After with a specific date. Later syncs are incremental and pick up from where the last successful run stopped, so this window only applies the first time a channel is synced.A wider window means a longer first sync. Start narrow if your workspace has years of history, then widen it later if you need more.
Enable Manual Indexing
When enabled, records are synced but not indexed automatically. They won’t appear in search results until you index them explicitly from the All Records section — go to a record, click the 3 dots → Start Indexing.Indexing Filters
Indexing filters control which synced records are made searchable. Unlike sync filters, they don’t stop content from being fetched — the records still exist in PipesHub, but their indexing status is set to Manual Indexing and they can be indexed later from All Records.Index Messages
When disabled, synced channel messages are not indexed for search by default.Index Threads
When disabled, thread replies are not indexed for search by default.Index Bot Messages
Slack Workspace (Team) only. Controls messages posted by bots and apps. When disabled, standalone bot messages — and threads whose parent message was posted by a bot — are skipped.Index Direct Messages
Slack (Individual) only. When disabled, 1:1 direct messages are not indexed for search by default.Index Group Direct Messages
Slack (Individual) only. When disabled, group direct messages are not indexed for search by default.Index Files
When disabled, files shared in messages are not indexed for search by default.Index Links
When disabled, links shared in messages are not indexed for search by default.Data sync behavior
Synchronization process
Synchronization process
Initial sync
Runs in phases: users (and, for the team connector, user groups) → channels → messages, files, and links per channel → thread replies. How long it takes depends on how many channels you sync and how far back Sync Messages From reaches.Incremental sync
Each channel keeps its own checkpoint, so later runs fetch only messages posted since that channel’s last successful sync. Threads are checked separately, so replies added to an older conversation are still picked up.What incremental sync does not catch
Slack’s history API returns messages by the time they were created, not the time they were last modified. Edits to a message older than the current sync window aren’t detected — the connector sees new messages and new thread replies, not retroactive edits.Rate limits
Slack rate-limits its API per method. The connector paces its own calls to stay under those limits, which is why large workspaces sync gradually rather than all at once.Troubleshooting
Troubleshooting
Troubleshooting
Common issues
not_in_channel / a private channel isn’t syncing (Team)- Slack apps have no automatic access to private channels. Invite the bot from inside the channel with
/invite @your-app-name, then run the sync again.
missing_scope- A required scope wasn’t granted. Add it in OAuth & Permissions, then reinstall the app — scope changes only take effect after reinstalling.
bad_redirect_uri or redirect_uri_mismatch (Individual)- The Redirect URL in Slack must match the one in PipesHub exactly, including scheme, host, port, and path.
invalid_auth / token_revoked / token_expired- Signed in with Slack, with token rotation on: on
invalid_authortoken_expired, PipesHub renews the token and retries the call once. You still see these errors if Slack refuses the retry too. You also seeinvalid_authwithout a new renewal if the token was renewed less than a minute earlier, because a newer token wouldn’t help. If they keep appearing, re-run authorization from the Authorize tab. See Token rotation below. token_expiredon a pasted token: the token comes from a Slack app with token rotation on, and it has reached its 12-hour expiry. A new token from the same app will expire again, so follow Token rotation below: use an app with rotation left off, or connect the Individual connector with Slack sign-in.token_revoked, orinvalid_authon a pasted token: the token was regenerated or the app was uninstalled. For the Workspace connector, paste the new Bot User OAuth Token. For the Individual connector, paste the new user token if you use the API token option, or re-run authorization from the Authorize tab if you signed in with Slack.
- PipesHub accepts bot tokens (
xoxb-…) and user tokens (xoxp-…), and, for apps with token rotation turned on, the rotating formsxoxe.xoxb-…andxoxe.xoxp-…. A token that starts with justxoxe-is a refresh token, which can’t call Slack; paste the access token from OAuth & Permissions instead.
- Signed in with Slack (Individual connector, OAuth): rotation is supported. PipesHub renews the token before it expires and saves the new refresh token each time, so you don’t need to do anything. If a renewal is missed, the connector renews the token on the next call to Slack and retries that call once.
- Pasted token (Workspace connector, or the API token option of the Individual connector): a pasted token has no refresh token, so PipesHub can’t renew it, and syncing stops about 12 hours after you paste it. The connector logs that the pasted token has expired. Use a Slack app with token rotation left off for pasted tokens. Slack doesn’t let an app turn rotation off once it’s on, so if yours has it on, create a new app without it, or connect the Individual connector with Slack sign-in instead.
- The individual connector needs a user token (
xoxp-…). Confirm the scopes were added under User Token Scopes, not Bot Token Scopes, and authorize again.
- Members without an email address on their Slack profile are skipped, because PipesHub matches people by email. Bots are cached for mention resolution but are not created as users.
- Check Sync Messages From. On a first sync, anything older than that window is deliberately skipped.
FAQ
Which should I use — Slack Workspace or Slack?
Which should I use — Slack Workspace or Slack?
Use Slack Workspace when an administrator wants channel history available across the organization, with permissions mirroring Slack’s own channel membership. Use Slack (Individual) when a user wants their own view indexed, including DMs and group DMs, visible only to them.They aren’t mutually exclusive — running both gives shared channel history plus personal conversations.
What's the difference between the Slack Connector and the Slack Toolset?
What's the difference between the Slack Connector and the Slack Toolset?
Example: Use the Slack Connector to search what a team decided last quarter. Use the Slack Toolset to let an agent post the answer back into a channel.
Does the connector post anything to Slack?
Does the connector post anything to Slack?
No. The connector is read-only — it reads channels, messages, files, and links. The only write-like action is the bot joining public channels so it can read their history, which requires the
channels:join scope.Queries not returning results. What could be wrong?
Queries not returning results. What could be wrong?
There are three common causes:
-
Email mismatch — the email used during authentication doesn’t match your PipesHub account email, which causes permission issues on synced data.
- Fix: Reconfigure the connector and authenticate with the same email as your PipesHub account.
-
Records show in “All Records” but not in search — indexing hasn’t run for those records.
- Fix: Check whether Enable Manual Indexing is on, or whether the relevant indexing filter (messages, threads, files, links) is disabled. Index the records manually from All Records if needed.
-
Data not yet synced or indexed — the connector is still working through the initial sync.
- Fix: Go to Settings → Connectors, check the sync status, and wait for indexing to complete.
Ready to get started?
Connect Slack to PipesHub for unified search across your conversations. Follow the configuration guide above for your setup type (Team or Individual), or reach out to our support team if you need assistance.