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

# Set up Slack

<Badge icon="arrow-left" color="gray">[Back to messaging or digital channels](/agent-platform/channels#messaging-or-digital-channels)</Badge>

Deploy your agent as a Slack bot for team collaboration. Connect your Slack app to Artemis by entering its credentials manually.

<Note>
  **Redirect URL and Request URL are different.** Slack uses two URLs at different stages:

  * **OAuth Redirect URL** — used only during the **Add to Slack** authorization flow, registered under **OAuth & Permissions** so Slack can return authorization back to Studio.
  * **Events Request URL** — generated for this connection and pasted under **Event Subscriptions → Request URL** in Slack, allowing Slack to deliver messages and events to Studio.
</Note>

## Create an app in Slack

<Steps>
  <Step title="Create or select your Slack app">
    At [api.slack.com/apps](https://api.slack.com/apps), select **Create New App**, choose **From scratch**, name the app, and choose a development workspace.
  </Step>

  <Step title="Copy the Team ID, App ID, and Signing Secret">
    You need three values from Slack before you can create the connection in Artemis:

    | Value | Where to find it |
    | - | - |
    | **Team ID** | Open your workspace in a browser. In `https://app.slack.com/client/T.../...` the segment beginning with `T` is your Team ID. |
    | **App ID** | Go to **Basic Information** -> **App Credentials** and copy **App ID**. |
    | **Signing Secret** | On the same **App Credentials** panel, select **Show** next to **Signing Secret** and copy it. |
  </Step>

  <Step title="Add bot token scopes">
    Go to **OAuth & Permissions** and, under **Bot Token Scopes**, add:

    | Scope | Purpose |
    | - | - |
    | `chat:write` | Send messages as the bot. |
    | `im:history` | Read direct message history with the bot. |
    | `commands` | Required for slash commands. |
    | `app_mentions:read` (optional) | Read @mentions of the bot in channels. |
    | `files:read` (optional) | Required for file attachments. |
    | `chat:write.public` (optional) | Required to post to public channels the bot hasn't joined. |
  </Step>

  <Step title="Bot User OAuth Token">
    On the same **OAuth & Permissions** page, select **Install to Workspace** (or **Reinstall to Workspace** if the app is already installed). Once installed, copy the **Bot User OAuth Token** from **OAuth Tokens** — it begins with `xoxb-`.

    <Note>Reinstall the app whenever you add or change scopes so the bot token receives the new grants.</Note>
  </Step>
</Steps>

## Integrate the Slack app in Artemis

<Steps>
  <Step title="Open the New Slack Connection dialog">
    Open Artemis, select the required project, and go to **Deployments** -> **Channels** -> **MESSAGING** -> **Slack** -> **+ New**.
  </Step>

  <Step title="Enter credentials manually">
    Select **Enter credentials manually instead**, then fill in the following fields.

    | Field | Description |
    | - | - |
    | **Display Name** | A label for the connection, for example `Slack Production`. Up to 255 characters. |
    | **Slack Team ID:App ID** | The Team ID and App ID from Slack, joined by one colon with no spaces, for example `T0xxxxxxxxx:A0xxxxxxxxx`. |
    | **Bot Token** | The Bot User OAuth Token from **OAuth & Permissions** -> **OAuth Tokens**. Must begin with `xoxb-`. |
    | **Signing Secret** | The signing secret from **Basic Information** -> **App Credentials**. |
    | **Environment** | Select an environment to follow its active deployment. |
    | **Provider Verification Strength** | **Weak (default)** is set by default. Choose **Strong** only for channels/providers whose identity assertions you trust for stronger continuity and linking decisions. |
    | **Initial Status** | **Active** connections can be used immediately. **Inactive** connections stay saved but disabled until you activate them. |

    Select **Create**.
  </Step>

  <Step title="Webhook URL and Event Subscriptions">
    Open the connection you created and copy the **Webhook URL** from the **Overview** tab. Go back to your Slack app's **Event Subscriptions** page, turn **Enable Events** on, and paste the Webhook URL into **Request URL**. Wait for Slack to show **Verified**, then, under **Subscribe to bot events**, add:

    | Event | Description |
    | - | - |
    | `message.im` | Direct messages sent to the bot. |
    | `app_mention` | @mentions in channels where the app is invited. |

    Save your changes.
  </Step>

  <Step title="Test both conversation paths">
    Send the app a direct message, then invite it to a channel and @mention it. Confirm the agent replies in both places.
  </Step>
</Steps>

## Manage the channel connection

Opening a channel from **Deployments** -> **Channels** -> **MESSAGING** -> **Slack** shows four tabs: **Overview**, **Credentials**, **Configuration**, and **Deployment**.

<Tabs>
  <Tab title="Overview">
    The **Connection Summary** shows these fields.

    | Field | Description |
    | - | - |
    | **Status** | For example: *Active* |
    | **Created** | Timestamp the channel was created |
    | **Updated** | Timestamp of the last change |
    | **Environment** | For example: `staging` |
    | **Source Type** | `Channel Connection` |
    | **Source ID** | Unique channel identifier (UUID) |

    Under **Setup Instructions**:

    * **Require verified Slack identity** - Toggle on to require Slack workspace user identity with a resolvable email before this connection starts or resumes a session. Guests, external Slack Connect users, and users without email remain blocked.

      Before enabling this policy, complete the **Verified Slack identity setup**. Runtime uses Slack's `users.info` to resolve the sender's workspace email.

      1. In the Slack app's **OAuth & Permissions**, add these Bot Token Scopes: `users:read` and `users:read.email`.
      2. Reinstall or re-authorize the Slack app after adding scopes so the bot token receives the new permissions.

    * The tab also shows the **Webhook URL** to paste into Slack's Event Subscriptions **Request URL**, and the **Slack Team ID:App ID** for reference. Select the copy icon next to either value to copy it.
  </Tab>

  <Tab title="Credentials">
    Credentials are saved and encrypted after creation; the fields show placeholder text and accept new values only if you want to update them.

    | Field | Description |
    | - | - |
    | **Use Auth Profile** | Toggle on to authenticate through a saved Auth Profile instead of entering credentials manually. When enabled, select the profile from the dropdown in place of the fields below. |
    | **Bot Token** | The Bot User OAuth Token from Slack's **OAuth & Permissions** -> **OAuth Tokens**. Shown as *(saved — enter to update)*; leave blank to keep the current value. |
    | **Signing Secret** | The signing secret from Slack's **Basic Information** -> **App Credentials**. Shown as *(saved — enter to update)*; leave blank to keep the current value. |

    Select **Save Credentials** to apply any changes.
  </Tab>

  <Tab title="Configuration">
    Under **General**, update the **Display Name** and **Provider Verification Strength**.

    Under **Slack Settings**, the following fields apply.

    | Field | Description |
    | - | - |
    | **Slack Team ID:App ID** | The Team ID and App ID entered at creation, shown for reference. You can't change it after creation. |

    Under **Response Streaming**, configure the following.

    | Field | Description |
    | - | - |
    | **Enable Streaming** | Stream LLM responses to Slack in real time instead of waiting for the full response. |
    | **Chunk Size (characters)** | Minimum characters to buffer before sending to Slack. Lower values feel faster but make more API calls. |

    Under **Authorization Message**, configure the message shown when a tool needs the user to authorize.

    | Field | Description |
    | - | - |
    | **Message template** | The message text, with insertable variables: `{{#authorizations}}`, `{{profileName}}`, `{{authLink}}`, and `{{remaining}}`. Select **See all variables** for the full list, or **Show preview** to preview the rendered message. |

    Select **Save Changes** to apply any changes.
  </Tab>

  <Tab title="Deployment">
    The **Deployment** tab shows these fields.

    | Field | Description |
    | - | - |
    | **Agent Version** | An **Environment** dropdown (for example: `Staging`) that selects which deployed version handles incoming messages. |
    | **Active Deployment** | Shows the bound deployment version and when it was deployed. |

    Select **Save Changes** after switching the environment or version.
  </Tab>
</Tabs>

## Optional Slack features

| Feature | Setup |
| - | - |
| **Buttons, menus, and shortcuts** | Enable **Interactivity & Shortcuts** and use the same connection-specific Events Request URL as the **Interactivity Request URL**. |
