Skip to main content

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

ScopeAccessPurpose
channels:readReadView basic info & membership of public channels
channels:historyReadRead message history in public channels
channels:joinWriteJoin public channels so the app can read/post
channels:manageWriteCreate, archive, rename public channels; set topic/purpose
channels:write.invitesWriteInvite or remove users in public channels
groups:readReadView private channels the app is in
groups:historyReadRead message history in private channels
groups:writeWriteCreate/manage private channels; invite members
im:historyReadRead direct-message history
im:writeWriteOpen and close direct messages
mpim:historyReadRead group-DM history
mpim:writeWriteOpen/close group DMs
chat:writeWriteSend messages as the app
reactions:readReadView emoji reactions on messages
reactions:writeWriteAdd and remove emoji reactions
files:readReadView files shared in channels/conversations
files:writeWriteUpload, edit, and delete files
users:readReadView people in the workspace
users:read.emailReadView email addresses of members
team:readReadView workspace name, domain, and icon
usergroups:readReadView user groups
usergroups:writeWriteCreate and manage user groups

User-token scopes

ScopeAccessPurpose
channels:readReadView public channels on behalf of the user
channels:historyReadRead public-channel history as the user
groups:readReadView the user’s private channels
groups:historyReadRead the user’s private-channel history
groups:writeWriteManage the user’s private channels
im:historyReadRead the user’s DM history
mpim:historyReadRead the user’s group-DM history
chat:writeWriteSend/draft messages as the user
reactions:readReadView reactions visible to the user
reactions:writeWriteAdd/remove reactions as the user
stars:readReadView the user’s starred items
stars:writeWriteAdd/remove stars as the user
files:readReadView files the user can access
files:writeWriteUpload/manage files as the user
users:readReadView people in the workspace
users:read.emailReadView email addresses
users.profile:readReadRead the user’s own profile
users.profile:writeWriteUpdate the user’s own profile
team:readReadView workspace info
usergroups:readReadView user groups
usergroups:writeWriteManage 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.
ScopeAccessPurpose
search:read.publicReadSearch public-channel messages
search:read.privateReadSearch private-channel messages
search:read.mpimReadSearch group-DM messages
search:read.imReadSearch DM messages
search:read.filesReadSearch files
search:read.usersReadResolve users when searching
canvases:readReadRead canvases and export them as Markdown
canvases:writeWriteCreate and update canvases
chat:writeWriteSend and draft messages
channels:historyReadRead channel/thread history
groups:historyReadRead channel/thread history
mpim:historyReadRead channel/thread history
im:historyReadRead channel/thread history
users:readReadFetch user info
users:read.emailReadFetch user email

In VectorShift

  1. Head over to https://app.vectorshift.ai/ and sign up for a free trial or log in to your existing account Slack Step 1
  2. 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.) Slack Step 2
  3. Move to the Account step and click Sign in with Slack to connect your Slack account Slack Step 3
  4. A Slack window opens asking you to authorize the VectorShift app. Select your workspace, review the requested permissions, and click Allow Slack Step 4
  5. Once authorized, the node shows an active connection labeled with the date it was connected. Click Next to continue configuring the action Slack Step 5
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.

Configure a Slack Workflow

  1. Open the Pipeline Builder or Agent Builder
  2. Add the Slack tool
  3. Select the connected Slack account
  4. 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
  5. Provide the required inputs (for example, a search query, channel, or message text)
  6. Connect upstream logic, data sources, or AI nodes
  7. 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 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

IssueSolution
Integration Connection LostRe-authorize the integration by clicking Reconnect
Permission deniedEnsure all required scopes were granted during OAuth authorization
App not approvedYour Slack workspace admin may need to approve the app before it can be used
Content not foundVerify the connected account has access to the channel, message, or file
Rate limit exceededWait briefly and retry (handled automatically)

Re-authorization

If the integration appears Unhealthy or disconnected:
  1. Click Reconnect Integration in VectorShift
  2. You will be redirected to Slack’s OAuth consent screen
  3. Approve permissions again
  4. The integration will be restored

Uninstall

Remove from VectorShift

  1. Open the connection menu on the Slack node, click the three-dot (⋮) icon next to the connection you want to remove, and choose Delete Slack Uninstall Step 1
  2. 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 Slack Uninstall Step 2
You can also revoke access from Slack at any time under Settings & administration → Manage apps in your workspace.

Privacy & Support