BeforeQuery answers questions in Slack, Discord, and Microsoft Teams with the same grounded, cited answers it gives everywhere else. Mention the bot, use a slash command, or post in a watched forum channel, and it replies in a thread with source links. Install is one click: BeforeQuery runs a shared Slack app and a shared Discord app, so there’s no app to create, no signing secret to copy, and no webhook URL to paste.
Bots see restricted documents. A bot answers inside a workspace you installed it into, so it retrieves what a workspace member sees rather than what an anonymous visitor does — and there is no per-user check, so everyone in the channel gets the same answers. Connecting a bot to an internal knowledge base publishes that knowledge to that channel.

Slack

1

Add the integration

In the dashboard, open Workspace → Integrations, add a Slack integration, and pick the knowledge base that should answer.
2

Click Add to Slack

You’re taken to Slack’s own install screen. Approve it and you’re returned to the dashboard — the connection is stored for you.
3

Turn it on where you want it

Enable the bot from the dashboard, or from Slack itself:A channel setting beats the workspace-wide one, so you can enable everywhere and switch off the two channels where it doesn’t belong.
Enabling and disabling from Slack requires being a Slack workspace owner or admin — checked against Slack, not against your BeforeQuery role.

How people use it

  • Mention it@BeforeQuery how does OAuth work?
  • DM it — a direct message is answered like any question
  • Forum channels — enable a channel and new posts get an automatic first answer
Answers land in a thread under the question, and a follow-up in that thread continues the same conversation. Mention it in a thread it hasn’t spoken in and it reads the messages above first (up to 20 messages / 4k characters, trimmed from the middle) so it understands what “it” refers to.

Files and images

Attach a .pdf, .docx, .xlsx, .xlsm, .md, .mdx, .txt, .html, .csv or .tsv and its text is used as context for that one question — it is never indexed. Images (.png, .jpg, .gif, .webp) are described first, because retrieval is text: a picture has to become words before it can find any documents.

Discord

1

Add the integration

In Workspace → Integrations, add a Discord integration and pick the knowledge base.
2

Click Add to Discord

Choose the server on Discord’s install screen and approve. You’re returned to the dashboard.
3

Turn it on where you want it

As on Slack, a channel setting beats the server-wide one.
Enabling and disabling requires Manage Server or Administrator, checked server-side against the interaction’s permissions.

How people use it

  • Ask directly/beforequery question: how do I rotate a client key?
  • Mention it@BeforeQuery how do I rotate a client key?
  • Forum channels — new posts get an automatic first answer
Answers open a thread off the question; a follow-up there continues the conversation. Attachments work as on Slack (up to 3 files, 5 MB, 12k characters), and thread context is read the same way.
DMs are not answered. A Discord DM channel names no server, so there’s no safe way to know whose knowledge bases to search.Forum auto-reply needs the Message Content Intent enabled for the app. Mentions do not.

Microsoft Teams

Teams uses a per-tenant app rather than a shared one. Add a Teams integration under Workspace → Integrations with your bot’s app ID and app password, then side-load the app into your tenant. Answers arrive as Adaptive Cards with the same citations and rating controls.

Ratings

Every answer carries bare 👍 / 👎 buttons — no label, and no count is ever shown in the channel. A click is seen only by the person who clicked. Buttons rather than emoji reactions, because Slack prints a running total beside a reaction and gives no way to hide it: seeding both thumbs stamped ”👍 1 👎 1” on answers nobody had voted on. The bots seed nothing now. A reader’s own reaction still counts, so someone who prefers reacting isn’t ignored. One vote is recorded per answer — a signal for the owner, not a poll — but pressing the lit thumb withdraws only your own. Votes land in the same store as widget and dashboard feedback, tagged with where they came from, and show up in Analytics beside everything else.
Set feedback to off on an integration to withhold the buttons. That also skips the answer link, so a reaction on it scores nothing either.

Bring your own app

If you’d rather run your own Slack or Discord application — a private app, a custom name, your own rate limits — that still works. Add the integration with your own credentials (Slack: signing secret and bot token; Discord: public key, application ID, and bot token) and point your app at the integration’s dedicated webhook URL. Slack requests are verified with v0 HMAC-SHA256 against a 5-minute replay window; Discord interactions are Ed25519-verified. The shared app is the recommended path — it needs no maintenance from you and picks up new features automatically.
Bot answers count toward workspace usage metering, and every exchange appears in conversations and analytics alongside widget and API traffic.