Slack + VectorShift Integration Guide
Introduction
The Slack + VectorShift integration connects Slack to VectorShift so teams can:
- Index Slack content into knowledge bases — channels, messages, and files become searchable context for AI applications
- Automate Slack in pipelines and agents — read, search, send, and manage messages, channels, files, reactions, canvases, user groups, and profiles
- Use the Slack MCP connector — let AI agents search and act on Slack content live through Slack’s hosted Model Context Protocol (MCP) server
VectorShift acts as an orchestration and automation layer on top of Slack, allowing Slack data and actions to be driven by complex logic, signals, and data from across your technology stack.
This integration uses Slack OAuth 2.0 for secure authentication. No API keys are required.
How It Works
VectorShift connects to Slack using Slack OAuth 2.0. A single Slack app (one client ID) powers two complementary flows:
- Integration flow — issues a bot token for app-level actions (knowledge base indexing, channel and message management) and a user token for actions taken on behalf of a specific user.
- MCP connector flow — a confidential OAuth 2.0 flow with PKCE and well-known discovery that issues a user token (
xoxp). This token is used with Slack’s hosted MCP server at https://mcp.slack.com/mcp over JSON-RPC 2.0 (streamable HTTP), where tools are discovered live.
All tokens are:
- Issued by Slack
- Securely stored and encrypted by VectorShift
- Never exposed to end users
The same Slack app serves both flows. The MCP connector requires a user token (xoxp) — Slack’s MCP server rejects bot tokens — while the broader integration uses a bot token (and a user token where an action runs as the user). Every request is scoped to what the relevant token can already do in Slack.
Requirements
- An active Slack account with membership in the relevant workspace
- An active VectorShift account
- Permission to install or use approved apps in your Slack workspace (your Slack admin may need to approve the app)
Authentication
OAuth 2.0
VectorShift uses Slack OAuth 2.0 for secure, token-based authentication.
- No API keys or secrets are created, stored, or managed by users
- Users authorize VectorShift via Slack’s OAuth consent screen
- The integration uses a bot token for app-level actions and a user token for actions on behalf of a user
- The MCP connector uses a confidential OAuth 2.0 + PKCE flow, with endpoints resolved through Slack’s well-known discovery document, to issue a user token (
xoxp)
- Tokens are securely stored, encrypted, and never shown to end users
OAuth Scopes
The Slack app requests the scopes below. Scopes are grouped by the token they belong to: bot-token scopes (scope=), user-token scopes (user_scope=), and the MCP connector scopes (a user token requested through the separate MCP flow on the same app).
Bot-token scopes
| Scope | Access | Purpose |
|---|
channels:read | Read | View basic info & membership of public channels |
channels:history | Read | Read message history in public channels |
channels:join | Write | Join public channels so the app can read/post |
channels:manage | Write | Create, archive, rename public channels; set topic/purpose |
channels:write.invites | Write | Invite or remove users in public channels |
groups:read | Read | View private channels the app is in |
groups:history | Read | Read message history in private channels |
groups:write | Write | Create/manage private channels; invite members |
im:history | Read | Read direct-message history |
im:write | Write | Open and close direct messages |
mpim:history | Read | Read group-DM history |
mpim:write | Write | Open/close group DMs |
chat:write | Write | Send messages as the app |
reactions:read | Read | View emoji reactions on messages |
reactions:write | Write | Add and remove emoji reactions |
files:read | Read | View files shared in channels/conversations |
files:write | Write | Upload, edit, and delete files |
users:read | Read | View people in the workspace |
users:read.email | Read | View email addresses of members |
team:read | Read | View workspace name, domain, and icon |
usergroups:read | Read | View user groups |
usergroups:write | Write | Create and manage user groups |
User-token scopes
| Scope | Access | Purpose |
|---|
channels:read | Read | View public channels on behalf of the user |
channels:history | Read | Read public-channel history as the user |
groups:read | Read | View the user’s private channels |
groups:history | Read | Read the user’s private-channel history |
groups:write | Write | Manage the user’s private channels |
im:history | Read | Read the user’s DM history |
mpim:history | Read | Read the user’s group-DM history |
chat:write | Write | Send/draft messages as the user |
reactions:read | Read | View reactions visible to the user |
reactions:write | Write | Add/remove reactions as the user |
stars:read | Read | View the user’s starred items |
stars:write | Write | Add/remove stars as the user |
files:read | Read | View files the user can access |
files:write | Write | Upload/manage files as the user |
users:read | Read | View people in the workspace |
users:read.email | Read | View email addresses |
users.profile:read | Read | Read the user’s own profile |
users.profile:write | Write | Update the user’s own profile |
team:read | Read | View workspace info |
usergroups:read | Read | View user groups |
usergroups:write | Write | Manage user groups as the user |
MCP connector scopes
Requested as a user token (xoxp) through the MCP flow on the same app. Several overlap with the user-token scopes above; the search and canvas scopes are unique to MCP.
| Scope | Access | Purpose |
|---|
search:read.public | Read | Search public-channel messages |
search:read.private | Read | Search private-channel messages |
search:read.mpim | Read | Search group-DM messages |
search:read.im | Read | Search DM messages |
search:read.files | Read | Search files |
search:read.users | Read | Resolve users when searching |
canvases:read | Read | Read canvases and export them as Markdown |
canvases:write | Write | Create and update canvases |
chat:write | Write | Send and draft messages |
channels:history | Read | Read channel/thread history |
groups:history | Read | Read channel/thread history |
mpim:history | Read | Read channel/thread history |
im:history | Read | Read channel/thread history |
users:read | Read | Fetch user info |
users:read.email | Read | Fetch user email |
In VectorShift
-
Head over to https://app.vectorshift.ai/ and sign up for a free trial or log in to your existing account
-
In the Pipeline Builder, search for Slack in the search bar (top left) and click it to add the Slack node to your canvas. On the Action step, choose an action (e.g., Create Channel, List Channels, List Channel History, etc.)
-
Move to the Account step and click Sign in with Slack to connect your Slack account
-
A Slack window opens asking you to authorize the VectorShift app. Select your workspace, review the requested permissions, and click Allow
-
Once authorized, the node shows an active connection labeled with the date it was connected. Click Next to continue configuring the action
After installation: Your Slack account is connected and ready. Add the Slack tool to a pipeline or agent (see below), or visit the Pipelines overview and Agents introduction to get started.
- Open the Pipeline Builder or Agent Builder
- Add the Slack tool
- Select the connected Slack account
- Choose an action, such as:
- Index channels and files into a knowledge base
- Search messages, files, users, or channels
- Read a channel or thread
- Send, draft, update, or delete a message
- Manage channels, reactions, files, or user groups
- Read, create, or update a canvas
- Fetch user info
- Provide the required inputs (for example, a search query, channel, or message text)
- Connect upstream logic, data sources, or AI nodes
- Save and activate the pipeline or agent
Available Actions
Knowledge Base Indexing
Index channels, messages, and files into a VectorShift knowledge base so AI applications can search and reason over your Slack content.
Search
Search messages, files, users, and channels across the workspace. Results are limited to content the connected account can access.
Read a Channel or Thread
Retrieve the full message history of a channel or thread — useful for summarization, context, and analysis.
Messaging
Send, draft, update, or delete messages — as the app or on behalf of the connected user — in channels, direct messages, and threads.
Channel & Membership Management
Create, archive, rename, and configure channels, and manage membership.
Reactions, Stars & Files
Read and add reactions, manage starred items, and read or upload files.
Canvases
Read a canvas and export it as Markdown, or create and update canvases programmatically.
Users & User Groups
Fetch user profiles, custom fields, status, and email, and manage user groups.
Troubleshooting
Common Issues
| Issue | Solution |
|---|
| Integration Connection Lost | Re-authorize the integration by clicking Reconnect |
| Permission denied | Ensure all required scopes were granted during OAuth authorization |
| App not approved | Your Slack workspace admin may need to approve the app before it can be used |
| Content not found | Verify the connected account has access to the channel, message, or file |
| Rate limit exceeded | Wait briefly and retry (handled automatically) |
Re-authorization
If the integration appears Unhealthy or disconnected:
- Click Reconnect Integration in VectorShift
- You will be redirected to Slack’s OAuth consent screen
- Approve permissions again
- The integration will be restored
Uninstall
Remove from VectorShift
-
Open the connection menu on the Slack node, click the three-dot (⋮) icon next to the connection you want to remove, and choose Delete
-
In the Delete Integration confirmation dialog, click Delete Integration. This cannot be undone — it removes the connection, deletes the stored OAuth tokens, and revokes VectorShift’s access to that Slack connection
You can also revoke access from Slack at any time under Settings & administration → Manage apps in your workspace.
Privacy & Support