Slack

Slack


ℹ️ Info Real-Time Search Without Syncing

The Slack connector uses federated search to query your Slack workspace in real-time at search time, rather than syncing all messages into Graffo's database. This approach:

  • Avoids hitting Slack's strict rate limits

  • Keeps your data in Slack (nothing synced to Graffo)

  • Returns fresh, up-to-date results at query time

  • Searches across all channels you have access to

When you search in Graffo, your query is automatically sent to Slack's search API, and results are merged with data from your other connected sources.

How It Works

  1. Connect your Slack workspace using OAuth (one-time setup)

  2. Search in Graffo - your queries are automatically sent to Slack's search API in real-time

  3. Results are merged with data from your other sources using intelligent ranking

No data is synced or stored in Graffo - everything happens at search time.

Prerequisites

  • Access to a Slack workspace where you have permissions to add apps

  • Administrator access to your Graffo instance

Setup Steps

Option A: Production Setup (OAuth Flow)

When running Graffo in production (non-localhost), simply:

  1. Navigate to your Graffo collection

  2. Click "Add Source" and select "Slack"

  3. Follow the OAuth flow to authorize Graffo

  4. That's it! Your Slack workspace is now searchable

The OAuth flow will request the search:read user scope, which allows Graffo to search on your behalf.

Option B: Local Development Setup (Manual Token)

Slack does not allow OAuth2 flows for http://localhost, so for local development you'll need to manually create a token.

1. Create a Slack App

  1. Click the "Create New App" button

  2. Choose "From scratch"

  3. Enter a name for your app (e.g., "Graffo Local Dev")

  4. Select the workspace you want to connect

  5. Click "Create App"

Create app in Slack

2. Configure OAuth Permissions

  1. In your Slack app settings, navigate to "OAuth & Permissions" in the sidebar

  2. Scroll down to the "Scopes" section

  3. Under "User Token Scopes", add the following scope:

    • search:read (required for federated search)

User Token Scopes

⚠️ Warning Scope Requirements

For federated search, you only need the search:read user scope. This allows Graffo to search Slack on your behalf at query time.

If you see scopes like channels:history, channels:read, users:read in older documentation, those were for the legacy sync-based approach and are no longer needed.

3. Install the App to Your Workspace

  1. Scroll back to the top of the "OAuth & Permissions" page

  2. Click the Install to Workspace button

  3. Review the permissions and click "Allow"

  4. After installation, you'll be redirected back to the app settings

  5. Copy the "User OAuth Token" (it starts with xoxp-)

OAuth2 User token in Slack

4. Add the Token to Graffo

  1. In your Graffo application, navigate to the integrations section

  2. Select "Slack" from the available integrations

  3. Choose "Direct Token Injection"

  4. Paste the User OAuth Token you copied in the previous step

  5. Save your changes

Verification

After completing these steps, try searching in your Graffo collection. Your search query will be automatically sent to Slack, and relevant messages will appear in your search results alongside data from your other sources.

Troubleshooting

  • No Slack results appearing: Verify the token was copied correctly and hasn't expired

  • Permission errors: Ensure you've added the search:read user scope to your Slack app

  • Authentication failed: Try regenerating the token in Slack and updating it in Graffo

Last updated