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

# Slack

> Send research to any channel or DM with rich Block Kit formatting

Connect Slack to send research directly to your workspace — to a channel or as a DM. Messages are formatted using Slack's Block Kit, so your research arrives with structure: headers, bullet lists, tables, dividers, and a Digcrate footer link.

<Note>
  Digcrate uses Auth0 Token Vault for the Slack connection. Your Slack credentials are never stored by Digcrate — Auth0 handles token exchange at runtime.
</Note>

## What you can do

<CardGroup cols={2}>
  <Card title="Post to channels" icon="hash">
    Send research to any public or private channel the Slack app has access to.
  </Card>

  <Card title="Send DMs" icon="message-circle">
    Send research directly to a teammate using `@username`.
  </Card>

  <Card title="Rich Block Kit formatting" icon="layout-list">
    Research is automatically converted to Slack Block Kit — headers, bullets, numbered lists, tables, blockquotes, and dividers.
  </Card>

  <Card title="Channel picker UI" icon="mouse-pointer-click">
    The agent renders a clickable channel grid so you never have to type a channel name manually.
  </Card>
</CardGroup>

## How to connect

<Steps>
  <Step title="Open Settings">
    Click the gear icon in the sidebar, or press `Shift+S`.
  </Step>

  <Step title="Go to Connected Services">
    Select the **Connected Services** tab.
  </Step>

  <Step title="Click Connect next to Slack">
    An OAuth popup opens and redirects you to Slack's authorization page.
  </Step>

  <Step title="Authorize Digcrate">
    Select the workspace you want to connect and click **Allow**. You are returned to Digcrate automatically.
  </Step>
</Steps>

## Permissions requested

| Scope           | What it allows                    |
| --------------- | --------------------------------- |
| `chat:write`    | Post messages to channels and DMs |
| `channels:read` | List public and private channels  |

## How to send research to Slack

You can trigger a Slack send in two ways:

**Ask the agent directly** — Say something like "send this to #music-production" or "send to @jane". The agent calls `list_slack_channels` first, renders the **SlackChannelPicker** component so you can confirm or change the destination, then posts the message.

**Use the action button** — Any research component with a **Send to Slack** button will prompt the channel picker and send the current component's content.

<Tip>
  You never need to type a channel name or ID. The agent always fetches your channel list first and shows a clickable picker — just click the channel you want.
</Tip>

## How messages are formatted

The agent converts research content to Slack Block Kit before sending. The formatting rules are:

| Markdown input     | Slack Block Kit output              |
| ------------------ | ----------------------------------- |
| `## Heading`       | Bold `rich_text` section header     |
| `- bullet item`    | `rich_text_list` with bullet style  |
| `1. numbered item` | `rich_text_list` with ordered style |
| `> blockquote`     | `rich_text_quote` block             |
| `\| table \|`      | Native Slack table block            |
| `---`              | Divider block                       |
| `**bold**`         | Slack `*bold*` formatting           |

Every message includes a **Digcrate** footer link at the bottom.

## Troubleshooting

**Channel not found** — The Slack app may not have been invited to the channel. Run `/invite @YourApp` in the channel and try again.

**Not in channel** — Same as above. Invite the app to the private channel first.

**Token expired** — If you see an `invalid_auth` error, go to **Settings → Connected Services** and reconnect Slack.

**Missing scope** — If a permission was not granted during setup, disconnect and reconnect Slack to re-authorize with the full scope set.
