Skip to content

Ticket System

The ticket system gives your members a simple way to reach staff in private. You build a panel (a message with one or more buttons, or a dropdown), and when a member clicks it the bot opens a private ticket just for them and your support team. Staff handle it, then close it - and the bot saves a full transcript.

TierFree
Command/ticket
Who can useEveryone opens tickets, Staff handle them
Set up onDashboard only

You post a panel in a channel (for example #support). The panel can offer one ticket type or several - “General Support”, “Report a Player”, “Recruitment”, whatever you need. Members either click a button or pick from a dropdown, depending on how you set the panel up.

Each ticket type can be a:

  • Private channel - a brand new channel only the opener and your staff roles can see. Best for longer conversations and full privacy.
  • Private thread - a private thread inside the panel’s channel. Lighter and tidier, and it does not count toward your server’s channel limit.

If a ticket type has a form, the member fills in a popup before the ticket opens, and their answers are posted at the top of the ticket. Each question can be a short answer, a paragraph, or an image upload (the uploaded image is attached to the new ticket).

When a ticket opens, the bot posts a welcome message that pings the opener (and any roles you chose), shows your welcome text (plain text or a saved Message Template, with {user}, {opener}, {server}, {ticket}, {number} and {type} placeholders, and a switch for whether the opener is pinged), and includes a Close button. If you turned on claiming, there is also a Claim button so a staff member can mark the ticket as theirs.

Staff manage the ticket with the /ticket commands below. When it is closed, the bot writes an HTML transcript of the whole conversation and posts a View Transcript link to your log channel (and can DM it to the opener). For channel tickets, a closed ticket is locked and given Reopen and Delete buttons for staff, or deleted a few seconds after closing if you turned on Delete on close; thread tickets are archived and locked.

Everything is set up on the Tickets tab at dashboard.codexhelper.com - there are no setup commands in Discord. On the tab you can:

  • Settings - choose the transcript log channel, whether to ask for confirmation before a ticket closes, and whether to DM the transcript to the opener.
  • Panels - create a panel, pick its channel, choose buttons or a dropdown, write the panel’s title and description, and add ticket types.
  • Ticket types - for each type set its label and emoji, the category new channels go under, the channel naming pattern, the support roles, who gets pinged, the welcome message, an optional pre-open form, a per-user open limit, an auto-close timer, and whether staff can claim it. Claiming can be off, on, or exclusive: exclusive narrows the ticket so only the claimer and the opener can post until it is unclaimed, and nobody can take over an existing claim.
  • Blocked users - stop specific members from opening tickets.

After you save, the bot posts or updates the panel within about a minute.

All /ticket commands are run inside a ticket. They are actions only - there are no setup commands in Discord.

Close the current ticket. The bot saves a transcript and locks the ticket. If close confirmation is on, you confirm first.

OptionTypeRequiredDescription
reasontextNoAn optional reason, saved to the transcript log

The ticket opener or staff can close a ticket.

Add another member to the current ticket so they can see and reply.

OptionTypeRequiredDescription
usermemberYesThe member to add

Remove a member from the current ticket. Staff only. You cannot remove the opener.

OptionTypeRequiredDescription
usermemberYesThe member to remove

Rename the current ticket.

OptionTypeRequiredDescription
nametextYesThe new name

Staff claim a ticket to show they are handling it, or release it again. Only available when claiming is turned on for that ticket type.

Each ticket type can auto-close after a set number of hours with no activity. The bot checks regularly and closes anything that has gone quiet past its limit, saving a transcript just like a manual close. Set the hours to 0 to turn it off.

Each ticket type has a naming pattern for its channel or thread. Use these placeholders:

  • {type} - the ticket type’s label
  • {username} - the opener’s name
  • {number} - the ticket’s number
  • {opener} - the opener’s Discord user id

For example ticket-{number} makes ticket-42, and {type}-{username} makes support-alice.

  • A server can have up to 25 ticket panels, and each panel up to 25 ticket types.
  • A pre-open form can have up to 5 questions (short answer, paragraph, or image upload).
  • For channel tickets the bot needs Manage Channels; for thread tickets it needs Create Private Threads. It also needs to post in the panel’s channel.
  • Transcripts are hosted at codexhelper.com and linked from your log channel (and the opener’s DMs, if you turn that on). The link is an unguessable address, and anyone who has it can open it, so share it with care. If hosting fails or a transcript is over 800 KB, the HTML file is attached in Discord instead.
  • For thread tickets, staff see tickets through the Manage Threads permission or by being added; channel tickets use your support roles directly, so channel mode gives the cleanest role-based access.