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

# Slack

> Permissions and data usage for the Slack notifications integration.

export const RelatedPages = ({pages = []}) => {
  if (pages.length === 0) return null;
  return <>
      <br />
      <strong>Related articles</strong>
      <CardGroup cols={2}>
        {pages.map(page => <Card title={page.title} href={page.href} key={page.href} />)}
      </CardGroup>
    </>;
};

<Info>
  Powers Juno notifications delivered as Slack direct messages and posts to linked channels.
</Info>

## Why Juno integrates with Slack

Learners often live in Slack, not email. With the integration connected, assignment reminders, approval requests, event reminders, and other Juno notifications arrive as Slack messages with action buttons, and Juno channels can post shared content into linked Slack channels.

## Permissions we request

Juno installs a Slack app with a bot token. A workspace admin approves these bot scopes once for the workspace:

| Permission                       | Why we need it                                                             | Data accessed                                            |
| -------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------- |
| `users:read`, `users:read.email` | Match Juno learners to their Slack accounts by email address               | Slack user IDs, names, and email addresses               |
| `im:write`                       | Open a direct message conversation with a learner                          | The DM channel Juno opens                                |
| `chat:write`                     | Send notification messages                                                 | Messages Juno sends                                      |
| `chat:write.public`              | Post shared content into public channels without being invited to each one | Messages Juno posts                                      |
| `channels:read`, `groups:read`   | List channels so admins can link a Juno channel to a Slack channel         | Channel names and IDs (public and private channel lists) |

<Note>
  Juno has no message-history scopes — it cannot read your workspace's messages, files, or conversations. It only sends.
</Note>

## What we do with the data

* Slack user IDs are stored to route each learner's notifications to the right person.
* Channel names and IDs are shown to admins configuring channel sync and stored for linked channels.
* Notification content originates in Juno; nothing from Slack is imported into Juno.

## Security and storage

The bot token is encrypted at rest and used only server-side. Notification delivery respects each learner's notification preferences in Juno.

## Revoking access

Remove the Juno app from your workspace under **Slack admin** > **Manage apps**, or disconnect Slack in Juno's admin integration settings. Either action stops all delivery immediately.

<RelatedPages
  pages={[
{ href: "/integrations/slack", title: "Slack setup guide" }
]}
/>
