Discord Bot Integration Guide
Add the AskVerdict bot to your Discord server to run AI-powered debates using slash commands in any channel.
Add the AskVerdict bot to your Discord server to run structured AI debates from any channel. Team members can use Discord's native slash command interface to ask questions and receive formatted verdicts without leaving the conversation.
Prerequisites
- An AskVerdict account (any plan)
- A Discord server where you have Manage Server permission (required to authorise apps)
- At least one credit or a BYOK subscription (debates cost credits)
How It Works
User types: /askverdict question:Should we adopt Kubernetes? mode:balanced
↓
AskVerdict runs a multi-agent debate via the Discord Interactions API
↓
Verdict posted as an embedded message in the same channelDiscord interactions are verified using Ed25519 cryptographic signatures, meaning AskVerdict only responds to genuine requests from Discord's servers.
Step 1: Connect Your Discord Account
First, authorise AskVerdict via OAuth so your Discord account is linked:
- Go to Settings → Integrations in the AskVerdict web app
- Click Connect Discord
- You will be redirected to Discord's OAuth consent screen
- Select the server you want to connect (you must have Manage Server permission)
- Click Authorise
- You will be redirected back to AskVerdict with a success confirmation
The OAuth step links your AskVerdict account to Discord. The bot invite (Step 2) is a separate step that adds the bot to your server with the correct interaction permissions.
Step 2: Invite the Bot to Your Server
After completing OAuth, invite the AskVerdict bot to your server:
- Still in Settings → Integrations, find the Discord card
- Click Invite Bot to Server
- The AskVerdict app will open Discord's bot invite flow
- Select the server where you want to add the bot
- Review and confirm the requested bot permissions (see below)
- Click Authorise
You can also get the bot invite URL programmatically:
GET /api/integrations/discord/bot-invite
Authorization: Bearer vrd_your_api_key{
"url": "https://discord.com/api/oauth2/authorize?client_id=...&permissions=...&scope=bot+applications.commands"
}Required Bot Permissions
| Permission | Why it's needed |
|---|---|
Send Messages | Post verdict messages in channels |
Use Slash Commands | Register and respond to /askverdict interactions |
Embed Links | Format verdicts as rich embed cards |
Read Message History | Identify which channel triggered the command |
Do not grant administrator permissions to the bot. The listed permissions above are all that is required.
Step 3: Configure a Default Channel
Set a channel where AskVerdict will post automated notifications (for example, when a debate started elsewhere completes):
- In Settings → Integrations, find the Discord card
- Click Configure
- Enter the channel name or ID
- Click Save
API endpoint:
PATCH /api/integrations/discord
Authorization: Bearer vrd_your_api_key
Content-Type: application/json
{
"channelId": "1234567890123456789",
"channelName": "team-decisions",
"postOnComplete": true,
"dmOnOutcome": false
}| Field | Type | Description |
|---|---|---|
channelId | string | Discord channel ID (Snowflake, max 32 chars) |
channelName | string | Human-readable channel name for display |
postOnComplete | boolean | Post to channel when debate completes (default: true) |
dmOnOutcome | boolean | DM the debate creator when an outcome is recorded (default: false) |
Step 4: Use the Slash Command
In any channel where the bot has access, type /askverdict and Discord will show the available options:
/askverdict question:<your question> [mode:<quick|balanced|deep>]Command Parameters
| Parameter | Required | Values | Default | Description |
|---|---|---|---|---|
question | Yes | Any text (10–2000 chars) | — | The question to debate |
mode | No | quick, balanced, deep | balanced | Debate depth and cost |
Examples
/askverdict question:Should we move our infrastructure to AWS or stay on bare metal?
/askverdict question:Is it worth building a native iOS app? mode:deep
/askverdict question:Should we offer a free tier? mode:quickSample Verdict Embed
AskVerdict Bot — Today at 14:32
┌─────────────────────────────────────────────────────────┐
│ Verdict: Should we move infrastructure to AWS? │
│ │
│ Recommendation │
│ Migrate to AWS in a phased approach, beginning with │
│ stateless services over 6 months. │
│ │
│ Confidence: 74% | Mode: Balanced | 3 rounds │
│ │
│ Pros │
│ • Eliminates hardware refresh cycles (~$180k every 3yr) │
│ • Auto-scaling handles traffic spikes without ops work │
│ │
│ Cons │
│ • 18-month payback period on migration investment │
│ • Team upskilling required (estimated 6 weeks) │
│ │
│ View full debate → │
└─────────────────────────────────────────────────────────┘Integration Status
Check your current connection:
GET /api/integrations/discord
Authorization: Bearer vrd_your_api_key{
"connected": true,
"integration": {
"id": "int_def456",
"active": true,
"config": {
"guildId": "9876543210987654321",
"guildName": "Acme Engineering",
"channelId": "1234567890123456789",
"channelName": "team-decisions",
"discordUserId": "111222333444555666",
"discordUsername": "alice#0001",
"postOnComplete": true,
"dmOnOutcome": false
},
"createdAt": "2026-02-01T10:00:00Z",
"updatedAt": "2026-02-10T14:30:00Z"
}
}Disconnecting
To remove the Discord integration:
- Go to Settings → Integrations
- Click Disconnect on the Discord card
- Confirm the disconnection
Or via the API:
DELETE /api/integrations/discord
Authorization: Bearer vrd_your_api_keyThis removes AskVerdict's access token. To fully remove the bot from your server, go to Server Settings → Integrations in Discord and kick the AskVerdict app. Your debate history in AskVerdict is not affected.
Troubleshooting
| Issue | Solution |
|---|---|
| "Invalid request signature" | Ed25519 verification failed — ensure DISCORD_PUBLIC_KEY is correct in AskVerdict settings |
| Bot not responding to commands | Check the bot has Use Slash Commands permission in that specific channel's settings |
| "Missing permissions" | The bot needs Send Messages and Embed Links in the target channel |
| OAuth error after authorising | State mismatch or session expired — try the Connect flow again |
| Commands not showing in Discord | Discord may take up to 1 hour to propagate new slash commands globally |
| Bot appears offline | The bot does not maintain a persistent gateway connection — it responds to interactions only, so the offline indicator is expected |
Discord's Interactions API requires a sub-3-second response. AskVerdict immediately acknowledges the interaction and delivers the verdict asynchronously, so you will see a "thinking..." indicator while the debate runs.
Was this page helpful?