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

# Slack

> Create a Slack app with user token scopes so Voltai can search messages and channel history.

**You'll create:** a Slack app in your workspace.

**We'll be able to read:** messages, channel history, and files that the connecting user can already see in Slack.

## Steps

<Steps>
  <Step title="Create the app">
    Go to [api.slack.com/apps](https://api.slack.com/apps) and click **Create New App → From scratch**.

    Pick a name (for example, "Voltai") and choose your workspace.
  </Step>

  <Step title="Set the redirect URL">
    In the left sidebar, open **OAuth & Permissions**.

    Under **Redirect URLs**, add the [redirect URI](/connectors/introduction#redirect-uri-used-by-every-connector) and click **Save URLs**.
  </Step>

  <Step title="Add user token scopes">
    Under **User Token Scopes** — not Bot Token Scopes — add:

    * `search:read`
    * `channels:history`
    * `files:read`

    <Warning>
      These must go under **User** Token Scopes. Bot scopes will not work: Voltai acts as the connecting user so that Slack's own permissions apply, and a bot token would see a different set of channels.
    </Warning>
  </Step>

  <Step title="Install to the workspace">
    Click **Install to Workspace** at the top of the same page and approve the prompt.
  </Step>

  <Step title="Copy the credentials">
    In the left sidebar, open **Basic Information → App Credentials**.
  </Step>
</Steps>

## Send us

| Value           | Where to find it                                        |
| --------------- | ------------------------------------------------------- |
| `client_id`     | Basic Information → App Credentials → **Client ID**     |
| `client_secret` | Basic Information → App Credentials → **Client Secret** |

## Things to know

* Search only covers channels the connecting user is a **member** of. Public channels they have not joined are invisible to Slack's search API, so joining the relevant channels is the fix if results look thin.
* Private channels and DMs are only reachable if that user is in them, which is usually what you want.
