How to set up a ticket system on Discord

By Better Tickets Team · Updated

A Discord ticket system gives each member a private channel with your support team, opened by clicking a button on a panel. To set one up you need three things: a bot that creates the channels, a staff role that can see them, and a place for finished tickets to be archived. This guide explains how to plan each part, then walks through a complete setup in Better Tickets.

Why servers use ticket systems

Answering support questions in a public channel stops working once a server grows. Questions get buried, private details such as payment problems or harassment reports end up in public, and there's no record of what was decided. A ticket system fixes that:

  • Privacy. Only the member, the staff you choose and anyone you add can see the ticket.
  • Focus. Each conversation has its own channel, so nothing gets lost between messages.
  • Accountability. You can see who handled each ticket and keep a transcript of what was said.

Plan your ticket system before you build it

A few decisions up front save a lot of reconfiguring later.

Decide which categories you need

A category is one type of ticket, with its own button, staff and questions. Common ones are general support, player reports, appeals and partnerships. Only split a category off when it needs a different team or different questions; otherwise members have to guess which button to press.

Choose who handles tickets

Create a role for each team that answers tickets, such as Support and Moderators. Give tickets to roles rather than to individual people, so you can add or remove staff by changing their roles.

Decide what to ask up front

A short form when the ticket opens means staff don't have to ask the same questions every time. Keep it to what staff need to start helping, such as "What's your in-game name?" or "Describe the problem". Two or three questions is usually plenty.

Decide what happens when a ticket closes

Most servers delete the channel and keep a transcript (a saved copy of the conversation) in a staff-only channel. Some prefer to keep closed channels for a while in case the member comes back. Decide which fits, and where transcripts should go.

Set up a ticket system with Better Tickets

This setup takes about five minutes. It creates one support category with a staff role, a short form and transcripts. The quickstart has the same steps in a shorter form.

1

Invite the bot

Invite Better Tickets to your server. You need the Manage Server permission.

2

Create the category

In the dashboard, open Tickets → Panels, click New category and name it support.

3

Set staff roles and channels

Click Configure. Under Roles, add your support role as a staff role and, if you want staff notified, as a ping role. Under Channels, pick the Discord category where ticket channels should be created and a transcript channel for finished tickets.

4

Add questions

On the Questions tab, add up to five questions. Each can be short or long text, a number, a select menu, a user, role or channel picker, or a file upload. Members answer them in a pop-up form before the channel opens.

5

Set limits

On General, set the per-member ticket limit to 1 so nobody opens duplicates. Optionally turn on the avatar check to block accounts with no profile picture.

6

Send the panel

Use Send panel on the category page, or build a richer message with the message builder, and post it in a channel such as #support.

Ticket category configuration page in the Better Tickets dashboard with roles, channels and questions
A ticket category's settings in the Better Tickets dashboard

What happens when a member opens a ticket

  1. The member clicks the panel button and fills in the form.
  2. Better Tickets creates a private channel, posts their answers and pings the ping roles.
  3. A staff member runs /claim (or clicks Claim) so everyone knows who's handling it.
  4. Staff can /add another member, /rename the channel or /escalate it to another category.
  5. /close runs the category's close behavior: by default it saves a signed HTML transcript to the transcript channel and deletes the ticket channel.

Every step is covered in how Discord tickets work in Better Tickets.

Guides to each ticket action

Useful extras once it's running

  • Per-button permissions. Decide exactly who can claim, close, delete or reopen tickets, separately for each button. See ticket settings: buttons.
  • Support hours. Only allow new tickets while your team is online, with a message explaining when to come back. See schedule.
  • Auto-close. Close tickets automatically when the member leaves the server or stops replying. See automation.
  • Voice channels. Let staff or the member request a temporary voice channel for the ticket. See voice.
  • Transcript verification. Anyone can download a transcript and run /verify on the file to check it hasn't been edited since it was created.

Common mistakes to avoid

  • Giving tickets to people instead of roles. When a staff member leaves, you have to reconfigure every category. Use roles.
  • Too many categories. Five near-identical buttons confuse members. Merge categories that have the same staff and questions.
  • No per-member limit. Without one, a frustrated member can open ten tickets in a minute.
  • No transcript channel. Once a channel is deleted, the conversation is gone unless you kept a transcript.
  • Letting everyone see the transcript channel. Transcripts can contain private details. Keep that channel staff-only.

Frequently asked questions

What is a ticket system on Discord?

A ticket system lets a member start a private conversation with your staff by clicking a button. A bot creates a channel only that member and your support roles can see, and when the issue is solved the channel is closed and usually saved as a transcript.

Can I make a ticket system without a bot?

Not a practical one. You could create private channels by hand, but a bot is what creates the channel when a member clicks, sets the permissions, pings staff and archives the conversation. Without it, every ticket is manual work for an admin.

How many ticket categories should I have?

Start with one or two, such as general support and reports. Add another only when it needs different staff, different questions or different rules. Too many categories make members guess which button to press.

What are ticket transcripts for?

A transcript is a saved copy of the conversation. It lets you review how staff handled a case, settle disputes later, and keep a record after the channel is deleted. In Better Tickets, transcripts are signed so /verify can prove one wasn't edited.

Should members be able to see who is handling their ticket?

Yes. Claiming shows everyone which staff member owns the ticket, which stops two people answering at once and tells the member someone is on it. See Discord ticket claiming explained.

How do I stop people spamming tickets?

Limit how many open tickets each member can have (one is common), ask a required question so empty tickets aren't possible, and optionally restrict who can open tickets with required or denied roles.