# Slack (/search/slack)



Connect Slack as a source to search messages and files your account can access. Install **Sim Search** separately to ask questions from Slack. Installing the bot does not connect each person's source accounts or add Sim organization members.

Slack Search uses **Member accounts** and the member's real-time user token. There is no service mode, admin channel selection, or background message indexing.

## Add Slack as a source [#add-slack-as-a-source]

1. An admin adds **Slack** in **Settings → Sources**.
2. Complete the organization's app setup if needed. Use the official Sim Search app when available, or the deployment's custom app.
3. Each member selects **Integrations → Slack → Connect** and authorizes their account.
4. Search a known message, read it, and follow its Slack link. No channel setup or initial sync is needed.

Members need a Sim invitation or SSO membership separately. Provider app/workspace approval policies still apply.

## Search messages and files [#search-messages-and-files]

Sim calls `assistant.search.context` with your user token. Public/private channels, DMs, group DMs, and files follow that account's access and scopes, without an additional organization filter.

Slack search modifiers can narrow the query. Relevance can use semantic matching where available; date ordering uses keyword retrieval and timestamp order. Continue returned provider cursors on the same query and account. Scope, rate-limit, and retrieval failures are reported explicitly.

Message reads use your thread access. File reads return available previews and source links, not unrestricted attachment downloads. Retention, search freshness, and API limits affect coverage.

## Use Sim Search in Slack [#use-sim-search-in-slack]

An admin opens **Settings → Sim Search in Slack** and installs or connects the bot for the target workspace. Members still connect sources in **Integrations**. Answers use the same Search retrieval and authorization as Sim and Search MCP.

* DM **Sim Search**, or mention it in a channel it has joined.
* Where the installed app exposes slash commands, use `/query [question]` to start a private DM thread. Channel invocations keep personalized answers and account details in DMs.
* Use `/connect [provider]` where available, or **Home → Connect sources**, to open personal Integrations. Select **Connect** there to start OAuth.
* Follow source links. Slack's **Stop** control cancels an active answer and queued follow-ups.

Removing the bot binding is separate from disconnecting your Slack source.

## Custom app and self-hosted setup [#custom-app-and-self-hosted-setup]

Use the generated manifest from the setup flow. Keep its OAuth callbacks, events, interactivity URL, and full bot/user permissions together. Slack must reach the HTTPS event endpoint; localhost browser authorization does not make inbound events reachable.

The organization uses one configured app and workspace for member connections. App or scope changes require reconnecting affected members. Real-time search must be available to the app, such as an eligible internal or approved app; bot installation alone does not establish eligibility.

The live user grant includes:

```text
search:read.public
search:read.private
search:read.im
search:read.mpim
search:read.files
files:read
```

Shared configuration also includes identity and conversation-read scopes. Bot permissions separately receive and answer questions. Do not replace the manifest's full scope set with only this subset or copy another environment's credentials.

Register the generated URLs on your exact Sim origin:

```text
https://<your-sim-domain>/api/knowledge/slack/oauth/callback
https://<your-sim-domain>/api/credential-groups/slack-managed-users/callback
https://<your-sim-domain>/api/credential-groups/oauth/slack/callback
```

## Troubleshooting [#troubleshooting]

| Problem | Check |
| - | - |
| `Not configured` | Ask an admin to finish organization app setup. |
| Real-time scope missing | Update user permissions, approve/reinstall as Slack requires, then reconnect. |
| Real-time search unavailable | Check app eligibility; a working bot does not prove search access. |
| Private channel or DM missing | Check member access and required scope. |
| Bot cannot answer | Check organization binding, Sim membership, and personal source connections. |
| No localhost bot events | Use a deployment callback reachable by Slack. |
| Incomplete results | Check provider limits/retention, narrow the query, or continue the provider page. |

## Related docs [#related-docs]

* [Slack real-time search](https://docs.slack.dev/reference/methods/assistant.search.context/)
* [Slack app manifests](https://docs.slack.dev/reference/app-manifest/)
