๐ŸŽŸ๏ธ

Tickets

A support panel that opens a private channel members can talk to staff in.

Post a ticket panel; when a member clicks it, QREATE opens a private channel between them and your staff. Staff can claim and close it, with an optional transcript.

Set it up

  1. 1Open Tickets and flip it on.
  2. 2Edit the panel: title, button label, and categories.
  3. 3Choose a close mode: delete, archive (keep the channel, locked), or require confirmation.
  4. 4Publish the panel to your support channel.

Panel examples

text
Support desk:
Title: Need help?
Button: Open ticket
Categories: Support, Report a user, Billing, Other

Applications:
Title: Apply for staff
Button: Start application
Categories: Moderator, Event host, Partner

Close modes

  • Delete - cleanest channel list; use when transcripts are enough.
  • Archive - keeps the channel locked for later review.
  • Request/confirm - best when members should confirm before closure.

How many tickets one member can have open

Set it once on this page and it applies to every panel. A panel can override it with its own number when one type of ticket needs a different rule; leave that field empty and the panel follows the server setting.

Note. Panels created before 29 July 2026 each carried their own limit of three from the moment they were made, which quietly overrode the server setting. They now follow the server setting. If yours is still capped at three, check that the limit field on the panel itself is empty.

Permissions to check

  • QREATE needs Manage Channels to create private ticket channels.
  • Staff roles must be selected or tickets may open without the right team seeing them.
  • If using an archive category, QREATE needs permission to move channels there.
Note. Archive mode keeps a record without cluttering the channel list: closed tickets are renamed and locked, and can be moved to an archive category.

Channels, threads, or a forum

By default each ticket opens as its own private channel. Turn on Open tickets as private threads (per panel, at the bottom of the panel editor) to instead open each ticket as a private thread under the panel's channel: the same claiming, closing, and transcript, just without a new channel per ticket cluttering your sidebar. The member who opened it and your staff are added automatically, and staff need no extra per-channel permission. It's off by default, so existing panels are unchanged. In thread mode, Delete deletes the thread and Archive locks + archives it; the destination category and anchor position don't apply (threads live under the panel channel).

Note. For thread mode the bot needs Create Private Threads, Send Messages in Threads, and Manage Threads. Very large staff teams should also have Manage Threads so everyone can see every thread; whoever clicks Claim is always added.

Tickets as forum posts

The third option is a forum. Point a panel at a forum channel and every ticket opens as a post in it, which suits a team that wants the queue visible in one place and searchable afterwards. Claiming, closing, resolutions, ratings, response targets and transcripts all work exactly as they do elsewhere.

Tags are applied by QREATE, not picked by the member. Map each of your panel categories to up to five forum tags and a new post arrives already carrying them, so the same kind of request always lands under the same tag. Nobody opening a ticket sees a tag picker.

You can also name up to five tags as the set staff must choose from before closing. Closing a post that carries none of them asks the staffer to pick one, then carries on to the usual resolution step. Leave it empty and nothing is compulsory.

What happens to a post when its ticket closes is set once for the server, on the Tickets page: lock and archive it where it is (the default), archive it by sending the transcript to a channel you choose, leave it open for people to keep reading and replying, or delete it after the transcript is written.

Note. For forum mode the bot needs permission to post in the forum channel and Manage Threads, which is what lets it lock, archive or delete a post when the ticket closes.

Design the form members fill in

By default a member opening a ticket gets two boxes: a subject line and a description. Turn on Use a custom form in the panel editor to build your own instead: a title, an instruction block shown above the fields, and up to five fields, each either a single line, a paragraph, or a list to choose from. Every field has its own label, placeholder and required flag.

The form can also carry a file upload box, so someone reports a bug with the screenshot already attached instead of being asked for it afterwards. Whatever they fill in appears in the ticket's opening summary, and uploaded files are re-posted into the ticket channel so they stay readable later.

Note. Discord allows five components in a form, and the instruction block and the upload box each use one. The editor counts down the room you have left and stops you at the limit.

Choose what the ticket summary shows

The first message in a ticket carries a short summary: who opened it, the category, the queue position, the estimated wait, the ticket id, when it was created, the priority. Under Summary fields in the panel editor you decide which of those appear and in what order. Each row has a switch and a pair of Move up and Move down buttons, so hiding a line and promoting a line are the same list.

Two rows cannot be switched off: the ticket id and the creator. Buttons, transcripts and every conversation about a ticket depend on them. You can still move them. Panel name is the small footer line under the summary rather than a field, and its row is now the only place that decides whether the panel's name is shown.

