Slack Bots

Deploy AI-powered bots in Slack with @mentions, DMs, and streaming responses.

Advanced
5 min read

Slack Bots

Connect your Gravity Rail agents to Slack. Respond to @mentions, interact via DMs, and stream real-time AI responses directly in Slack channels and threads.

Quick Start

1. Create a Slack App

  1. Go to api.slack.com/apps
  2. Click Create New App > From an app manifest
  3. Select your workspace, paste the manifest below, and click Create
json
  1. Note your Signing Secret from Basic Information
  2. Note your Client ID and Client Secret from OAuth & Permissions

2. Add Bot in Gravity Rail

  1. Go to Settings > Slack
  2. Click Add Slack App
  3. Enter:
    • App Name
    • Agent (select the AI agent that will respond)
    • Signing Secret
    • Client ID
    • Client Secret
  4. Save

3. Configure Slack App URLs

In your Slack app settings at api.slack.com:

  1. Event Subscriptions > Enable Events > set Request URL to: https://api.gravityrail.com/api/v2/w/{workspaceUuid}/app-connections/slack/events

  2. OAuth & Permissions > add both Redirect URLs:

    • https://api.gravityrail.com/api/v2/w/{workspaceUuid}/app-connections/slack/oauth/callback (bot)
    • https://api.gravityrail.com/api/v2/w/{workspaceUuid}/app-connections/slack/oauth/user/callback (user)

Replace {workspaceUuid} with your workspace UUID. These URLs are also shown when you run gr slack-apps get.

4. Install to Slack

  1. Go to the Connect tab in your app configuration
  2. Click Install to Slack
  3. Authorize the requested permissions

Your bot is now live! Try @mentioning it in a channel.

Response Modes

ModeWhen Bot Responds
Mentions (default)Only when @mentioned
AutoAI decides based on context
OffDMs and slash commands only

Set in your app's Behavior tab.

Auto Mode

In Auto mode, the bot uses AI to decide when to respond. You can customize the decision criteria with the Respond When field.

Requirements for Auto mode:

  • Subscribe to message.channels and message.groups events in Slack
  • Invite the bot to channels with /invite @botname

Streaming Responses

Slack bots support real-time streaming with "Thinking..." indicators:

  1. Enable Agents & Assistants in your Slack app settings
  2. Add the assistant:write scope
  3. Reinstall the app to apply new scopes

Streaming works in threads. The bot shows a "Thinking..." status while generating, then streams the response word-by-word.

Account Linking

Link Slack users to Gravity Rail members for personalized responses.

Auto-Link: Matches users by verified email automatically.

Manual: Users can link their accounts through Settings > Slack > Connect.

Linked accounts get responses personalized with member data.

Required OAuth Scopes

All 16 scopes are needed for full functionality:

ScopePurpose
app_mentions:readRead @mentions
assistant:writeAct as App Agent (streaming)
channels:historyRead public channel messages
channels:joinJoin public channels
channels:readView public channel info
chat:writeSend messages
groups:historyRead private channel messages
groups:readView private channel info
im:historyRead DM messages
im:readView DM info
im:writeStart DMs
mpim:historyRead group DM messages
mpim:readView group DM info
mpim:writeStart group DMs
users:readView workspace users
users:read.emailView user emails (for account linking)

Settings Reference

General

SettingDescription
App NameDisplay name for this configuration
AgentAI agent that handles interactions
Signing SecretFrom Slack Basic Information
Client IDFor OAuth flows
Client SecretFor OAuth flows

Behavior

SettingDescription
Respond Modementions, auto, or off
Respond WhenCustom AI prompt for auto mode decisions
Reply in ThreadsWhether responses go in threads
Allow DMsEnable direct message interactions

Advanced

SettingDescription
Allowed ChannelsRestrict bot to specific channel IDs
Socket ModeUse WebSocket instead of HTTP (for firewalls)

Tips

  • Test in a private channel first before deploying widely
  • Use threads to keep conversations organized
  • Enable streaming for a better user experience
  • One app, many workspaces - install the same app to multiple Slack workspaces

Common Issues

Bot not responding to messages

Check event subscriptions, verify the signing secret matches, and ensure the bot is invited to the channel

Thread messages not received in Auto mode

Subscribe to message.channels and message.groups events, then reinstall the app

Streaming not working

Enable Agents & Assistants in Slack, add assistant:write scope, and reinstall

"Thinking..." indicator not showing

Requires assistant:write scope and messages must be in a thread

  • Channels — Overview of all communication channels
  • Discord Bots — Deploy AI bots in Discord
  • Workflows — Build the conversation flows that power your bot