Documentation → Guild tickets

🎫 Guild tickets

Opt-in support tickets: types, auto case workers, staff dashboard, and optional Discord sync.

Optional per-guild module (off by default). Owners/admins enable it under Guild settings → Tickets, define one or more ticket types (emoji + name), and optionally wire Discord categories and a panel embed. The sidebar shows Member Management → Tickets when the module is on.

Members

  • Open My tickets to create tickets and see past and current ones (multiple open tickets allowed). Open tickets are listed first; closed and auto-closed tickets are grouped in a collapsed section.
  • Each ticket has a title, description (rich text and pasted images), and a comment thread shared with Discord when that integration is enabled.
  • Creating a ticket on the web returns immediately; the Discord channel (when enabled) is set up in the background.
  • Tickets are auto-closed if the creator is removed from the guild.

Ticket types (owner/admin)

  • Add types with emoji, optional description hint, ping role IDs (Discord mentions and channel access when a channel is created), and handler user IDs (staff responsible for that type).
  • Handlers see open tickets for their types on the staff dashboard as todos, even without the global Tickets permission.
  • When a new ticket is created, a case worker is auto-assigned from the type’s handlers: one handler is picked directly; with several handlers, the one with the fewest open tickets for that type is chosen (tie-break by user id). Staff can reassign later.

Staff

  • Tickets permission (or owner/admin): Dashboard (open/closed counts, average close time, charts, my todos) and All tickets (defaults to Open; filter by status, type, case worker; sortable table).
  • Assign or change the case worker on each ticket from the web.
  • Close tickets from the web or Discord; closed tickets stay on the web indefinitely.

Discord (optional)

  • Configure an open tickets category, a closed tickets category, optional staff role (can view all ticket channels), and a panel channel.
  • Use Post / refresh Discord panel in settings to publish an embed with buttons — one per active ticket type.
  • Creating a ticket opens a private text channel named from type emoji, ticket number, member display name, and type name; channel topic uses the full title format Emoji | # | Display Name | Type.
  • The case worker is @mentioned in the channel intro and granted channel access when assigned (including when changed on the web). Ping roles configured on the ticket type also receive channel permissions, not only mentions.
  • Messages sync both ways between the web comment thread and the Discord channel (including images).
  • On close, the channel moves to the closed category and is deleted after 30 days; history remains on the web.

See Guild member permissions for the Tickets tag. Module setup and types remain owner/admin only.