Answers from the panel's own form are always listed after the built-in fields, so turning a built-in field off never hides what somebody typed. A panel you have not touched keeps the order it has today.

Claiming

Only staff can claim a ticket. The button sits on the ticket where everyone can see it, but pressing it needs one of the staff roles set on this page, or the Manage Server permission. Anybody else gets a short private note saying so, and nothing is recorded. If somebody on your team cannot claim, give them a staff role here rather than working around the button.

Priority

When a staff member claims a ticket, they get a private menu to set its priority: Low, Medium, High or Critical. The choice is announced in the ticket and written into the opening summary, so the embed at the top always shows where the ticket stands. If you switched the Priority field off for that panel, setting a priority no longer puts the field back: the announcement in the channel still says what was chosen.

You can also ask the member instead. Add a field named Priority to the panel's form and their answer becomes the ticket's real priority, filling the Priority line in the summary rather than adding a second one under it.

Working hours and the estimated wait

Under Working hours & wait estimate you choose what a new ticket says about the wait. Measure it, and it is based on how long recent people waited for their first reply, multiplied by the number of unclaimed tickets ahead. It counts the same first reply your response target counts, so the two figures agree. Set your own number instead and it is shown exactly as you typed it, never multiplied. Or switch it off, and the line does not appear on the ticket at all.

Then tell QREATE when your team is actually at a keyboard: the days, the times, and the timezone those times are written in. Split shifts are fine, up to three windows on a day, and there is a shortcut to copy Monday across the rest of the week. With hours set, a ticket opened after closing time stops claiming a reply in two minutes and names the moment one is expected instead, as a Discord timestamp so everyone reads it in their own zone.

Note. Working hours also change what your response targets measure: they then count only the hours inside your windows. A ticket opened at 17:55 and answered at 09:05 the next morning is ten minutes against the target rather than fifteen hours, so your numbers stop reporting a miss your team did not make.

Response targets

Set a first reply target and a resolution target, in minutes, and the Tickets page shows how many tickets met them. You choose what counts as the first reply: whichever comes first, only a staff member typing, or only an automated reply. The panel's own welcome message never counts, so a target measures real attention rather than the bot saying hello. With working hours on, both targets count only those hours.

Each ticket also carries its own numbers. Open one in the ticket history and you see how long the first reply took and how long it stayed open, with the target under each and a mark when the target was missed. A ticket nobody has answered says so rather than showing a blank, which is usually the answer when the number looks missing: if the only messages are the opener's own, there is no first reply to measure yet.

Those numbers show up in Discord too, not only here. A new ticket's first message carries a Response Times field with the targets it will be judged on, and that field is rewritten the moment somebody answers, so it then shows the real first reply next to its target. It is one of the panel's summary fields, so you can move it or switch it off like any other, and it stays out of the way entirely until you set a target.

When a ticket closes, the same figures are added to your ticket log message. If you send close notifications to a channel, your own embed can use {firstReplyMinutes}, {resolutionMinutes} and {slaBreached} anywhere text is allowed. A ticket nobody ever answered says "not measured" instead of showing a zero.

Ratings when a ticket closes

When a ticket closes, the person who opened it is asked to rate the support they got, with room for a comment. Per panel you decide whether that rating is required or can be skipped; skippable is the default. The average and how many people answered sit with the rest of the ticket numbers.

Extra buttons on a panel

Each panel can carry up to 4 extra buttons, configured in the dashboard's Ticket Panels editor. Pick a button type for each: staff-only canned replies (a ready template, optionally with variables like the ticket opener's name) for fast, consistent answers; user-facing prompt buttons that post a suggested message into the ticket; or an event-mappable action button that runs a real action on click.

An action button does something, not just say something: give or remove a role, post a message, DM a member, or call a webhook, the same actions the Automations module offers. Role and DM actions can target either whoever clicks the button or the ticket opener, and a "post a message" action with no channel chosen posts inside the ticket itself. Set the button's visibility to *staff* to keep powerful actions to your team. Discord role hierarchy still applies: QREATE's role must sit above any role it grants or removes.

Duplicate panels

Creating a second panel in a channel that already has one is blocked: you'll get a clear message instead of a silent duplicate. If you already have a duplicate from before this fix, open the Ticket Panels editor and use the delete button on the extra panel's card (with a confirmation step); deleting a panel also removes its message from Discord.

Nextโœ… Verification