Skip to main content
The Slack RTS connector integrates Glean with Slack workspaces and Slack Enterprise Grid organizations via Slack’s real-time search (RTS) APIs. This connector allows you to search Slack messages and channels in real time, ensuring that results are always up to date and that you only see content you are authorized to access.

Key capabilities

  • Search: Queries Slack’s real-time search endpoint directly and returns message results to Glean in real time.
  • Identity crawls: Periodic full and incremental identity crawls provide user, channel, and related metadata used by Gleanbot/actions and to enrich search responses.
  • Enterprise Grid support: Organization-wide deployment across multiple workspaces.
  • Central OAuth App: Uses a Glean-managed, centrally hosted Slack app listed in the Slack Marketplace.
  • Gleanbot and Actions: Bot user for posting messages, receiving mentions, and handling slash commands.
  • Webhooks: Real-time event handling for identity events and triggering Gleanbot.

Modes (Select during setup)

  • Single Workspace: One datasource instance authorized for a single workspace. Recommended for customers with a single Slack workspace.
  • Enterprise: One datasource instance authorized for the Slack Enterprise Grid organization; covers all workspaces. Recommended for enterprise customers with multiple workspaces and slack enterprise license.

Supported objects/entities

  • Public channels (messages and threads)
  • Private channels (messages and threads, if authorized)
  • Direct messages (DMs) and group DMs (if authorized)
  • Channel and user metadata (for search enrichment and Gleanbot features)

Supported API endpoints/features

API EndpointPurpose
assistant.search.contextReal-time search endpoint (RTS)
users.listList users in a workspace
users.infoFetch user details
conversations.listList all channels (public, private, DMs, MPIMs)
conversations.membersList members of a channel
team.infoFetch workspace/team metadata
auth.teams.listList all workspaces accessible to the app

Crawling strategy

Crawl typeFull CrawlIncremental CrawlPeople DataActivityUpdate RateWebhookNotes
IdentityYesYesYesNoPeriodicNoUsed for user/channel metadata
ContentNoNoNoNoN/ANoNo content crawls; search is federated
Real-time SearchN/AN/AN/AN/AReal-timeNoSearch is performed live via API
WebhooksNoNoNoYesReal-timeYesUsed for Gleanbot and event triggers

Results display

Search results display individual Slack messages, including context (a few messages before and after the match, often within the same thread). When used with Glean Assistant, results may include additional context. If Slack’s AI Search is enabled, semantic search is supported for natural language queries.

Connect Slack to Glean

Review the prerequistes before you begin setting up your connector.

Prerequisites

  • Slack Admin or Owner privileges are recommended to authorize the app, complete org-level installation (Enterprise), and manage app visibility. For more information, see Find owners and admins.
  • Slack workspace domain, e.g., if your Slack URL is yourdomain.slack.com, the domain is yourdomain.
  • Slack workspace ID. Your Slack Workspace ID (starts with T…) and, for Enterprise Grid, your Enterprise ID (starts with E…).
Each user must individually authorize the app to access their private messages and DMs.

Decide your mode

