Slack Integration
Send public posts and comments to Slack, and create draft posts with /boarbs or a message shortcut.
Connect each Boarbs organization to a Slack workspace from Settings → Integrations. After Connect, an organization admin chooses an organization default channel, and can optionally choose a different channel per board.
After setup, Boarbs sends a message when:
- a post is created on a public board
- a public comment is created on a public board
Each message includes the post title, author email, board name, and a link to the post. Internal comments and votes are never sent to Slack.
In a connected channel you can also create a Boarbs post from Slack. The post starts as a draft. It is not public on the board until someone clicks Approve in the channel. Reject discards the draft.
Create a post from Slack
Use either entry point in a connected channel (organization default or a board override):
/boarbsfollowed by the post text- the Create Boarbs post message shortcut on an existing top-level message
The first line becomes the title. Extra lines become the body. If there is only one line, it is used for both. Empty text does nothing.
Boarbs posts a channel message for that draft with Approve and Reject. Only Approve publishes the post to the board. Reject (or Ablehnen) discards the draft and removes the actions so it cannot be approved later.
Author identity is the Slack user (display name plus a stable slack:U… identity), the same pattern as comments imported from Slack.
Board routing:
- A board-specific channel creates the draft on that board.
- The organization default channel uses the organization's oldest public board.
Casual chat is not imported and does not become a draft. Bot and app messages are ignored, including notifications Boarbs itself posted. Thread replies under a Boarbs notification stay on two-way comment sync and do not create a second post.
After a draft is approved, Boarbs sends the normal public-post notification so the channel gets the usual message and comment thread. That notification is a bot message, so it is not imported as another post. The approval prompt is updated so Approve cannot be used again.
Two-way replies
On those existing notification threads only, public comments sync both ways:
- A reply in the Slack thread under a Boarbs notification becomes a public comment on that post.
- A public comment on that post in Boarbs is posted as a reply in the same Slack thread.
Two-way sync does not create posts from Slack. It only uses replies under notification messages Boarbs has already sent, including threads posted to a board channel, and only public comments.
If a Slack workspace is already connected, an organization admin must disconnect Slack, authorize it again, and re-select the channel so the new reply-sync scopes are granted.
Configure the Platform Slack App
The person operating the Boarbs deployment must create one Slack app for the platform and add these bot token scopes under OAuth & Permissions:
channels:readgroups:readchat:writechat:write.publicchannels:historygroups:historychannels:joinusers:read
Under Event Subscriptions, enable events and set this Request URL, replacing the origin with the deployment's NEXT_PUBLIC_SITE_URL:
https://your-boarbs-domain.example/api/integrations/slack/eventsSubscribe the bot to these events:
message.channelsmessage.groups
Under Slash Commands, create /boarbs and set this Request URL, replacing the origin the same way:
https://your-boarbs-domain.example/api/integrations/slack/commandsUse a short description such as Create a Boarbs post draft and a usage hint such as [title]. The command text after /boarbs becomes the draft. Extra lines become the body. Approve or reject the draft in the channel.
Under Interactivity & Shortcuts, enable interactivity and set this Request URL:
https://your-boarbs-domain.example/api/integrations/slack/interactionsCreate a message shortcut named Create Boarbs post with callback ID create_boarbs_post. People can use it on an existing top-level message in a connected channel.
Add this OAuth redirect URL, replacing the origin the same way:
https://your-boarbs-domain.example/api/integrations/slack/callbackSet these server-side environment variables in Dokploy:
SLACK_CLIENT_ID=...
SLACK_CLIENT_SECRET=...
SLACK_SIGNING_SECRET=...
SLACK_TOKEN_ENCRYPTION_KEY=...
CRON_SECRET=...SLACK_SIGNING_SECRET comes from the Slack app's Basic Information page and is required to verify Events API requests. SLACK_TOKEN_ENCRYPTION_KEY should be a long random secret dedicated to encrypting stored Slack access tokens. Boarbs falls back to BETTER_AUTH_SECRET, but a separate key is recommended. The Slack connect action stays unavailable until both SLACK_CLIENT_ID and SLACK_CLIENT_SECRET are set.
Slack notifications use Boarbs' retryable notification queue. Vercel runs /api/cron/process-notifications every minute from vercel.json. On Dokploy, schedule the same path every minute with an Authorization: Bearer <CRON_SECRET> header.
Restart the deployment after changing environment variables.
Choose channels
After authorization you return to Settings → Integrations for the same organization.
- Organization default: select a channel and save it. Used when a board does not have its own channel.
- Board channels: each board can override the default. Choose Organization default to clear an override.
Public channels are available automatically. To use a private channel, invite the Boarbs Slack app to that channel first.
Changing a board channel starts new notification threads in the new channel. Existing threads stay where they were posted.
Disconnect Slack
Organization admins can disconnect Slack from Settings → Integrations. Disconnecting removes the stored workspace connection and stops queued and future Slack notifications.