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

# Slack Canvas as context

> Let Chartcastr automatically use Slack channel canvases as extra AI context for pulses sent into that channel.

<Info>
  **State**: Available for Slack destinations after reconnecting the Slack app with the **`canvases:read`** permission.
</Info>

## Overview

Slack Canvas context gives Chartcastr access to canvases in the same Slack channel where a pulse is delivered.

This is useful for:

* Giving AI summaries channel-specific operating context
* Letting follow-up answers reference runbooks, planning notes, and team docs already pinned to that channel
* Keeping context automatic instead of manually mapping documents to every source

## How It Works

1. **Connect Slack as a destination**
2. **Reconnect once with `canvases:read` enabled**
3. **Send a connection to a Slack channel that has canvases**
4. **Chartcastr automatically makes those channel canvases available to the AI**

There is **no manual mapping step**.

If a connection sends to `#marketing`, the AI can inspect canvases from `#marketing`. If a different connection sends to `#finance`, the AI can inspect canvases from `#finance`.

## What Is Automatic

When Slack Canvas permissions are enabled:

* Initial pulse analysis can list canvases in the destination channel
* The AI can read the most relevant canvas when its title looks useful
* Slack follow-up replies in that pulse thread can use the same channel canvases for extra context

Chartcastr does **not** require you to attach each canvas to a source or source group.

## Setup

<Steps>
  <Step title="Connect Slack">
    Connect your Slack workspace as a destination in Chartcastr.
  </Step>

  <Step title="Open the Slack destination integration">
    Go to the Slack integration detail page in **Settings → Destinations → Slack** and open the **Context** tab.
  </Step>

  <Step title="Reconnect to grant canvas access">
    If the integration does not show canvas access yet, click **Reconnect** and approve the **`canvases:read`** permission in Slack.
  </Step>

  <Step title="Send pulses to the right channel">
    Create or update a connection so the pulse is delivered to the Slack channel whose canvases should be available to the AI.
  </Step>
</Steps>

## Scope

Slack Canvas context is **channel-scoped**:

* A pulse sent to one Slack channel only gets canvases from that same channel
* Private channel canvases are available only if the Chartcastr bot is in that private channel
* If a channel has no canvases, the AI simply continues without them

## FAQ

<AccordionGroup>
  <Accordion title="Do I need to map canvases manually?">
    No. Slack Canvas context is automatic. Once the Slack integration has the right permission, canvases in the destination channel are available to the AI without per-source setup.
  </Accordion>

  <Accordion title="Does every pulse read every canvas?">
    No. Chartcastr exposes the channel canvases as available context, and the AI can inspect the relevant ones when needed. It does not need to read every canvas on every pulse.
  </Accordion>

  <Accordion title="What permission is required?">
    The Slack destination integration needs the **`canvases:read`** scope. Chartcastr also uses standard Slack file access already granted to the app to list and retrieve canvas content.
  </Accordion>

  <Accordion title="Does this work for private channels?">
    Yes, if the Chartcastr bot has access to the private channel. If it is not a member, invite the bot first.
  </Accordion>
</AccordionGroup>