You can select single workspace or Enterprise (org-level) based on your Slack plan and target scope.
  • Slack Real Time Search (Single workspace)
  • Slack Real Time Search Enterprise
  1. In Glean Admin console > Data source > select Slack Real Time Search for single workspace or select Slack Real Time Search Enterprise for the Enterprise (org-level) Slack.
  2. Click Setup.
  3. Collect the following account details for the single workspace and enter in Glean:
    1. Open Slack in the browser at https://app.slack.com/client.
    2. Look for your workspace name in the top left. Click your workspace name and find the Slack URL in the menu, ending in .slack.com. The domain is the portion before .slack.com, e.g. if the URL is yourdomain.slack.com, the domain would be yourdomain. Enter the Slack domain in Glean.
    3. The URL you’re on should be of the form app.slack.com/client/T12345678. Copy this last part of the URL and paste it into Glean as the workspace ID. Note the workspace ID will start with T. Enter the ID in the Slack team ID field in Glean.
  4. Collect the following account details for the Enterprise Slack and enter in Glean:
    1. Open Slack in the browser at https://app.slack.com/client.
    2. Click on your organization’s name on the top left. You should see your domain listed in the form domain.enterprise.slack.com. Enter the domain in the Slack Enterprise domain field.
    3. The URL you’re on should be of the form app.slack.com/client/E12345678/C12345678. Copy the enterprise part of the URL and paste it into Glean as the enterprise ID.
    The enterprise ID starts with E.
  5. Click Authorize. You’ll be redirected to Slack to authorize the Glean Slack app. For Enterprise, perform an org-level install so the app is installed to all workspaces in the Grid.
  6. Complete the OAuth consent; tokens are stored in your Glean deployment.
RTS uses a centrally hosted Glean Slack app; you do not create a custom Slack app, do not configure your own event subscriptions, and do not generate app-level tokens. Webhooks are routed via the central Slack app and require no extra configuration once installed.
For Enterprise: Verify the app appears at the organization level in Slack’s app management and is available in all intended workspaces.

Authentication and scopes

RTS uses the central Slack app on scio-apps. After the OAuth flow, user tokens are stored in your deployment and used for both identity crawls and federated search. Scopes requested:
user:
  - channels:read
  - groups:read
  - im:read
  - mpim:read
  - search:read.files
  - search:read.im
  - search:read.mpim
  - search:read.private
  - search:read.public
  - team:read
  - users:read
  - users:read.email

bot:
  - app_mentions:read
  - assistant:write
  - channels:history
  - channels:read
  - chat:write
  - chat:write.public
  - commands
  - groups:history
  - groups:read
  - im:history
  - im:write
  - links:read
  - links:write
  - mpim:history
  - mpim:read
  - reactions:write
  - users:read

Webhooks and events

Webhooks are routed through the central Slack app to your deployment; routing is based on team_id or enterprise_id. No additional configuration is required after installation. Event endpoints:
  • /datasources/slack/rts_events: Umbrella endpoint handling user and bot events (messages, channel membership changes, channel lifecycle events, etc.).
  • /datasources/slack/rts_command: Slash commands (e.g., /glean {query}).
  • /datasources/slack/rts_interaction: Interactive components (buttons, modals).
Event types handled (selected):
  • Identity-related: channel_created, channel_deleted, channel_left, channel_rename, channel_unarchive, group_deleted, group_left, member_joined_channel, member_left_channel, team_join
  • Gleanbot-related: app_home_opened, app_mention, assistant_thread_context_changed, assistant_thread_started, link_shared, message.channels, message.groups, messages.im, message.mpim, team_join

Search results, context, and semantics

  • Context Messages: Glean Search Page shows individual messages; in assistant, surrounding context (before/after the match) is included, typically within the same thread.
  • Keyword vs. Semantic Search: Slack defaults to keyword search. If Slack’s AI Search is enabled in the customer workspace, semantic search is supported and is typically triggered when a query is phrased as a natural language question (starts with “what/where/how…”, or ends with a question mark). This can be confirmed via assistant.search.info.is_ai_search_enabled.

Rate limiting and performance

RTS respects Slack’s tiered API limits via per-endpoint queue routing for identity and metadata endpoints; search queries are executed on-demand (not queued) and can hit rate limits during high usage. For more information, see Rate limits.

Gleanbot and actions

Gleanbot and Actions work through the Glean’s marketplace approved Slack app. Full functionality requires a full identity crawl to complete; for digests and mentions, Gleanbot leverages federated search. For more information, see Glean in Slack RTS and Slack actions.

Security notes

  • OAuth tokens are stored on your Glean deployment.
  • RTS uses both user and bot scopes as listed above; these enable federated search, identity crawls, and Gleanbot features.