Slack

How to set-up your Slack connection on Dust

⚠️

Action Required

Starting December 2025, all Slack connections require customers to create their own Slack app. This change ensures optimal performance and reliable real-time syncing.

What This Means:

  • If you have never setup your Slack connection, simply follow the setup guide below to create your Slack app before connecting
  • If you have an active Slack connection: it will be fully functional until March 3, 2026. We recommend migrating to the new setup before this deadline

Overview

Dust's integration with Slack allows you to synchronize data from selected Slack channels (public or private). Dust agents can retrieve and utilize conversations and information shared within these channels to provide more relevant and contextual responses.

Setting up the Connection


Connecting Slack to Dust is a 4-step process that takes about 2 minutes:

Step 1: Create Your Slack App

  1. Go to Slack app admin panel (requires Slack admin access)
  1. Click "Create New App""From a manifest"
  1. Select your workspace
  1. Replace the placeholder manifest with the one defined below:

App manifest

Click here to see the full app manifest
{
  "display_information": {
      "name": "Dust Data Sync",
      "description": "Secure AI agent with your company’s knowledge",
      "background_color": "#0f172a",
      "long_description": "The Dust Data Sync Slack app enables seamless synchronization of your Slack workspace data with Dust. Connect channels to make conversations searchable and accessible to your AI assistants."
  },
  "features": {
      "bot_user": {
          "display_name": "Dust Data Sync",
          "always_online": false
      }
  },
  "oauth_config": {
      "redirect_urls": [
          "https://dust.tt/oauth/slack/finalize"
      ],
      "scopes": {
          "user": [
              "channels:read",
              "users:read",
              "chat:write",
              "search:read"
          ],
          "bot": [
              "app_mentions:read",
              "channels:history",
              "channels:join",
              "channels:read",
              "chat:write",
              "files:read",
              "groups:history",
              "groups:read",
              "im:history",
              "im:read",
              "metadata.message:read",
              "mpim:history",
              "mpim:read",
              "team:read",
              "users:read",
              "users:read.email",
              "channels:manage"
          ]
      }
  },
  "settings": {
      "event_subscriptions": {
          "request_url": "https://webhook-router.dust.tt/slack_data_sync/events",
          "bot_events": [
              "channel_deleted",
              "channel_left",
              "channel_created",
              "member_joined_channel",
              "message.channels",
              "message.im",
              "message_metadata_deleted"
          ],
          "metadata_subscriptions": [
              {
                  "app_id": "*",
                  "event_type": "message_metadata_deleted"
              }
          ]
      },
      "interactivity": {
          "is_enabled": true,
          "request_url": "https://webhook-router.dust.tt/slack_data_sync/interactions"
      },
      "org_deploy_enabled": false,
      "socket_mode_enabled": false,
      "token_rotation_enabled": false
  }
}
  1. Click "Create" - your app is ready in seconds!

Step 2: Copy Your Credentials

After creating your app, you'll need three credentials from the "Basic Information" page:

  1. Client ID - Found under "App Credentials"
  2. Client Secret - Found under "App Credentials" (click "Show" to reveal)
  3. Signing Secret - Found under "App Credentials"

Step 3: Connect in Dust

  1. On dust.tt, navigate to Spaces > Connections and select Slack in the list
  2. Enter the three credentials (Client ID, Client Secret, Signing Secret)
  1. Click "Connect"
  2. Authorize the app when Slack prompts you
  3. Select the channels you want to sync

Step 4: Done!

Your Slack connection is now active with optimal rate limits. Dust will sync messages in real-time from your selected channels.

⚠️

Avoid editing your slack app after setup

Once your Slack app is created and connected to Dust, editing some of the app parameters can break your connection. In particular avoid:

  • Updating scopes or permissions
  • Modify redirect URLs
  • Rotating credentials manually

If you noticed one of your credential secret got compromized and you absolutely need to rotate it, then update them immediately in your Dust connection settings. Your connection should resume working

Managing Permissions

  • Adopt a shared-by-default approach—share everything except for the data you want to exclude from Dust.
  • Admins can update permissions directly from the Slack connection in Dust by clicking on Manage Permissions

Updating the connection

  • Admins can synchronize or unselect any Slack public channel by clicking on  Add / Remove data from the Dust Slack connection panel.

Refresh Rate

A few seconds: Changes to channel selections in the Add / Remove data modal are reflected within a few seconds or minutes, depending on the size of the data. The actual sync of new messages from Slack channels is almost instantaneous, meaning Dust will have access to new messages as soon as they are posted.

Slack Connection Specificities

Data Synchronization

  • Dust synchronizes text messages and information from selected public channels.
  • Direct messages, and external files are not accessible by Dust.
  • Messages from other bots (eg: Slack workflows) are not synchronized with Dust.
  • When messages are not threaded, Dust points to the window of the channel message that represents the chunk whose URL is the first message. To optimize Dust synchronization and retrieval of Slack messages, we recommend formatting Slack threads as is: first message with the title and then create a thread.

Labels

Dust syncs the name and id of the channel from Slack messages and include them in the document above the content itself. They are accessible as channelId:xxxxxx and channelName:myChannel.

Labels will allow for additional filtering on data sources selected on the semantic search tool.