Discord Integration

Send public activity to one Discord channel, and create public posts with /feedback.

Connect each Boarbs organization to a Discord server from Settings → Integrations. An organization admin authorizes Discord and chooses one channel for that organization.

After setup:

  • Boarbs sends a message when a post is created on a public board
  • Boarbs sends a message when a public comment is created on a public board
  • Members of that Discord server can run /feedback to create a public Boarbs post (title + text)

Each outbound message includes the post title, author email, board name, and a link to the post. Internal comments and votes are never sent to Discord.

Create a post with /feedback

In the connected Discord server, run /feedback and enter a title and text. Boarbs creates a public post for that organization and replies in Discord with a link, or a clear error.

  • If the organization has one public board, /feedback uses it automatically.
  • If the organization has several public boards, set the board option to the board name or slug.

/feedback only creates posts for the organization whose Discord server is connected. It does not create posts in unconnected servers.

If /feedback does not appear, the server was likely connected before slash commands were enabled. An organization admin should disconnect Discord and authorize it again from Settings → Integrations. Reconnecting the same server keeps the selected notification channel.

Configure the Platform Discord App

The person operating the Boarbs deployment must create one application in the Discord Developer Portal:

  1. Open OAuth2 → General and add the redirect URL below.
  2. Open Bot, create the application's bot, enable Requires OAuth2 Code Grant, and copy its token.
  3. Keep the bot permission grant limited to View Channels, Send Messages, and Embed Links. Boarbs requests those permissions during authorization, plus the applications.commands scope so /feedback can be added to the server.
  4. Open General Information and set the Interactions Endpoint URL below.

Add this exact OAuth2 redirect URL, replacing the origin with the deployment's NEXT_PUBLIC_SITE_URL:

https://your-boarbs-domain.example/api/integrations/discord/callback

Set this Interactions Endpoint URL, replacing the origin the same way:

https://your-boarbs-domain.example/api/integrations/discord/interactions

Discord sends a PING to verify that URL. Save it only after verification succeeds.

Set these server-side environment variables in Dokploy:

DISCORD_CLIENT_ID=...
DISCORD_CLIENT_SECRET=...
DISCORD_BOT_TOKEN=...
CRON_SECRET=...

DISCORD_CLIENT_ID and DISCORD_CLIENT_SECRET come from OAuth2 → General. DISCORD_BOT_TOKEN comes from the application's Bot page and must be kept secret. The Discord connect action stays unavailable until all three Discord variables are set.

Discord 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 a Channel

After authorization, you return to Settings → Integrations for the same organization. Select a text or announcement channel that the Boarbs bot can view, and save it.

You can change the selected channel later. Each organization has exactly one selected Discord channel.

Disconnect Discord

Organization admins can disconnect Discord from Settings → Integrations. Disconnecting removes the stored organization connection and stops queued and future Discord notifications. It does not remove the shared Boarbs bot from the Discord server.

Boarbs© 2026 Boarbs