UnitedUNITED
Ticket guide

Build a Support Ticket Workflow with United

A good ticket system sends the right request to the right staff, collects enough information to begin, and preserves the conversation before access is removed.

Written and reviewed by Reno · August 27, 2026

Start with the work, not the panel

List the reasons members contact staff. Most servers need only a few clear types: General Support, Staff Report, Purchase Help, Partnership, or Appeal Information. Too many choices slow members down and create categories nobody maintains. Each United ticket type stores a public label, an optional emoji, a destination category, selected staff roles, and optional questions.

Choose access independently for every type

Role access is attached to the ticket type. If Staff Reports should be visible only to Server Lead and Administrator, select only those roles. Support and trial staff should not receive a ping or channel overwrite merely because they can work General Support. Discord administrators can still access channels through their administrator permission.

Category overwrites also matter. A category-level View Channel allow can expose every child ticket to a role before the ticket-specific overwrites are considered. When an unselected role can see a ticket, inspect the category in Discord before changing United's saved roles.

Ask only questions staff will use

United supports up to five questions per ticket type. Ask for information that changes the first staff response: an order number, the person being reported, the rule involved, the expected outcome, or what troubleshooting has already been tried. Avoid requests for passwords, authentication codes, payment card numbers, government identification, or other secrets.

Use the dashboard question editor or ,ticketquestions. The member completes the form before the channel is created, so question wording should be understandable without staff present.

Publish one panel in an existing channel

After types, categories, roles, and questions are ready, edit the panel title and description and select the existing channel where it belongs. Publishing should reuse the saved panel. Use Refresh Panel when the text or options change. Repair is for a missing saved panel, not ordinary edits.

A ticket panel channel is not an open ticket. United identifies open tickets from stored ticket records and channel metadata, so restart recovery must never place ticket controls in the public panel or transcript channel.

Use a predictable ticket lifecycle

StageExpected actionRecord kept
OpenMember submits form; United creates the channel and applies type accessCreator, type, reason, answers, created time
ClaimedOne staff member takes ownership while others can still assistClaimer and claim time
WaitingStaff marks that the next response is expected from the memberDesk status and latest activity
ClosedUnited saves a transcript and removes normal member sending accessTranscript, closer, reason, close time
ReopenedAuthorized staff restores the ticket workflowReopen actor and reason
DeletedUnited verifies transcript delivery before deleting the channelFinal transcript and delete action log

Separate inactivity from member discipline

,tickettimeout 24h sets the inactive auto-close window for tickets. ,tickettimeout @member 10m stops that member from sending in the current ticket for ten minutes. ,tblock @member 1h prevents new ticket creation for one hour without closing their current ticket or applying a server-wide Discord timeout.

Place transcripts intentionally

Ticket actions use Bot Logs by default. Set a dedicated transcript channel with ,ticketlogs #ticket-transcripts when staff needs a searchable archive separate from daily events. United records the original ticket name before deletion so a transcript should not be labeled unknown merely because the source channel no longer exists.

Design for restarts and mistakes

Open ticket records, controls, creation blocks, and member-specific ticket timeouts are stored persistently. After a restart, United restores controls only in known open-ticket channels. Database uniqueness checks should prevent two active records for the same ticket, while panel discovery prevents repair from creating a second public setup around a working panel.

Follow panel setupSearch ticket commands