Qunivex
Language
Log In
Discord Bot
On this page
  • 01What it does
  • 02Requirements
  • 03Connecting a server
  • 04Permissions requested
  • 05Talking to the bot
  • 06Which agent answers
  • 07Conversation memory
  • 08Limits & billing
  • 09Data & privacy
  • 10Disconnecting
  • 11Troubleshooting
Qunivex.com · Discord · v1.52.0.1
Integrations

Qunivex for Discord

Add the Qunivex bot to a Discord server and it answers members with this project's agent — same prompt, same knowledge base, same tools and guardrails as your website widget. Setup is an OAuth install: no bot token to copy, no code to host.

OAuth install · one bot, every plan that includes it

1What it does

One Discord application serves every Qunivex customer. Connecting a server authorises that shared bot onto your guild and links it to one project — it does not create a bot of your own, and there is nothing to host or keep running on your side.

Once connected, members reach the agent three ways: a slash command, an @mention, or a direct message. All three run the same agent as your website widget and your REST API calls, so a prompt or knowledge-base change takes effect everywhere at once.

A server belongs to exactly one project. Discord tells us which guild was authorised, not which project you meant, so one guild can't be split across two projects — if you reconnect a server that's already linked elsewhere, disconnect it there first.

2Requirements

  • A plan that includes Discord — the bot is a Starter or Pro feature; the Free Trial does not include it.
  • Manage Server permission on the Discord server you want to connect. Discord enforces this itself on the consent screen — anyone without it simply isn't offered the server in the picker.
  • A project with at least a main agent configured. A newly created project already has one.

3Connecting a server

  1. Open the project's Integrations tab and choose Discord.
  2. Click Add to Discord. You're sent to Discord's own consent screen.
  3. Pick which server to add the bot to, review the permissions, and approve.
  4. Discord sends you back and the connection's settings page opens, with the bot already answering.

Every click of Add to Discord shows Discord's full server picker, even if you've connected one before — so adding a second server is never a silent no-op that reuses your first pick.

Reconnecting a server you'd already linked (say, after kicking the bot by accident) repairs the existing connection in place rather than creating a duplicate — your default agent and channel routing are kept.

4Permissions requested

The consent screen asks for exactly what the bot needs to answer — nothing that reads server settings, members, or other channels' history beyond what a reply requires:

Send Messages
Post replies to /ask, mentions and DMs.
Embed Links
Format a long answer cleanly instead of a wall of plain text.
Read Message History
Reply as a threaded response to the message that triggered it.
Send Messages in Threads
@mention replies open a thread so the channel stays readable.

Beyond the bot's own permissions, the OAuth scope also requests identify — just enough to record which of your teammates ran the install, shown on the connection's settings page. The bot asks Discord for no privileged intents: it never reads messages that don't mention it, aren't a DM, or aren't a slash command.

No OAuth token from the install is kept. Every reply afterwards is sent by the one shared bot credential, not a token tied to whoever clicked Authorize — there's nothing per-install to leak or to expire.

5Talking to the bot

Slash commands

/ask followed by a question works in any channel the bot can see. Only you see the command as you type it; everyone in the channel sees the reply. /reset starts a fresh conversation for you in that channel — useful when the topic has moved on and earlier context is getting in the way.

Discord requires a reply within 3 seconds, which no model call meets, so /ask shows a "thinking" placeholder immediately and the real answer replaces it a few seconds later.

@mentions

@mention the bot anywhere in a message and it replies in a thread on that message, so a busy channel stays readable. This path (and DMs) run through a small relay service alongside the main slash-command handling — if it's ever briefly interrupted, /ask and /reset keep working regardless, since they don't depend on it.

Direct messages

Members can DM the bot privately, kept separate from anything in a server channel. Discord requires you to share at least one server with a bot to DM it — that's a Discord rule, not something a connection's settings can change. A DM you send carries no server context, so the bot answers using whichever of your connected servers you last talked to it in.

Each of the three can be switched off independently from the connection's settings page, in case you only want one available.

