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

# Slack integration

> Unfurl chart links, deliver scheduled reports and alerts, and chat with your AI agents in Slack

The Lightdash Slack app connects your project to Slack so your team can preview content, receive scheduled deliveries and alerts, and talk to AI agents without leaving their workspace.

## Install the Slack integration

<Info>
  Only your Lightdash organization admins can add or configure the Slack integration.
</Info>

Go to **Organization settings**, then **Integrations**, and click **Add to Slack**. This opens a confirmation page granting the Lightdash Slack app access to your Lightdash and Slack organizations. If you're not a Slack admin, you might need to request approval to add the app. Once it's approved, you're all set.

<Note>
  Self-hosting Lightdash? Creating and configuring the underlying Slack app is a platform setup step — see [Configure a Slack app for Lightdash](/self-host/customize-deployment/configure-a-slack-app-for-lightdash).
</Note>

This two-minute video shows the full install and configuration flow:

<div
  style={{
position: 'relative',
paddingBottom: '64.98194945848375%',
height: 0,
}}
>
  <Frame>
    <iframe
      src="https://www.loom.com/embed/9df1e9e24ead48cd8e46a73558d31764?sid=1daa03c8-c783-4f46-ad6e-8dabbd7d5223"
      frameborder="0"
      webkitallowfullscreen
      mozallowfullscreen
      allowfullscreen
      style={{
  position: 'absolute',
  top: 0,
  left: 0,
  width: '100%',
  height: '100%',
}}
    />
  </Frame>
</div>

## Required permissions

The Lightdash Slack app requests these scopes:

* **`links:read` for lightdash.cloud** — lets Lightdash fetch information from the charts and dashboards you link so it can render previews in Slack.
* **`links:write`** — lets Lightdash unfurl those links.

No other content is shared from your workspace.

## Settings

After installing the app, you'll see these settings:

<Frame>
  <img src="https://mintcdn.com/lightdash/5NMMM4n0puUIh3u9/images/integrations/slack/slack-settings.png?fit=max&auto=format&n=5NMMM4n0puUIh3u9&q=85&s=f9086e8b3435dd05240eae94f6d602b5" alt="The Slack integration settings, with the notification channel, bot avatar, thread access consent, OAuth requirement, and multi-agent channel fields" width="3160" height="1596" data-path="images/integrations/slack/slack-settings.png" />
</Frame>

### Select a notification channel

Choose a Slack channel where Lightdash sends alerts when any scheduled delivery in your organization fails. Add the Lightdash app to that channel for notifications to work.

### Slack bot avatar

Customize the app's avatar by adding an image URL in the **Profile photo URL** field. Slack recommends a square image at least 512x512 pixels and no larger than 1024x1024 pixels.

### AI agents configuration

