Beever Atlas v0.1 has launched! Star us on GitHub
Beever AtlasBeever Atlas

Slack Integration Setup

Connect Beever Atlas to your Slack workspace to automatically ingest conversations, extract knowledge, and build a searchable wiki.

Prerequisites

Before setting up Slack integration, ensure you have:

  • Beever Atlas installed and running (see Installation)
  • Admin access to a Slack workspace
  • Ability to create Slack apps

Overview

The Slack integration consists of two components:

  1. Ingestion Pipeline: Fetches historical and new messages from channels
  2. Bot Service: Responds to mentions and provides real-time updates

Mock Mode First: If you're just exploring, start with Quick Start which uses mock data and requires no Slack credentials.

Step 1: Create a Slack App

1.1 Go to Slack API

Navigate to api.slack.com/apps and click Create New App.

1.2 Choose Creation Method

Select From scratch and enter:

  • App Name: Beever Atlas (or your preferred name)
  • Pick a workspace: Select the workspace to connect

Click Create App.

Step 2: Configure Bot Permissions

2.1 Add a Bot

In the app configuration sidebar, click Bot under Features, then click Add a Bot.

Configure your bot:

  • Display name: Beever Atlas
  • Default username: beever-atlas-bot
  • Click Add Bot

2.2 Configure Bot Token Scopes

Under the Bot section, find OAuth & Permissions and add the following Bot Token Scopes:

ScopePurpose
channels:historyRead messages from public channels
channels:readList public channels
groups:historyRead messages from private channels
groups:readList private channels
im:historyRead direct messages
im:readList direct messages
mpim:historyRead group direct messages
mpim:readList group direct messages
users:readRead user information
files:readAccess file metadata
links:readResolve link previews
chat:writeSend messages (for bot responses)
reactions:readRead reactions

Permission Note: Only grant scopes for channels you want to ingest. For private channels, ensure your bot is invited to those channels.

Step 3: Install and Authorize

3.1 Install to Workspace

In OAuth & Permissions, click Install to Workspace.

Review the permissions and click Allow.

3.2 Save Bot Token

After installation, you'll see a Bot User OAuth Token starting with xoxb-.

Copy this token — you'll need it to configure Beever Atlas.

Security: Treat your bot token like a password. Never commit it to version control or share it publicly.

Step 4: Configure Beever Atlas

4.1 Disable Mock Mode

Edit your .env file:

ADAPTER_MOCK=false

4.2 Add Slack Token via Dashboard

The recommended method is to add credentials through the web UI:

  1. Open http://localhost:3000
  2. Navigate to SettingsConnections
  3. Click Add Connection
  4. Select Slack
  5. Paste your xoxb- bot token
  6. Click Save

Secure Storage: Credentials are encrypted using AES-256-GCM and stored in MongoDB. The CREDENTIAL_MASTER_KEY in your .env is used for encryption.

For development only, you can set the token directly in .env:

SLACK_BOT_TOKEN=xoxb-your-token-here

Note: This is less secure than using the dashboard.

Step 5: Restart Services

After configuring Slack integration, restart the services:

docker compose restart beever-atlas bot

Step 6: Sync Your Channels

6.1 List Available Channels

After restart, the bot will automatically fetch available channels. You can view them in the dashboard:

  1. Navigate to Channels
  2. See the list of public and private channels
  3. Channels appear once the bot has access

6.2 Trigger a Sync

To sync a channel:

Via Dashboard:

  1. Go to Channels
  2. Find the channel you want to sync
  3. Click Sync
  4. Monitor progress in the Sync Status column

Via API:

# Trigger sync for a channel
curl -X POST http://localhost:8000/api/channels/C12345/sync

# Check sync status
curl http://localhost:8000/api/channels/C12345/sync/status

6.3 Monitor Sync Progress

The sync process:

  1. Fetches historical messages (up to SYNC_MAX_MESSAGES per run)
  2. Processes through the 6-stage ingestion pipeline
  3. Extracts facts and entities
  4. Builds topic clusters
  5. Generates wiki pages

Large Channels: For channels with thousands of messages, Atlas uses Gemini Batch API for efficient processing. Sync may take several minutes.

Step 7: Enable Real-Time Updates (Optional)

To receive real-time updates when new messages are posted:

7.1 Enable Socket Mode

In your Slack app configuration:

  1. Go to Socket Mode under Features
  2. Toggle Socket Mode to On
  3. Copy the App-Level Token (starts with xapp-)

7.2 Configure in Atlas

Add the App-Level Token to your .env:

SLACK_APP_TOKEN=xapp-your-app-token-here

Restart the bot service:

docker compose restart bot

The bot will now receive real-time events and trigger incremental syncs.

Troubleshooting

"Bot not in channel" Error

The bot must be invited to private channels:

  1. Go to the channel in Slack
  2. Type /invite @Beever Atlas
  3. Allow the bot to join

"Invalid Auth" Error

Check that:

  • Bot token is correct (starts with xoxb-)
  • Bot has required scopes
  • Bot hasn't been revoked or regenerated

No Channels Appearing

Verify:

  1. Bot is running: docker compose logs bot
  2. Token is valid: Check in Slack app settings
  3. Required scopes are granted

Sync Not Completing

Check logs:

docker compose logs beever-atlas --tail 100 -f

Common issues:

  • Rate limiting from Slack API
  • Insufficient API quota (Google/Jina)
  • Large channels taking time to process

Permission Errors

Ensure the bot has:

  • channels:history or groups:history (for private channels)
  • users:read (to extract user information)
  • files:read (to process attachments)

Best Practices

Channel Selection

Start with a few key channels:

  • Engineering discussions
  • Decision-making channels
  • Knowledge-sharing forums
  • Project-specific channels

Sync Frequency

For large workspaces:

  • Sync channels incrementally
  • Use SYNC_MAX_MESSAGES to control batch size
  • Schedule syncs during off-hours

Privacy Considerations

  • Review bot permissions regularly
  • Only sync channels with appropriate access
  • Consider separate Atlas instances for sensitive data
  • Enable channel-level ACL for access control

What's Next?

Connected successfully? Try asking questions about your Slack conversations in the Q&A interface!

How is this guide?

On this page

Ready for production?

Ship to production with SSO, audit logs, spend controls, and guardrails your security team will approve.

Talk to the team

or email hello@beever.ai