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

# Slack

> Connect a Slack workspace to Layer with one-click OAuth — discover channels, app installs, member activity, and Slack Connect partners with encrypted credential storage.

The Slack integration discovers third-party apps installed in your workspace, Slack Connect channels with external companies, and per-channel member counts. New connections use a one-click OAuth flow brokered through Auth0 — there's no token to paste.

## What you'll need

* Slack workspace **Owner** or **Admin** role.
* Two minutes.

## Set it up

<Steps>
  <Step title="Open the Slack integration in Layer">
    In Layer, go to **Integrations**, find Slack, and click **Sign in with Slack**.
  </Step>

  <Step title="Approve the OAuth scopes in Slack">
    You'll be redirected to Slack's authorization screen. Pick the workspace you want to connect and review the requested bot scopes:

    * `users:read`, `users:read.email` — list workspace members
    * `channels:read`, `groups:read` — list public and private channels
    * `team:read` — read workspace metadata
    * `apps:read` — list installed third-party apps

    Click **Allow**.
  </Step>

  <Step title="Wait for the first sync">
    You'll land back at **Integrations** with the Slack card marked connected. The initial sync runs immediately and typically finishes in under five minutes.
  </Step>
</Steps>

## What gets synced

| Object                 | Fields                                                | Refresh cadence |
| ---------------------- | ----------------------------------------------------- | --------------- |
| Members                | name, email, title, deactivated state                 | Every 6 hours   |
| Channels               | name, type (public / private / connect), member count | Every 6 hours   |
| Installed apps         | app name, installer, install date, scopes             | Daily           |
| Slack Connect channels | external workspace name, external member count        | Daily           |

## Permissions Layer never asks for

We do not request `channels:history`, `groups:history`, or any scope that would let us read message contents.

## Token refresh

Slack access tokens do not expire on their own, but they can be revoked by a workspace admin or if the Axiom app is uninstalled. If that happens, the connection status changes to **needs re-auth** and you can reconnect with one click from **Integrations → Slack → Reconnect**.

## Existing bot-token connections

Tenants that connected before the OAuth flow shipped used a manually-pasted Slack bot token (`xoxb-...`). Those connections continue to work unchanged — Layer reads the legacy `bot_token` field first and falls back to the new OAuth `access_token` automatically. When you reconnect or rotate credentials, the new OAuth flow takes over and replaces the bot token.

## Troubleshooting

<AccordionGroup>
  <Accordion title="Sync shows 0 channels">
    The authorizing user may not be a workspace admin. Reconnect with an Owner or Admin Slack account.
  </Accordion>

  <Accordion title="Slack consent screen shows the wrong workspace">
    Slack signs you in as your most-recently-used workspace by default. Click **Sign into a different workspace** on the consent screen and pick the tenant you want to connect.
  </Accordion>

  <Accordion title="I want to disconnect">
    Go to **Integrations → Slack → Disconnect** in Layer, then revoke the Axiom app at [my.slack.com/apps/manage](https://my.slack.com/apps/manage).
  </Accordion>
</AccordionGroup>