6Which agent answers

A connection has one default agent — the project's main agent, to start — that answers everywhere in the server. On top of that, individual channels can be routed to a different sub-agent: a #billing channel to a billing-specialised agent, for instance, while everywhere else keeps using the default.

Whichever agent answers, it's with everything that agent is configured with: its model, system prompt, knowledge base, tools and guardrails — the same rules that apply to it on the website widget or the REST API.

7Conversation memory

Each person's conversation in each channel is tracked separately, and a direct message is its own conversation too. Your questions in #general and a teammate's questions in the same channel never mix, and neither do your questions in two different channels.

/reset clears only your own conversation in the channel (or DM) you run it in — it never affects anyone else's. Conversations are also forgotten automatically after an hour of inactivity, the same rule that applies to the website widget and playground.

8Limits & billing

PlanConnected servers
Free Trial0 — not included
Starter2
Pro10

The limit is per account, counted across every project you own — not per project.

Discord messages count against the same public chat allowance as your website widget, one conversation per person per channel (or DM) at a time, and show up in the project's Logs tab in the dashboard alongside every other surface. There's one usage number to watch, not a separate one per channel.

9Data & privacy

  • Stored per connection: the server's id, name and icon, who installed it, which agent answers by default, any per-channel overrides, and which of slash commands/mentions/DMs are switched on.
  • Not stored: a member list, message history beyond the active conversation, or any OAuth token from the install — every reply goes out through the one shared bot credential.
  • Logged like any other conversation: turns are written to the project's activity logs (tagged as Discord traffic) with token counts, exactly like widget and API conversations, so they're auditable from the dashboard.
  • Guardrails still apply. A guardrail configured on the answering agent runs on Discord messages exactly as it does on the widget.
  • Mentions are never broadcast back. The bot's own replies can only ping the person it's answering, never @everyone or a role — even if a message tries to talk it into one.

10Disconnecting

Disconnecting from a connection's settings page stops the agent answering in that server immediately and removes the bot from it. Nothing in the project is deleted — the agent, its knowledge base and its logs are untouched, and reconnecting later restores the same default agent and channel routing rather than starting over.

11Troubleshooting

The bot always replies in plain language rather than going silent or erroring out, so the message it sends back is usually the fastest diagnosis:

"This server is not connected to a Qunivex agent right now."

The connection was disconnected, or paused from its settings page. Reconnect (or flip it back on) from the project's Integrations tab.

"This account is over its plan limits, so the agent is paused."

The account is on hold for exceeding a plan cap somewhere — not specific to Discord. The account owner resolves it from /account/cleanup in the dashboard, and the bot resumes immediately once it's cleared.

"This agent has used up its message allowance for now." / "...reached today's message limit."

The plan's public chat quota (shared with the website widget) is exhausted, or — on the Free Trial — today's daily throttle kicked in. Upgrading or waiting for the period to roll over are the only fixes; a trial's pool doesn't refill mid-window.

The bot answers /ask but never responds to @mentions or DMs

Slash commands and mentions/DMs are handled by two different paths on our side. If mentions and DMs are both affected at once across an otherwise-working connection, that's the shared relay path having a brief issue on our end, not your server's configuration — it self-recovers and doesn't need a reconnect.

If only your server is affected, check that Mentions and Direct messages are switched on for this connection — each can be turned off independently.

I can't DM the bot

Discord requires you to share a server with a bot before you can DM it — message it in a connected server at least once first, then DMs work from there.

"Add to Discord" isn't offering my server

You need Manage Server permission on that server for Discord to list it in the picker — that's Discord's own restriction on installing bots, not a Qunivex setting. Ask whoever administers the server to run the install instead.

The bot left my server on its own

It only leaves if you disconnect it from the project's settings page. If a connection shows disabled rather than gone, someone may have kicked it from Discord's own member list without disconnecting here — re-run Add to Discord to repair it; the same guild reconnects in place rather than creating a duplicate.

Anything else? Get in touch — or see the other integrations if you want your agent somewhere besides Discord.