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

# Slack Integration Setup

> Set up the Slack bot for meeting briefs and AI assistant

# Slack Integration Setup

## 1. Create a Slack App

The easiest way is to use the included manifest:

1. Go to [https://api.slack.com/apps](https://api.slack.com/apps) and click **Create New App** > **From an app manifest**
2. Select a workspace
3. Paste the contents of [`manifest.yaml`](manifest.yaml), replacing `YOUR_DOMAIN` with your actual domain
4. Click **Create**

This configures all scopes, event subscriptions, and the bot user automatically.

<details>
  <summary>Manual setup (without manifest)</summary>

  ### Configure OAuth & Permissions

  Under **OAuth & Permissions**:

  **Redirect URLs** — add:

  ```
  https://<your-domain>/api/slack/callback
  ```

  **Bot Token Scopes** — add these scopes:

  | Scope               | Purpose                                              |
  | ------------------- | ---------------------------------------------------- |
  | `channels:read`     | List public channels for delivery target picker      |
  | `channels:join`     | Auto-join public channels when selected for delivery |
  | `groups:read`       | List private channels                                |
  | `chat:write`        | Send meeting briefs and AI responses                 |
  | `app_mentions:read` | Respond to @mentions in channels                     |
  | `im:read`           | Receive direct messages                              |
  | `im:write`          | Send DM responses                                    |
  | `im:history`        | Read DM conversation history                         |
  | `assistant:write`   | Enable Slack Assistant prompts and status indicators |
  | `reactions:write`   | Add processing indicator reactions                   |
  | `users:read`        | View workspace members                               |
  | `users:read.email`  | Look up teammates by email for multi-user workspaces |

  ### Enable Event Subscriptions

  Under **Event Subscriptions**:

  1. Toggle **Enable Events** to ON
  2. Set **Request URL** to:
     ```
     https://<your-domain>/api/slack/events
     ```
  3. Under **Subscribe to bot events**, add:
     * `message.im` — direct messages to the bot
     * `app_mention` — @mentions in channels
     * `assistant_thread_started` — initialize Slack assistant thread prompts
     * `assistant_thread_context_changed` — respond to assistant context switches

  Slack will send a verification challenge to the URL; the app handles this automatically.

  ### Enable Interactivity

  Under **Interactivity & Shortcuts**:

  1. Toggle **Interactivity** to ON
  2. Set **Request URL** to:
     ```
     https://<your-domain>/api/slack/events
     ```

  Interactive actions (for example, assistant `Send` buttons) are posted to this URL. Without this setting, button clicks will not reach the app.

  ### Enable App Home

  Under **App Home**:

  1. Check **Allow users to send Slash commands and messages from the messages tab**
  2. Uncheck **Make the messages tab read-only** (if shown)

  This lets users DM the bot directly to chat with the AI assistant.
</details>

## 2. Set Environment Variables

From **Basic Information** and **OAuth & Permissions** pages, set these in your `.env`:

```bash theme={null}
SLACK_CLIENT_ID=       # OAuth & Permissions > Client ID
SLACK_CLIENT_SECRET=   # OAuth & Permissions > Client Secret
SLACK_SIGNING_SECRET=  # Basic Information > Signing Secret
```

All three are optional. If not set, the Slack connect button is hidden and the events endpoint returns 503.

For local development with ngrok, also set:

```bash theme={null}
WEBHOOK_URL=https://your-domain.ngrok-free.app
```

This is used for the OAuth callback and events webhook URLs. `NEXT_PUBLIC_BASE_URL` stays as `http://localhost:3000` so other auth flows aren't affected.

## 3. Connect from the UI

1. Navigate to **Settings** > **Email Account** tab
2. Click **Connect Slack** under Connected Apps
3. Authorize the app in the Slack OAuth flow
4. Go to **Meeting Briefs** and select a Slack channel for delivery
5. Toggle meeting briefs on

Users can also DM the bot or @mention it in channels to chat with the AI assistant.
