# Install

To create a Slack app named **"Nullify"** with the required scopes and webhook, follow these steps:

## Method 1: Using App Manifest

You can create your Slack app using a JSON manifest, which simplifies the setup process by configuring all settings at once.

1. Visit <https://api.slack.com/apps>.
2. Click **"Create New App"**.
3. Choose **"From an app manifest"**.
4. Select your **Workspace** and click **Next**.
5. Paste the following JSON manifest in the editor (replace `<your-org>` with your organization name):

```json
{
    "display_information": {
        "name": "Nullify Bot"
    },
    "features": {
        "bot_user": {
            "display_name": "Nullify Bot",
            "always_online": true
        }
    },
    "oauth_config": {
        "scopes": {
            "bot": [
                "channels:manage",
                "groups:write",
                "channels:join",
                "app_mentions:read",
                "channels:history",
                "channels:read",
                "chat:write",
                "dnd:read",
                "groups:read",
                "im:history",
                "im:write",
                "reactions:read",
                "users:read",
                "users:read.email",
                "reactions:write"
            ]
        }
    },
    "settings": {
        "event_subscriptions": {
            "request_url": "https://api.<your-org>.nullify.ai/core/slack/webhook",
            "bot_events": [
                "app_mention",
                "message.channels",
                "message.im",
                "reaction_added",
                "reaction_removed"
            ]
        },
        "org_deploy_enabled": false,
        "socket_mode_enabled": false,
        "token_rotation_enabled": false
    }
}
```

6. Click **Next** and then **Create**.
7. In the left sidebar, go to **OAuth & Permissions**.
8. Click **Install to Workspace**.
9. Authorize the app in your workspace.
10. Copy and store the **Bot User OAuth Token** (starts with `xoxb-...`).

## Method 2: Manual Setup

### Create the Slack App

1. Visit <https://api.slack.com/apps>.
2. Click **"Create New App"**.
3. Choose **"From scratch"**.
4. Enter **App Name**: `Nullify`
5. Select your **Workspace** and click **Create App**.

### Add OAuth Scopes

1. In the left sidebar, go to **OAuth & Permissions**.
2. Under **Scopes**, add the following **Bot Token Scopes**:

   ```
   app_mentions:read
   channels:history
   channels:read
   chat:write
   dnd:read
   groups:read
   im:history
   im:write
   reactions:read
   reactions:write
   users:read
   users:read.email
   ```
3. Click **Save Changes**.

### Enable Event Subscriptions

1. In the left sidebar, go to **Event Subscriptions**.
2. Toggle **Enable Events** to **On**.
3. Set **Request URL** to:

   ```
   https://api.your-org.nullify.ai/core/slack/webhook
   ```

   Slack will send a `challenge` payload to verify—ensure your server responds correctly.
4. Scroll to **Subscribe to bot events**, then add:

   ```
   app_mention
   message.channels
   message.im
   reaction_added
   reaction_removed
   ```

### Install the App

1. In the left sidebar, go to **OAuth & Permissions** again.
2. Click **Install to Workspace**.
3. Authorize the app in your workspace.
4. Copy and store the **Bot User OAuth Token** (starts with `xoxb-...`).

### Add a Bot User Display Name

1. In the left sidebar, go to **App Home**.
2. Set:
   * **Display Name**: `Nullify`
   * **Default Username**: `nullify`
3. Enable "Always Show My Bot as Online" if desired.

## Upload the Slack API Key to Nullify

Once you’ve created the Slack app and copied the **Bot User OAuth Token** (`xoxb-...`):

1. Log in to the Nullify web application: <https://app..nullify.ai/>.
2. Navigate to:\
   **Dashboard → Configure → Connectors → Slack**
3. Click **Add Key** (or **Rotate Key** if one already exists).
4. Paste your Slack API key (the value starting with `xoxb-...`) into the input field.
5. Click **Save**.\
   The key will be securely transmitted over HTTPS and stored in **AWS Parameter Store** as a `SecureString`.\
   It will **never be shown back in plaintext** — you will only see a redacted placeholder like `********`.
6. Once saved, Nullify will verify the token with Slack and mark the connector as **Enabled**.

![Slack connector configuration screen](/files/As9rmsHI5lHoc2wUeapz)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.nullify.ai/connectors/slack/slack-install.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
