> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vectorshift.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Slack Node

> Search, send, and manage Slack messages, channels, files, and canvases with AI-driven pipelines and agents

# 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

<Info>
  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.
</Info>

***

## 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

1. Head over to [https://app.vectorshift.ai/](https://app.vectorshift.ai/) and sign up for a free trial or log in to your existing account

   <img src="https://mintcdn.com/vectorshift/Y5KHUmGR6JDJnW-9/images/platform/pipelines/integration/slack-step-1.png?fit=max&auto=format&n=Y5KHUmGR6JDJnW-9&q=85&s=f16494ff09d8769e1f7773aec606e2ed" alt="Slack Step 1" width="1917" height="945" data-path="images/platform/pipelines/integration/slack-step-1.png" />

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.)

   <img src="https://mintcdn.com/vectorshift/Y5KHUmGR6JDJnW-9/images/platform/pipelines/integration/slack-step-2.png?fit=max&auto=format&n=Y5KHUmGR6JDJnW-9&q=85&s=39f79303f4f892564be686090b1ad29d" alt="Slack Step 2" width="1482" height="797" data-path="images/platform/pipelines/integration/slack-step-2.png" />

3. Move to the **Account** step and click **Sign in with Slack** to connect your Slack account

   <img src="https://mintcdn.com/vectorshift/Y5KHUmGR6JDJnW-9/images/platform/pipelines/integration/slack-step-3.png?fit=max&auto=format&n=Y5KHUmGR6JDJnW-9&q=85&s=77deab703ed0f38284142c48aa712327" alt="Slack Step 3" width="1471" height="784" data-path="images/platform/pipelines/integration/slack-step-3.png" />

4. A Slack window opens asking you to authorize the **VectorShift** app. Select your workspace, review the requested permissions, and click **Allow**

   <img src="https://mintcdn.com/vectorshift/Y5KHUmGR6JDJnW-9/images/platform/pipelines/integration/slack-step-4.png?fit=max&auto=format&n=Y5KHUmGR6JDJnW-9&q=85&s=e9f624c5463bb49ec45b157807b5ada5" alt="Slack Step 4" width="1296" height="865" data-path="images/platform/pipelines/integration/slack-step-4.png" />

5. Once authorized, the node shows an active connection labeled with the date it was connected. Click **Next** to continue configuring the action

   <img src="https://mintcdn.com/vectorshift/Y5KHUmGR6JDJnW-9/images/platform/pipelines/integration/slack-step-5.png?fit=max&auto=format&n=Y5KHUmGR6JDJnW-9&q=85&s=2c17682ca730c97130a48d579322e389" alt="Slack Step 5" width="1463" height="747" data-path="images/platform/pipelines/integration/slack-step-5.png" />

<Info>
  **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](/platform/pipelines/overview) and [Agents introduction](/platform/agents/introduction) to get started.
</Info>

***

## 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

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:

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**

   <img src="https://mintcdn.com/vectorshift/Y5KHUmGR6JDJnW-9/images/platform/pipelines/integration/slack-uninstall-1.png?fit=max&auto=format&n=Y5KHUmGR6JDJnW-9&q=85&s=c425dd7ee1d2d12bd50af3465ae97481" alt="Slack Uninstall Step 1" width="1485" height="805" data-path="images/platform/pipelines/integration/slack-uninstall-1.png" />

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

   <img src="https://mintcdn.com/vectorshift/Y5KHUmGR6JDJnW-9/images/platform/pipelines/integration/slack-uninstall-2.png?fit=max&auto=format&n=Y5KHUmGR6JDJnW-9&q=85&s=9fff71df1078ce81ddc466cacab5aaff" alt="Slack Uninstall Step 2" width="1465" height="794" data-path="images/platform/pipelines/integration/slack-uninstall-2.png" />

You can also revoke access from Slack at any time under **Settings & administration → Manage apps** in your workspace.

***

## Privacy & Support

* **Privacy policy:** [https://vectorshift.ai/privacy-policy.html](https://vectorshift.ai/privacy-policy.html)
* **Data retention:** VectorShift does not delete your Slack data automatically. Content synced into VectorShift (messages, files, and channel data) is retained until you delete it — by removing the associated content or knowledge base, removing the integration, or deleting your account. Removing the integration also deletes the stored OAuth tokens. You can request deletion at any time at [support@vectorshift.ai](mailto:support@vectorshift.ai).
* **Support:** [https://docs.vectorshift.ai/support](https://docs.vectorshift.ai/support)
* **Email:** [support@vectorshift.ai](mailto:support@vectorshift.ai)
* **Documentation:** [https://docs.vectorshift.ai](https://docs.vectorshift.ai)
