Skip to main content

Support Tickets

Give your community a reliable way to get help. Zander's support ticket system works seamlessly across Discord and the web - every ticket is backed by a private Discord channel that mirrors the web conversation, with messages relayed both ways. Categories, staff-only internal notes, escalation, and permission-based access control ensure the right staff see the right tickets.

note

📸 Screenshot: The /support page showing a player's open tickets with status badges and category labels


For Players​

Opening a Ticket​

Tickets can be opened in two ways:

  • Discord: Click the Create Ticket button in your server's support channel, or use /ticket create.
  • Web: Go to /support/create and fill in the form.

Select the appropriate category when creating your ticket - this determines which staff team receives it.

Viewing Your Tickets​

All your open and closed tickets are listed at /support once you're logged in - this includes tickets you own as well as ones you've been added to as a participant. Click any ticket to view the full conversation.

Replying to a ticket requires your Minecraft account to be linked. From a ticket page you can also add or remove other participants (individual users or whole rank groups) if you're the owner, staff, or hold zander.web.tickets.manageparticipants.

tip

If you've received a punishment and want to appeal it, head to /appeal instead. Submitting the appeal form looks up the punishment, then opens a ticket titled Appeal #<id> - <type> - <date> in the "Uncategorised" category and notifies the staff member who issued the original punishment.


For Staff​

Ticket Dashboard​

The support dashboard at Dashboard → Support (requires zander.web.tickets) gives staff a full view of all tickets in their accessible categories.

note

📸 Screenshot: The support dashboard showing a list of open tickets across multiple categories, with status, priority, and last-updated columns

Features available from the dashboard:

  • Filter tickets by category (/dashboard/support/explorer?category=, staff must have access to that category), status, or assigned staff
  • Reply with a public reply (visible to the ticket creator) or an internal note (visibility=internal, staff only)
  • Update ticket status, reassign to a different category, escalate/deescalate (requires zander.web.ticket.escalate), lock/unlock, or close

Ticket Statuses​

StatusDescription
openActive - awaiting a response
pendingWaiting on additional information from the player (staff-set only)
closedResolved and closed - deletes the Discord channel; reopening recreates it

Locked and escalated are tracked as separate boolean flags on the ticket (not additional status values) and are toggled independently of the three statuses above:

FlagDescription
lockedReplies restricted to staff only
escalatedRaised to a higher support tier
note

Ticket status and category-level dashboard access use permission nodes derived from the category itself (zander.web.tickets.<slug> or zander.web.tickets.*), not a separate status-management permission.

Discord Ticket Commands​

When working from within a ticket channel in Discord, staff can use these /ticket subcommands:

SubcommandWhoDescription
/ticket status <status>StaffUpdate the ticket status
/ticket closeStaff or ticket ownerClose the ticket
/ticket lockStaffLock replies to staff only
/ticket add <user|role>StaffAdd a participant to the ticket
/ticket remove <user|role>StaffRemove a participant
/ticket manual <user> <subject> <description>Staff (ManageChannels)Open a ticket on behalf of a player

Setting Up the Ticket Panel​

Use /ticket panel [channel] [category] to post a "Create Ticket" button in any channel. Players can click this button to open a ticket at any time (requires ManageChannels permission).

note

📸 Screenshot: A Discord support channel showing the "Create Ticket" button embed


Categories​

Ticket categories control how tickets are routed and which staff have access.

Manage categories from Dashboard → Support → Categories (/dashboard/support/categories) - create, edit, delete, and assign per-category role permissions.

Each category has:

  • A name and slug (used in permission nodes)
  • A list of staff roles - LuckPerms groups (mapped to Discord role IDs) that have access to tickets in this category

Creating, editing, or deleting a category automatically refreshes the category-picker buttons on the Discord support panel message.

Category Permissions​

PermissionDescription
zander.web.ticketsBase permission - access the support dashboard
zander.web.tickets.<slug>Access tickets in a specific category (e.g. zander.web.tickets.general)
zander.web.tickets.*Access tickets in all categories
tip

Use category-specific permission nodes to create specialised support teams - for example, give your moderation team zander.web.tickets.appeals without granting access to general enquiries.


Configuration​

Set your Discord ticket category and support panel channel in config.json:

"discord": {
"supportPanelChannelId": "CHANNEL_ID",
"supportTicketCategoryId": "CATEGORY_ID"
}

Ticket channels are created inside supportTicketCategoryId in Discord when a ticket is opened.

Support is gated behind the features.support flag in features.json; both the public routes and the JSON search endpoint check it before responding.

tip

There's no general-purpose way for other tools to read or write ticket data - the support pages only work when you're logged in through the website itself. The one exception is GET /support/users/search?q=, which powers the "search for a user to add" box on a ticket page.