Control how AI agents interact with your Slack workspace — whether they can read thread messages when mentioned, and whether OAuth authentication is required to use them. For channel limitations and multi-agent support, see [Slack channels: single-agent vs. multi-agent](/agents/set-up-agents#slack-channels-single-agent-vs-multi-agent).

#### User attribution and OAuth

By default, every AI agent conversation in Slack is attributed to the user who installed the Slack app (or created the agent): all questions appear as if they came from that single user, and every query runs with that user's permissions.

Enable the **AI Agents OAuth requirement** toggle to identify each Slack user individually. When enabled:

* Each Slack user authenticates with Lightdash before using the AI agent.
* Conversations are attributed to the individual asking the question.
* Queries respect each user's own [user attributes and permissions](/agents/data-access#user-attributes-and-permissions).

<Tip>
  Enable OAuth if your organization uses row- or column-level security through user attributes, or if you need an audit trail of which users ask which questions.
</Tip>

#### Automatic channel linking

When someone `@mentions` the Lightdash app in a channel that has no agent configured, Lightdash offers to link an agent to that channel from Slack — either auto-linking the user's one manageable agent, or posting an in-thread picker if the user manages several. See [Linking an agent from Slack](/agents/set-up-agents#linking-an-agent-from-slack) for the full flow.

The **Enable automatic channel linking** toggle controls this:

* **On (default)** — Slack mentions in unconfigured channels can add the channel to an agent's list, so first-time setup is seamless.
* **Off** — Slack mentions in unconfigured channels post an ephemeral message pointing to the AI agents page, and never modify an agent's channel list. Channels can only be managed from the agent settings UI.

Turn this off if you need the configured channel list to be a strict allowlist — for example, to prevent a sensitive agent from being extended into new channels by an admin's Slack activity. Turning it off does not affect channels that are already linked.

## Using the Slack integration

Once installed, the Slack integration surfaces Lightdash content and delivers it where your team already works. This video walks through the main ways to use it:

<Frame>
  <iframe src="https://www.loom.com/embed/5ba2d4b3ad8445b18e1ad233a4c0f930?sid=488d516a-adcc-4915-9ad7-0c186b10eecc" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen style={{ width: '100%', height: '400px' }} />
</Frame>

### Unfurl Lightdash links

The app automatically unfurls links you share from your Lightdash project. Invite the app to a channel first, and it will unfurl links there — both links copied from the URL bar and "share" links copied with the link icon. Chart and dashboard links are supported.

<Note>
  Link previews are generated with the credentials of the user who installed the Slack app, so previews reflect that user's data access — not the permissions of whoever shares the link. If the installer's warehouse session expires, previews fail until they re-authenticate.
</Note>

Here's an unfurled chart:

<Frame>
  <img src="https://mintcdn.com/lightdash/5NMMM4n0puUIh3u9/images/integrations/slack/slack-chart-unfurl-45875cd3a4a3afc83b636571085be4c0.png?fit=max&auto=format&n=5NMMM4n0puUIh3u9&q=85&s=d88d4e450ef9ce399c73ce8d30257eaa" alt="A shared chart link unfurled in Slack, showing the chart title, description, a bar chart image, and an Open in Lightdash button" width="2128" height="1348" data-path="images/integrations/slack/slack-chart-unfurl-45875cd3a4a3afc83b636571085be4c0.png" />
</Frame>

And an unfurled dashboard:

<Frame>
  <img src="https://mintcdn.com/lightdash/5NMMM4n0puUIh3u9/images/integrations/slack/slack-dashboard-unfurl-424589974afbb6574dff67199a9cdcda.png?fit=max&auto=format&n=5NMMM4n0puUIh3u9&q=85&s=7b724dcf65b569ae74249663e69fa8fc" alt="A shared dashboard link unfurled in Slack, showing the dashboard title, description, and a preview image of its tiles" width="1958" height="1124" data-path="images/integrations/slack/slack-dashboard-unfurl-424589974afbb6574dff67199a9cdcda.png" />
</Frame>

### Scheduled deliveries

Use Slack as a destination for [scheduled deliveries](/explore/create-scheduled-deliveries). Schedule refreshes for charts or dashboards and push the results into a Slack channel or DM.

Charts look like this when you attach an image:

<Frame>
  <img src="https://mintcdn.com/lightdash/5NMMM4n0puUIh3u9/images/integrations/slack/slack-scheduled-chart-d2604af845afc166f4c13b2265a83b71.png?fit=max&auto=format&n=5NMMM4n0puUIh3u9&q=85&s=589c66a40469ac2580bb8219ff3b577c" alt="A scheduled delivery in Slack with the chart name, description, and an image of the scatter plot, noting files expire after 3 days" width="2022" height="1314" data-path="images/integrations/slack/slack-scheduled-chart-d2604af845afc166f4c13b2265a83b71.png" />
</Frame>

And dashboards look like this when you choose *not* to include an image:

<Frame>
  <img src="https://mintcdn.com/lightdash/5NMMM4n0puUIh3u9/images/integrations/slack/slack-scheduled-dashboard-a2e37864f7d080ea04d3cc28e367040e.png?fit=max&auto=format&n=5NMMM4n0puUIh3u9&q=85&s=ee2152a2ab229c4c886a874d6ab23398" alt="A scheduled dashboard delivery in Slack listing each chart with its own Download results button instead of an image" width="2494" height="1288" data-path="images/integrations/slack/slack-scheduled-dashboard-a2e37864f7d080ea04d3cc28e367040e.png" />
</Frame>

### Saved chart alerts in Slack

Beyond scheduled deliveries, you can set up [alerts on saved charts](/explore/create-alerts) that only send to Slack when your criteria are met.

<Frame>
  <img src="https://mintcdn.com/lightdash/5NMMM4n0puUIh3u9/images/integrations/slack/slack-alert-f80ad5e8c309f46972bb8e8a12238efc.png?fit=max&auto=format&n=5NMMM4n0puUIh3u9&q=85&s=d3f177b0222df01bf3a28a0430721c67" alt="A Slack alert naming the chart, the threshold that was crossed, and an image of the chart results" width="1542" height="1214" data-path="images/integrations/slack/slack-alert-f80ad5e8c309f46972bb8e8a12238efc.png" />
</Frame>

### Use Lightdash in private channels

Slack doesn't expose private channels to apps by default, so add the Lightdash app to a private channel manually. Either:

* **Invite the app** — type `/invite @Lightdash` in the channel.

<Frame>
  <img src="https://mintcdn.com/lightdash/5NMMM4n0puUIh3u9/images/integrations/slack/slack-invite-command.png?fit=max&auto=format&n=5NMMM4n0puUIh3u9&q=85&s=9d4e7c705d4e4b88bdaaa85a5e80b63b" alt="The Slack message box with /invite @lightdash typed, and the Lightdash app shown as Not in channel above it" width="870" height="562" data-path="images/integrations/slack/slack-invite-command.png" />
</Frame>

* **Use channel settings** — click the channel name, go to **Integrations → Add an app**, then search for and add Lightdash.

<Frame>
  <img src="https://mintcdn.com/lightdash/5NMMM4n0puUIh3u9/images/integrations/slack/slack-add-app-settings.png?fit=max&auto=format&n=5NMMM4n0puUIh3u9&q=85&s=d2bafab09f10a14b935e08050361c178" alt="A private Slack channel's Integrations tab, with the Add an App button under the Apps section" width="1074" height="1086" data-path="images/integrations/slack/slack-add-app-settings.png" />
</Frame>

Once the app is added, find the channel in Lightdash by either:

* **Refreshing the channel list** in the Lightdash UI, or
* **Looking up the channel by ID** — in Slack, right-click the channel name, select **View channel details**, and copy the Channel ID from the bottom of the modal.

<Frame>
  <img src="https://mintcdn.com/lightdash/5NMMM4n0puUIh3u9/images/integrations/slack/slack-channel-id.png?fit=max&auto=format&n=5NMMM4n0puUIh3u9&q=85&s=1efdbcac658d1c058bf6a6d1e636863c" alt="A Slack channel details modal, with the Channel ID at the bottom and its copy button highlighted" width="1074" height="1500" data-path="images/integrations/slack/slack-channel-id.png" />
</Frame>

Paste the channel ID into the Channels input field and select **Look up channel ID** to find your private channel.

<Frame>
  <img src="https://mintcdn.com/lightdash/5NMMM4n0puUIh3u9/images/integrations/slack/slack-lookup-id.png?fit=max&auto=format&n=5NMMM4n0puUIh3u9&q=85&s=85381cc87b587b0dd4e51e4abdd0b386" alt="The Lightdash Channels field with a channel ID pasted in and a Look up channel ID suggestion below it" width="2042" height="300" data-path="images/integrations/slack/slack-lookup-id.png" />
</Frame>

### AI analyst agents

AI analyst agents use the Slack integration to chat with your data and build charts in Slack. Once you have access to AI analysts, give them access to Slack threads in your integration settings.

Trigger a response by mentioning the Lightdash app in your message. There's a single Lightdash app to mention — you don't specify a particular agent. Lightdash routes your question to the most appropriate agent, and prompts you to choose if it's unclear.

<Note>
  By default, all Slack AI agent conversations are attributed to the user who installed the Slack app. To attribute conversations to individual Slack users and respect their data permissions, enable the **AI Agents OAuth requirement** in your [Slack integration settings](#ai-agents-configuration).
</Note>
