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

# Slack

> Deploy your agent to Slack and let users interact with it directly in channels and DMs

Deploy your agent to Slack and let users interact with it directly from any Slack channel or direct message. Once deployed, users can mention the bot or message it directly to start conversations powered by your agent.

## Setting Up the Slack Deployment

There are two ways to connect your agent to Slack: using the **Noxus-managed Slack bot** or connecting your **own custom Slack app**.

### Option A: Use the Noxus-Managed Bot

The quickest way to get started is to install the Noxus bot directly into your Slack workspace.

<Steps>
  <Step title="Create a Slack deployment">
    In the Noxus platform, navigate to your agent's **Deployments** page and create a new Slack deployment.
  </Step>

  <Step title="Install the Noxus Bot">
    You will see a notice to invite the Noxus Bot to your workspace:

    <Frame>
      <img src="https://mintcdn.com/spot-16018069/V74P-n082FsZpgqT/images/agents/deployments/slack-add-to-slack.png?fit=max&auto=format&n=V74P-n082FsZpgqT&q=85&s=f8e589dbaa3884097d5e18275abea870" alt="Add Noxus Bot to Slack" width="847" height="98" data-path="images/agents/deployments/slack-add-to-slack.png" />
    </Frame>

    Click **[Add it to your Slack here](https://noxusai.slack.com/oauth?client_id=4411224265729.6929759701985\&scope=app_mentions%3Aread%2Cchannels%3Ahistory%2Cchannels%3Aread%2Cchat%3Awrite%2Ccommands%2Cfiles%3Aread%2Cfiles%3Awrite%2Cgroups%3Ahistory%2Cgroups%3Aread%2Cim%3Ahistory%2Cim%3Aread%2Cim%3Awrite%2Clinks%3Aread%2Cmpim%3Ahistory%2Cusers%3Aread\&user_scope=\&redirect_uri=\&state=\&granular_bot_scope=1\&single_channel=0\&install_redirect=\&tracked=1\&user_default=0\&team=)** to authorize the bot in your Slack workspace.
  </Step>

  <Step title="Invite the bot to channels">
    Once authorized, invite the bot to any channel where you want it to respond by typing `/invite @Noxus Bot` in that channel.
  </Step>
</Steps>

<Tip>
  Invite the Noxus Bot to every Slack channel where you want it to respond. The bot will only see messages in channels it has been added to.
</Tip>

### Option B: Connect Your Own Slack App

If you need more control over permissions or branding, you can connect your own Slack app instead.

Here we are connecting an app named "Bug Reporter".

<Steps>
  <Step title="Create or select your Slack app">
    Go to [api.slack.com/apps](https://api.slack.com/apps) and either create a new app or select an existing one.
  </Step>

  <Step title="Find your App Credentials">
    In your Slack app's settings, go to **Basic Information** to find your **App ID** and **Signing Secret**:

    <Frame>
      <img src="https://mintcdn.com/spot-16018069/V74P-n082FsZpgqT/images/agents/deployments/slack-basic-information.png?fit=max&auto=format&n=V74P-n082FsZpgqT&q=85&s=458d7f770e6116d89cabdcccee788599" alt="Slack Basic Information — App ID and Signing Secret" width="982" height="764" data-path="images/agents/deployments/slack-basic-information.png" />
    </Frame>
  </Step>

  <Step title="Get your Bot User OAuth Token">
    Go to **OAuth & Permissions** in the sidebar and copy the **Bot User OAuth Token** (starts with `xoxb-`):

    <Frame>
      <img src="https://mintcdn.com/spot-16018069/V74P-n082FsZpgqT/images/agents/deployments/slack-oauth-token.png?fit=max&auto=format&n=V74P-n082FsZpgqT&q=85&s=c14b108d29d0606fdf9e7f7212b03e48" alt="Slack OAuth & Permissions — Bot User OAuth Token" width="992" height="857" data-path="images/agents/deployments/slack-oauth-token.png" />
    </Frame>
  </Step>

  <Step title="Enter credentials in Noxus">
    Back in Noxus, open the Slack connection dialog and fill in the three fields:

    * **Bot User OAuth Token** — the `xoxb-...` token from OAuth & Permissions
    * **Signing Secret** — from Basic Information → App Credentials
    * **App ID** — from Basic Information → App Credentials

    <Frame>
      <img src="https://mintcdn.com/spot-16018069/V74P-n082FsZpgqT/images/agents/deployments/slack-connection-dialog.png?fit=max&auto=format&n=V74P-n082FsZpgqT&q=85&s=cace27c0562c807cea85915b252c6f2d" alt="Noxus Slack connection dialog" width="590" height="552" data-path="images/agents/deployments/slack-connection-dialog.png" />
    </Frame>

    Click **Connect** to save the connection.
  </Step>

  <Step title="Configure the Webhook URL">
    After creating your Slack deployment, Noxus will generate a **Webhook URL**. Copy it:

    <Frame>
      <img src="https://mintcdn.com/spot-16018069/V74P-n082FsZpgqT/images/agents/deployments/slack-webhook-url.png?fit=max&auto=format&n=V74P-n082FsZpgqT&q=85&s=4b37a3f2cb9ee087493ad32cb5902316" alt="Noxus Webhook URL for Slack" width="812" height="109" data-path="images/agents/deployments/slack-webhook-url.png" />
    </Frame>
  </Step>

  <Step title="Subscribe to bot events">
    Go to your Slack app's **Event Subscriptions** page, enable events, and paste the URL into the **Request URL** field.
    Still on the Event Subscriptions page, scroll down to **Subscribe to bot events** and add the following events:

    * `message.channels` — messages in public channels
    * `message.groups` — messages in private channels
    * `message.im` — direct messages
    * `message.mpim` — group direct messages

    <Frame>
      <img src="https://mintcdn.com/spot-16018069/V74P-n082FsZpgqT/images/agents/deployments/slack-event-subscriptions.png?fit=max&auto=format&n=V74P-n082FsZpgqT&q=85&s=8ec2f95db5e24496b8d60d53308e8fe8" alt="Slack Event Subscriptions — bot events" width="1000" height="917" data-path="images/agents/deployments/slack-event-subscriptions.png" />
    </Frame>

    Click **Save Changes** at the bottom of the page.
  </Step>
</Steps>

<Warning>
  After updating event subscriptions, make sure Slack verifies your Request URL successfully (you should see a green checkmark). If verification fails, double-check that the Webhook URL was copied correctly.
</Warning>

## Deployment Settings

Once your Slack connection is established, configure how the agent behaves in Slack. Settings are organized into the sections below.

<Frame>
  <img src="https://mintcdn.com/spot-16018069/V74P-n082FsZpgqT/images/agents/deployments/slack-deployment-settings.png?fit=max&auto=format&n=V74P-n082FsZpgqT&q=85&s=a4090714d091b9c23140e5c589d1895c" alt="Slack deployment settings" width="2578" height="1688" data-path="images/agents/deployments/slack-deployment-settings.png" />
</Frame>

### Deployment

| Field       | Description                                                                                                                   |
| :---------- | :---------------------------------------------------------------------------------------------------------------------------- |
| **Status**  | Toggle the deployment **Online** or **Offline**. When online, the agent listens and responds to Slack messages automatically. |
| **Version** | The published agent version this deployment uses. Each version is a snapshot of prompts, tools, and model settings.           |

<Note>
  A published **version** is required before you can set a deployment to Online. You cannot edit the configuration while the deployment is active — switch it to **Offline** first, then make your changes.
</Note>

### Configuration

| Field                   | Description                                                                                             |
| :---------------------- | :------------------------------------------------------------------------------------------------------ |
| **Slack Connection**    | The Slack workspace connection to use. Manage connections in your workspace's connections settings.     |
| **Custom Instructions** | Per-deployment instructions appended to the agent's system prompt (e.g. `"Always respond in Spanish"`). |

### Conversation Triggers

A new conversation starts when **all** specified fields match an incoming message. The fields use AND logic — every non-empty field must match for the trigger to fire.

| Field       | Description                                           |
| :---------- | :---------------------------------------------------- |
| **Mention** | Slack user the bot must be mentioned by or as.        |
| **Channel** | Restrict triggers to a specific channel.              |
| **Keyword** | One or more keywords that must appear in the message. |

<Note>
  Leave a field empty to match any value. For example, setting only **Channel** will trigger on every message in that channel regardless of mention or keyword.
</Note>

### Reply Behavior

| Field                              | Description                                                                                                                                      |
| :--------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------- |
| **Reply mode**                     | `Auto` — reply in the same context. `Thread` — always reply in a thread. `Tool-based` — agent decides when and where to send messages via tools. |
| **Batch messages before replying** | When enabled, the agent waits for a pause before responding, batching multiple incoming messages together.                                       |
| **Quiet period (seconds)**         | How long to wait after the last message before replying. New messages reset the timer. Default: `5`.                                             |

### Channel Tools

Toggle which Slack-specific tools the agent can use during conversations.

| Tool                       | Description                                             |
| :------------------------- | :------------------------------------------------------ |
| **Send Message**           | Send messages to the Slack channel.                     |
| **React To Message**       | Add emoji reactions to messages.                        |
| **Reply In Thread**        | Reply to messages in a thread.                          |
| **Get User Profile**       | Look up a Slack user's profile information.             |
| **Send Ephemeral Message** | Send a private message visible only to a specific user. |

### Rate Limits

| Field                              | Description                                                                                              |
| :--------------------------------- | :------------------------------------------------------------------------------------------------------- |
| **Max messages per minute**        | Limit how many messages the agent sends per minute. `0` for unlimited.                                   |
| **Max new conversations per hour** | Limit how many new conversations can be started per hour. `0` for unlimited.                             |
| **Conversation timeout (minutes)** | After this many minutes of inactivity, the next message starts a fresh conversation. `0` for no timeout. |

### Display

| Field               | Description                                                            |
| :------------------ | :--------------------------------------------------------------------- |
| **Show thinking**   | Display the agent's reasoning steps in Slack messages. Off by default. |
| **Show tool calls** | Display tool call status in Slack messages. Off by default.            |
| **Show sources**    | Display source citations in Slack messages. On by default.             |

## Troubleshooting

<AccordionGroup>
  <Accordion title="I'm not seeing any events on the deployment">
    Make sure the **Signing Secret** entered in the Slack connection matches the one in **Basic Information → App Credentials** on api.slack.com. Noxus uses the signing secret to verify every incoming event; if it's wrong or stale, Slack requests fail signature verification and no events reach the deployment.
  </Accordion>

  <Accordion title="The agent's reply shows in conversation history but never appears in Slack">
    The bot is missing the `chat:write` scope. The conversation runs successfully on the Noxus side, but posting back to Slack fails silently. Add `chat:write` under **OAuth & Permissions → Bot Token Scopes** in api.slack.com, reinstall the app to your workspace, and update the Bot User OAuth Token in the Noxus Slack connection.
  </Accordion>
</AccordionGroup>
