Skip to content

Tickets overview

A full support-queue system: members open tickets by clicking a button; staff claim, assign, respond, and close them; transcripts are generated automatically; analytics show how the queue is performing. Optionally, an AI co-worker handles routine questions before a human ever sees the ticket.

The three pieces

Three concepts work together:

  1. Panels — message templates that you post in a channel. Each panel has buttons that open ticket types.
  2. Types — ticket categories. Each type defines its own form fields, staff roles, channel mode, welcome message, transcript settings.
  3. Tickets — actual support conversations. Open, claimed, assigned, closed, optionally archived.

Where it lives

Dashboard: Tickets. Six sub-pages:

  • Panels — design + deploy the buttons.
  • Types — define what opening a ticket means (forms, staff, channels).
  • Tickets — live list of open / claimed / closed tickets.
  • Resources — canned responses + tags for staff productivity.
  • Analytics — open rate, resolution time, SLA breach rate, top categories.
  • Settings — global module config (defaults, transcript retention, etc.).

Channel modes

A ticket can live as either:

  • Channel — a new private text channel created per ticket. Most common.
  • Thread — a private thread inside a parent channel. Cheaper on Discord's channel quota; good for high-volume support.

Slash commands (in-ticket)

CommandWhat it does
/ptickets infoShow ticket metadata (status, claimer, opener, message count, etc.).
/ptickets closeClose the current ticket.
/ptickets reopenReopen a closed ticket.
/ptickets claim / unclaimTake / release ownership.
/ptickets assignAssign to a specific staff member.
/ptickets prioritySet low / normal / high / urgent.
/ptickets pinPin so auto-close doesn't touch it.
/ptickets adduserAdd a non-staff user to the ticket.
/ptickets noteInternal staff-only note.
/ptickets moveMove to a different type (re-categorise). Re-applies the destination type's welcome-ping configuration.
/ptickets renamePop a modal to rename the ticket channel + set a custom "subject" so the dashboard and search use your wording.
/ptickets can <name>Post a canned reply by name. Autocompletes from the per-guild list.
/ptickets listList open tickets in this server.
/ptickets statsQuick analytics.
/ptickets transcriptGenerate a transcript right now.

Inside a ticket channel, staff can also fire a canned reply via ?<name> shortcode (e.g. ?welcome). Phantom deletes the trigger message and posts the rendered reply.

Permissions

  • tickets.view — see the dashboard pages + ticket list.
  • tickets.edit — manage panels, types, settings; configure auto-assist.

Per-ticket-type staff_role_ids ALSO grant staff abilities — a member with one of the type's staff roles can claim/assign/close/etc. that type's tickets regardless of dashboard permissions. This is the "different staff for different ticket kinds" model.

(Discord's Manage Channels + Administrator are also accepted as legacy fallback paths.)

Limits

  • 50 panels per guild
  • 50 types per guild
  • 5 form fields per type
  • 25 buttons per panel
  • 90-day transcript retention (configurable up)

Defaults

  • Auto-close: idle for 3 days → close. Warning DM sent 1 day before.
  • Priority: normal.
  • Transcript: HTML, hosted by Phantom and accessible via a private link for staff.

Where to go next

Phantom is a product of Hydra Labs. The bot is run as a managed service; you do not need to host it yourself.