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 Endpoint | Purpose |
|---|---|
| assistant.search.context | Real-time search endpoint (RTS) |
| users.list | List users in a workspace |
| users.info | Fetch user details |
| conversations.list | List all channels (public, private, DMs, MPIMs) |
| conversations.members | List members of a channel |
| team.info | Fetch workspace/team metadata |
| auth.teams.list | List all workspaces accessible to the app |
Crawling strategy
| Crawl type | Full Crawl | Incremental Crawl | People Data | Activity | Update Rate | Webhook | Notes |
|---|---|---|---|---|---|---|---|
| Identity | Yes | Yes | Yes | No | Periodic | No | Used for user/channel metadata |
| Content | No | No | No | No | N/A | No | No content crawls; search is federated |
| Real-time Search | N/A | N/A | N/A | N/A | Real-time | No | Search is performed live via API |
| Webhooks | No | No | No | Yes | Real-time | Yes | Used 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 isyourdomain. - 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
Set up Slack Real Time Search
- 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.
- Click Setup.
- Collect the following account details for the single workspace and enter in Glean:
- Open Slack in the browser at
https://app.slack.com/client. - 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.
- 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.
- Open Slack in the browser at
- Collect the following account details for the Enterprise Slack and enter in Glean:
-
Open Slack in the browser at
https://app.slack.com/client. - 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.
-
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.
-
Open Slack in the browser at
- 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.
- Complete the OAuth consent; tokens are stored in your Glean deployment.
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:Webhooks and events
Webhooks are routed through the central Slack app to your deployment; routing is based onteam_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).
-
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.