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

# Slack App Permissions Guide

> Reference for the Slack OAuth scopes the Thread app requests, why each user and bot permission is needed, and how Thread limits access to ticket-related data.

Thread’s Slack app uses a defined set of permissions that allow it to read messages, identify users, react to events, and send updates inside Slack.

Permissions are grouped according to Slack’s native scope types.

## Summary: Why Thread Requires Slack Permissions

Thread’s Slack integration is designed to bring ticket updates, notifications, and automated workflows directly into Slack. To do this securely and reliably, the app needs permission to read messages, identify participants, respond to events, and send updates.

Thread **does not** access or store Slack data that is not directly required for message syncing or ticket actions.

### What the permissions enable

* **Message syncing** – Reads channel and DM messages where the app is present to align Slack conversations with tickets in Thread.
* **User identification** – Retrieves names, emails, and profile basics to map Slack users to the correct contacts.
* **Workflow automation** – Listens for message events, reactions, and commands that trigger automated ticket actions.
* **Posting updates & replies** – Sends ticket updates, confirmations, and automated responses back into Slack channels and DMs.
* **File handling** – Reads files attached to Slack messages and uploads files needed for ticket workflows.

### What Thread does *not* do

* Does **not** retain Slack data beyond what’s required for ticket context
* Does **not** use permissions for analytics or workspace-wide monitoring
* Does **not** access private content outside allowed scopes

### Why User + Bot scopes

Slack separates “user access” and “bot access,” even when the capability overlaps.

Thread uses both because:

* User scopes allow user-initiated actions (like DMs or thread replies)
* Bot scopes allow consistent automated behavior (like posting updates or receiving events)

This is why some permissions appear twice.

## User Scopes

These scopes allow Thread to perform actions or read information on behalf of the authenticated Slack user.

| Permission       | Why It’s Needed                                                                                               |
| ---------------- | ------------------------------------------------------------------------------------------------------------- |
| channels:history | Allows Thread to read channel messages when operating with user-granted permissions.                          |
| reactions:read   | Lets Thread detect emoji reactions tied to user actions or automations.                                       |
| groups:write     | Lets Thread act in private channels the user belongs to (for example, routing a thread) on the user's behalf. |

## Bot Scopes

These scopes allow the Thread bot to read messages, respond to events, and send updates within Slack channels and DMs.

| Permission           | Why It’s Needed                                                                                    |
| -------------------- | -------------------------------------------------------------------------------------------------- |
| app\_mentions:read   | Receives events when the bot is @mentioned so it can respond.                                      |
| channels:history     | Allows the bot to read messages in channels where it is present.                                   |
| channels:join        | Allows the bot to automatically join channels when required.                                       |
| channels:manage      | Enables the bot to manage channel properties where permitted by workspace settings.                |
| channels:read        | Allows the bot to discover channels it can access or join.                                         |
| chat:write           | Allows the bot to send messages, including ticket updates and confirmations.                       |
| chat:write.customize | Enables sending messages with customized sender names or appearances.                              |
| chat:write.public    | Allows posting messages to public channels the bot hasn’t been explicitly added to (when allowed). |
| commands             | Enables Slack slash-command interactions with Thread.                                              |
| files:read           | Allows the bot to download files from Slack to attach to tickets or read attachments.              |
| files:write          | Enables uploading files into Slack from Thread.                                                    |
| groups:history       | Allows the bot to read messages in private channels where it is present.                           |
| groups:read          | Allows Thread bot to see private groups it has access to.                                          |
| im:history           | Lets the bot read direct messages sent to it for ticket creation and updates.                      |
| im:read              | Identifies direct messages available to the bot.                                                   |
| im:write             | Opens direct-message conversations with users to deliver ticket updates.                           |
| reactions:read       | Detects emoji reactions used to trigger ticket actions.                                            |
| reactions:write      | Adds emoji reactions to messages, for example to acknowledge a request.                            |
| users:read           | Fetches Slack user profiles used for contact matching.                                             |
| users:read.email     | Enables Thread to match Slack users by email address.                                              |

Alongside these scopes, Thread subscribes to Slack **events** (such as direct messages and reactions) so the bot can react in real time. Event subscriptions are configured in the Slack app itself and are covered by the message and reaction scopes above.

<Note>
  See **Security** updates in the [changelog](/changelog/q3-2026).
</Note>


## Related topics

- [How Thread handles your data](/start-here/roles/security-compliance-owner/data-and-compliance.md)
- [Install the Slack Companion App](/companion-apps/install-the-slack-companion-app.md)
- [Choose which ticket updates post to a channel](/companion-apps/choose-which-ticket-updates-post-to-channel.md)
