Slack
Slack
Federated Search
ℹ️ 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
Connect your Slack workspace using OAuth (one-time setup)
Search in Graffo - your queries are automatically sent to Slack's search API in real-time
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:
Navigate to your Graffo collection
Click "Add Source" and select "Slack"
Follow the OAuth flow to authorize Graffo
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
Click the "Create New App" button
Choose "From scratch"
Enter a name for your app (e.g., "Graffo Local Dev")
Select the workspace you want to connect
Click "Create App"

2. Configure OAuth Permissions
In your Slack app settings, navigate to "OAuth & Permissions" in the sidebar
Scroll down to the "Scopes" section
Under "User Token Scopes", add the following scope:
search:read(required for federated search)

⚠️ Warning Scope Requirements
For federated search, you only need the
search:readuser scope. This allows Graffo to search Slack on your behalf at query time.If you see scopes like
channels:history,channels:read,users:readin older documentation, those were for the legacy sync-based approach and are no longer needed.
3. Install the App to Your Workspace
Scroll back to the top of the "OAuth & Permissions" page
Click the Install to Workspace button
Review the permissions and click "Allow"
After installation, you'll be redirected back to the app settings
Copy the "User OAuth Token" (it starts with
xoxp-)

4. Add the Token to Graffo
In your Graffo application, navigate to the integrations section
Select "Slack" from the available integrations
Choose "Direct Token Injection"
Paste the User OAuth Token you copied in the previous step
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:readuser scope to your Slack appAuthentication failed: Try regenerating the token in Slack and updating it in Graffo
Last updated
