Guide · Tickets
How to set up a ticket system on Discord (step by step)
Build a private support ticket system on Discord: staff levels, a ticket panel with a form, channels or threads, auto-close, transcripts, and the permission mistakes to avoid.
TicketsApplicationsLogs
On this page
A ticket system turns "hey, can a mod DM me?" into a private, trackable conversation. A member clicks a button, a private channel (or thread) opens that only they and your staff can see, and when the issue is solved the ticket closes with a transcript. No lost DMs, no support questions buried in #general, and a record of who handled what.
This guide shows how to set up a ticket system on Discord with BotGG Tickets: what to prepare, how to configure staff, panels and forms in the console, which settings fit small and large servers, and how to fix the problems ticket bots usually hit.
What you need before you start
- Manage Server permission (to add the bot and use the admin command
/tickets). - BotGG in your server — invite it with its default permissions.
- A support role, e.g. "Support" or "Moderators". You can also add individual users.
- A category for tickets, e.g. "📩 Tickets", and a text channel for the panel, e.g. #support.
Permissions the bot's role needs (server-wide or on the ticket category and panel channel):
| Permission | Why |
|---|---|
| View Channels, Manage Channels | Create, move, rename and delete ticket channels |
| Manage Roles (Manage Permissions on the category) | Give the opener and staff access to each ticket |
| Send Messages, Embed Links, Attach Files, Read Message History | Post the panel, the welcome message and transcripts |
| Create Private Threads, Send Messages in Threads, Manage Threads | Only if you use thread tickets |
Each ticket channel explicitly hides itself from @everyone, so a ticket stays private even if the category is public. Still, keeping the category hidden from @everyone keeps your channel list clean.
Step 1: Enable Tickets and add your staff
Open the BotGG console, pick your server and open Tickets in the sidebar (under Community). Switch it on. You'll see these tabs: Dashboard, Tickets, Panels, Multi-panels, Forms, Staff & teams, Tags and Settings.
On Staff & teams, fill in the two permission levels:
- Admin — can claim, close and manage every ticket and use admin commands. Members with Manage Server or Administrator are always ticket admins.
- Support — sees and answers tickets of the default team.
Larger servers can add Teams (for example "Billing" and "Moderation") and assign each panel to a team. A team can also have an on-call role: staff who run /ticket oncall get it and are pinged for new tickets.
Step 2: Create a form (optional)
On the Forms tab create the questions members answer before a ticket opens. It's a Discord pop-up with up to 5 fields: short or paragraph text, a dropdown with your own options, or a user, role or channel picker. Answers appear at the top of the ticket, so staff don't have to ask "what's your in-game name?" every time. Keep it short — two or three questions is the sweet spot.
Step 3: Create a ticket panel
A panel is the message with the "Open a ticket" button. On the Panels tab click to create one. The editor has a live preview and is split into sections:
- Message & button — title, description, color, button label, emoji and color, and Post in channel (the bot posts the panel there and keeps it updated).
- Where tickets go — Ticket type: private text channels or private threads in the panel channel. For channels pick the Category, an optional Awaiting-reply category and an Overflow category. Set the Channel name scheme, e.g.
ticket-{id}or{username}-{id}. - Staff — all support staff, specific teams, or both.
- Who can open — allow/deny rules by role, checked top to bottom. No rules = everyone.
- Pings on open — ping a role, a user, the opener, @here or @everyone, and choose whether the ping message stays.
- Form and Welcome message — attach the form from step 2 and optionally replace the default welcome embed.
- Limits — open tickets per member for this panel (1 by default) and a cooldown.
- Closing & claiming, Auto-close, Support hours, Transcripts and Feedback — covered below.
Save, and the panel appears in your channel within seconds.
Quick start from Discord: run /tickets setup in the channel where the panel should live. It creates a "Need help?" panel that puts tickets in that channel's category and posts it there. Then add staff in the console, or tickets will only be visible to admins.
Step 4: Closing, transcripts and feedback
- Closing & claiming — whether openers can close their own ticket, a confirmation step, and whether other staff can still see or type in a claimed ticket. Thread tickets can't be claimed.
- Auto-close — close tickets when the opener leaves the server, when they never replied, or after a period without messages.
- Support hours — set your time zone and weekly schedule. Warn lets members open tickets but tells them replies may be slower; Block disables the button outside hours.
- Transcripts — keep a copy of every message on close. You can read it in the Tickets tab, post it to a transcript log channel and DM it to the opener.
- Feedback — the opener gets 1–5 star buttons after closing, optionally followed by an exit survey form.
On Settings you'll find server-wide options: open tickets per member across all panels, the default panel for /ticket open, the Open from a message menu command, the log channel and the blacklist.
Everyday commands for staff
| Command | What it does |
|---|---|
/ticket claim / /ticket unclaim | Take or release a ticket |
/ticket add / /ticket remove | Add or remove a member or role |
/ticket closerequest | Ask the opener to confirm closing, with an optional auto-close delay |
/ticket close | Close with an optional reason |
/ticket transfer, /ticket switchpanel | Hand over to another staff member or move to another panel |
/tag | Send a saved reply from the Tags tab |
/tickets stats | Ticket statistics for the server |
Members can also use Apps → Start ticket on any message to turn it into a ticket. The full list is on the commands page.
Recommended settings for small and large servers
| Setting | Small server | Large server |
|---|---|---|
| Ticket type | Channels | Channels with an overflow category, or threads |
| Panels | One general panel | Multi-panel: one button or dropdown per topic |
| Staff | One Support role | Teams per topic + on-call roles |
| Open tickets per member | 1 | 1 per panel, a few in total |
| Form | Optional | 2–3 questions per topic |
| Auto-close | On leave | On leave + no reply + inactivity |
| Support hours | Off | Warn mode with your real schedule |
Panel, multi-panel, form and tag limits depend on your plan: for example 3 panels on Free and 50 on Pro. See pricing.
Common mistakes and troubleshooting
- Staff can't see new tickets. No support role or team is set, or the panel isn't assigned to their team. Check Staff & teams and the panel's Staff section.
- "I'm missing permissions". The bot needs Manage Channels and Manage Roles, and a deny on the ticket category beats a server-wide allow. Open the category's permissions and check the bot's role there.
- "The ticket category is full (50 channels)". That's Discord's per-category limit (and 500 channels per server). Set an Overflow category, turn on auto-close, or switch the panel to threads.
- Members can't open thread tickets. They need Send Messages in Threads in the panel channel.
- Renaming or moving fails with a wait time. Discord allows only two renames or category moves per channel per 10 minutes.
- Admins see every ticket. Discord's Administrator permission bypasses all channel permissions. Give moderators a role without Administrator if tickets must stay private.
- Someone deleted the panel message. The panel itself still exists — repost it with
/tickets panel send.
FAQ
Should tickets be channels or threads?
Channels are easiest to scan and support claiming and awaiting-reply categories. Threads avoid the 50-channel category limit and can be reopened with /ticket reopen, but can't be claimed.
Can members open a ticket without the panel?
Yes, with /ticket open if Allow /ticket open is on in Settings, or with the Start ticket message command.
How do I stop ticket spam?
Keep open tickets per member at 1, add a cooldown, add troublemakers to the blacklist (/tickets blacklist add), and pair tickets with AutoMod and moderation.
Can I use tickets for staff applications?
You can, with a form, but Applications is built for that: review, accept or reject, and give roles automatically.
Where are ticket events logged?
Set a log channel in Settings for open, claim and close events. For server-wide logs, see Logs.