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

# Slack Connector

<Badge icon="arrow-left" color="gray">[Back to Search AI connectors list](/ai-for-service/searchai/content-sources#supported-connectors)</Badge>

Slack is a widely used communication and collaboration platform that enables team messaging, file sharing, and productivity. The Slack Connector integrates Search AI with your Slack workspace so users can search and retrieve conversations, files, and shared content across public and private channels.

## Specifications

| Specification              | Details                                              |
| -------------------------- | ---------------------------------------------------- |
| Repository type            | Cloud                                                |
| Supported content          | Conversations from public and private Slack channels |
| RACL support               | Yes                                                  |
| Content filtering          | Yes                                                  |
| Auto permission resolution | Yes                                                  |
| Attachment support         | No                                                   |

## Connector Configuration

Search AI interacts with Slack through its APIs. Complete the following steps to set up the integration.

### Create a Slack App

1. Go to the [Apps page on Slack](https://api.slack.com/apps) and create a new app.
2. Enter the app name and select the workspace to ingest content from.
3. Click **Create App**.

### Set Up Redirect URLs

On the **OAuth & Permissions** page for the app, add one of the following as the Redirect URL based on your deployment region:

* JP Region: `https://jp-bots-idp.kore.ai/workflows/callback`
* DE Region: `https://de-bots-idp.kore.ai/workflows/callback`
* Production: `https://idp.kore.com/workflows/callback`

### Configure OAuth Authentication

1. Go to **App Details > Basic Information** to find the Client ID and Client Secret. These credentials generate bot-level tokens via the APIs.
2. Search AI can only ingest content from Slack channels where the OAuth app is a member. Invite the app to a channel using the `/invite @<app-name>` command, or go to **Channel Name > Integrations > Add Apps** and select the OAuth app.

### Configure User Token Authentication

1. On the **OAuth & Permissions** page, under **User Token Scopes**, add the following scopes:
   * `channels:history`
   * `channels:read`
   * `groups:history`
   * `groups:read`
   * `im:history`
   * `im:read`
   * `mpim:read`
   * `mpim:history`
   * `users:read`
   * `users:read.email`
   * `team:read`
2. Go to the **Install App** page and install the app to the workspace. This generates a User OAuth Token - copy it for use in the Search AI connector configuration.

## Configure Slack Connector in Search AI

1. Go to **Connectors** in Search AI and click **Add Connector**, then select **Slack**.
2. On the **Authentication** page, provide the following details and click **Connect**:

| Field                                   | Description                             |
| --------------------------------------- | --------------------------------------- |
| **Name**                                | Unique name for the connector           |
| **Authorization Type**                  | Select OAuth 2.0 or User Token          |
| **Grant Type** (OAuth 2.0 only)         | Set to Authorization Code               |
| **Client ID / Secret** (OAuth 2.0 only) | Credentials generated for the Slack app |
| **User OAuth Token** (User Token only)  | Token generated during app installation |

## Content Ingestion

After connecting, set up content synchronization from the **Configuration** tab. Use **Sync Now** for an immediate sync or **Schedule Sync** to automate future syncs.

By default, Search AI ingests conversations from the past 6 months. If an advanced filter is configured, content is fetched according to the filter's date range.

When messages are ingested, consecutive messages may be grouped based on context and size. Each ingested message includes:

* **Channel name** - The channel where the message was sent
* **Sender name** - The person who sent the message
* **Timestamp** - Date and time the message was sent
* **Message content** - The text of the message

**Sample content field:**

```json theme={null}
"content": "In the dev channel, at 2024-12-26T13:20:07.170Z, john.smith messaged: The latest build is available for testing. Please find the release notes attached. This includes an attachment with the file name: release-notes.pdf and its URL: https://files.slack.com/files-pri/T082AFBJX27-F088SA71R4G/download/release-notes.pdf"
```

All other message details are stored as metadata fields. Go to the **Content** tab to view ingested content.

### Canvas Ingestion

Search AI also ingests Slack Canvases associated with each channel. Canvases are fetched as part of the channel sync flow and indexed as file-based content separately from channel messages. Each canvas is processed through the standard ETL pipeline and is searchable alongside other channel content.

## Content Filters

Use content filters to control which messages are ingested before synchronization.

### Content Type

On the **Manage Content** page, select the object type:

* Public channels only
* Private channels only
* All available channels

### Standard Filters

Use standard filters to restrict ingestion to specific channels:

1. Select **Ingest Filtered Content** and click **Configure**.
2. On the **Standard** tab, click **Browse and Select** to view available channels.
3. Choose the channels to include and click **Add Selection**, then **Save**.

### Advanced Filters

Use advanced filters to limit ingestion by message date:

| Field       | Behavior                                                                                                 |
| ----------- | -------------------------------------------------------------------------------------------------------- |
| **From**    | Start date for ingestion                                                                                 |
| **To**      | End date for ingestion (defaults to current date if not set)                                             |
| Canvas From | Start date for canvas ingestion; controls the fetch date range for canvases independently from messages. |
| Neither set | Ingests content from the past 6 months                                                                   |

## RACL Support

Search AI supports automatic resolution of permission entities for Slack, so access control reflects Slack's native permissions.

| Channel Type | `sys_racl` Value | Access                |
| ------------ | ---------------- | --------------------- |
| Public       | Workspace ID     | All workspace members |
| Private      | Channel ID       | Invited members only  |
