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

# Slack permissions

> Slack permissions and access scopes required by incident.io

As a workspace app, you can interact with incident.io from anywhere within Slack, but we’re careful with the permissions and scopes we require and request the minimum we need to function.

You can find the [up-to-date list of permissions in Slack here](https://incident-io.slack.com/apps/A01DEGPUHHC-incidentio?tab=settings\&next_id=0).

## Required scopes on installation

All of the following scopes are requested on first installation of our Slack bot, and are required for our app to run.

<ResponseField name="app_mentions:read">Respond to direct mentions to our bot from Slack users.</ResponseField>

<ResponseField name="bookmarks:read">See the bookmarks we set within incident channels.</ResponseField>

<ResponseField name="bookmarks:write">
  Set bookmarks in incident channels (such as the alert that triggered the incident).
</ResponseField>

<ResponseField name="canvases:write">Create canvases in incident channels.</ResponseField>

<ResponseField name="channels:history">
  Read content in Slack channels we're added to, including messages users pin in their incident channel.
</ResponseField>

<ResponseField name="channels:manage">Create incident channels.</ResponseField>

<ResponseField name="channels:read">Read incident channel names.</ResponseField>

<ResponseField name="chat:write">Write messages and updates in channels we have access to.</ResponseField>

<ResponseField name="chat:write.public">
  Send announcements to public channels we haven't been added to (such as the incident announcement channel).
</ResponseField>

<ResponseField name="chat:write.customize">
  Post messages with a custom username and avatar, so features like Scribe and AI SRE can appear with their own bot
  identities.
</ResponseField>

<ResponseField name="commands">Add slash commands, such as `/inc` so you can interact with our bot.</ResponseField>

<ResponseField name="files:read">
  Read files shared in channels we have access to (such as images in incident channels).
</ResponseField>

<ResponseField name="files:write">
  Upload files to channels we have access to so we can share insights reports and other materials.
</ResponseField>

<ResponseField name="groups:read">See private incident channels we are part of.</ResponseField>

<ResponseField name="groups:write">Post to private incident channels we are part of.</ResponseField>

<ResponseField name="groups:history">Read messages in private incident channels we're added to.</ResponseField>

<ResponseField name="im:history">Read DMs that are sent to the incident bot.</ResponseField>

<ResponseField name="links:read">View URLs in messages.</ResponseField>

<ResponseField name="links:write">Show previews of URLs in messages from our bot.</ResponseField>

<ResponseField name="pins:read">Read pinned messages so we can save them to the incident timeline.</ResponseField>

<ResponseField name="pins:write">
  Write new pins to a Slack channel, such as the incident welcome message.
</ResponseField>

<ResponseField name="reactions:read">
  See when users have reacted to messages to trigger an action such as creating follow-ups.
</ResponseField>

<ResponseField name="reactions:write">
  Add reactions to messages, such as marking GitHub pull requests as reviewed.
</ResponseField>

<ResponseField name="teams:read">Read your organization's name and icon.</ResponseField>

<ResponseField name="users:read">Read your organization's users.</ResponseField>

<ResponseField name="users:read.email">Match user accounts with other services, such as GitHub.</ResponseField>

<ResponseField name="users.profile:read">Read user avatars so they can be displayed in our UI.</ResponseField>

<ResponseField name="usergroups:read">List all user groups for syncing schedules.</ResponseField>

<ResponseField name="usergroups:write">Sync on-call schedules into your Slack user groups.</ResponseField>

## Optional additional scopes

We don't request any of these on installation, but you can choose to provide them later.

<ResponseField name="channels:join">
  Rejoin incident or announcement channels if we lose access. If this isn't granted, users will have to manually add our
  bot to any channel they want to interact with us in. If you'd like to configure this, contact us at
  [help@incident.io](mailto:help@incident.io).
</ResponseField>

## Privileged access scopes

Depending on your Slack workspace settings, bots and regular users may be restricted from taking certain actions. If your organization's Slack configuration requires admin access for certain operations, you can choose to additionally provide these scopes, otherwise some incident.io features may be degraded.

You can find out more [details about each of those scopes here](/getting-started/slack-privileged-access)

These scopes are **User Scopes**, which means you're granting us permission to use them on behalf of a specific user, rather than as our bot.

To use any of these, you need to [configure a Slack admin for our bot](/getting-started/slack-admin-setup)

These include:

<ResponseField name="channels:write">
  Create and archive public incident channels, if this requires admin access in your Slack workspace.
</ResponseField>

<ResponseField name="groups:write">
  Create and archive private incident channels, and remove member's access to them if it's revoked within incident.io.
</ResponseField>

<ResponseField name="usergroups:write">
  Sync on-call schedules into your Slack user groups, if this requires admin access in your Slack workspace.
</ResponseField>

<ResponseField name="admin.conversations:write">
  Convert channels between public and private, to match the visibility of an incident.
</ResponseField>
