Skip to main content
OpenBunny connects to Slack using Socket Mode, which means no public URL or webhook is required. Messages are received in real time over a WebSocket connection.

Prerequisites

  • A Slack workspace where you have admin access
  • A Slack app with Socket Mode enabled

Create a Slack app

1
Create the app
2
Go to api.slack.com/apps and create a new app from scratch.
3
Enable Socket Mode
4
Go to Socket Mode in the sidebar and enable it. This generates an app-level token starting with xapp-.
5
Add bot scopes
6
Go to OAuth & Permissions and add these bot token scopes:
7
  • channels:history — read messages in public channels
  • groups:history — read messages in private channels
  • im:history — read direct messages
  • mpim:history — read group direct messages
  • users:read — read user profiles
  • 8
    Enable event subscriptions
    9
    Go to Event Subscriptions and enable events. Subscribe to these bot events:
    10
  • message.channels
  • message.groups
  • message.im
  • message.mpim
  • 11
    Install the app
    12
    Go to Install App and install to your workspace. Copy the bot token starting with xoxb-.
    13
    Configure environment
    14
    SLACK_APP_TOKEN=xapp-1-your-app-token
    SLACK_BOT_TOKEN=xoxb-your-bot-token
    

    How it works

    The service uses @slack/socket-mode to maintain a persistent WebSocket connection. When a message is received:
    1. The message is normalized and stored in the conversations/messages tables
    2. The debounce timer resets for that conversation
    3. After the debounce period, the scheduler picks up the conversation for LLM processing

    Channel selection

    By default, OpenBunny listens to all channels the bot is invited to. Invite the bot to specific channels using /invite @OpenBunny in Slack.