Skip to content

Tickets ​

A ticket is a private channel between a member and your staff, opened with a click on a panel in Discord. Naeris creates the channel, pings the right people, keeps track of who handles it, and saves a transcript when it closes.

Naeris needs
Manage Channels · Manage Roles · Read Message History · Attach Files

How it fits together ​

Three pieces, set up in this order on the dashboard:

  1. Categories decide who handles a ticket, where its channel is created and what the first message says. "Support", "Reports", "Partnerships"…
  2. Panels are the messages in Discord with the buttons or the menu members click. Each choice of a panel opens a ticket in one category.
  3. Auto-replies are answers Naeris posts by itself when a message in a ticket matches a pattern.

Basics ​

  • Open tickets allowed on the server: a cap for the whole server, against floods.
  • Log channel: openings, claims and closes are logged here, with the transcript attached.
  • DM the transcript to the member when their ticket closes.
  • Close a member's tickets when they leave: with a transcript, like a normal close.

Categories ​

SettingWhat it does
Staff rolesCan see and answer the tickets of this category.
Read-only rolesCan read but not write, for supervisors.
Roles that can't open these ticketsA "ticket banned" role, for instance.
Create channels underA Discord category. Empty puts the channels at the top of the list.
Channel nameticket-{username} by default. See the variables below.
Approval before openingSee Approval.
Open tickets per memberHow many tickets one member can have open in this category at once.
Close after inactivityMinutes without a message before the ticket closes on its own. Warn before closing posts a warning that many minutes before.
First message in the ticketIts Title and Text ({user}, {reason}), its Colour, and whether to Mention the member and Mention the staff roles.

Variables for the Channel name: {username}, {number} (the ticket's number on the server), {number:4} (the same, padded to 4 digits: 0042), {id} (the member's ID), {reason} and {category}. Names are lowercase with dashes instead of spaces, as Discord wants them: ticket-{number:4} gives ticket-0042, {category}-{username} gives support-mira.

Questions before opening ​

Each category can ask up to five questions in a window before the ticket opens: what's wrong, an order number, an in-game name. Like in forms, each question has an Example answer, Long answer, Required, and limits in characters.

The answers are posted in the ticket's first message, and shown in the approval request when the category needs one. The first answer is the ticket's {reason}, usable in the channel name and the first message.

Claiming ​

The first message of each ticket has a Claim button. Claiming tells the member and the rest of the staff who's on it, and the name shows up on the dashboard, in the logs and in the transcript.

  • First staff member to answer claims the ticket: no click needed, the first reply claims it.
  • Other staff keep access after a claim: off, only the claimer (and the admins) keep the channel.
  • Only the claimer handles a claimed ticket: closing, renaming, transferring are reserved to them. Server admins still can.
  • Move claimed tickets to: a Discord category for the tickets someone took, so the unclaimed ones stand out.
  • Remind the staff after (minutes): if nobody from the staff has answered by then, Naeris pings the staff roles once.

/ticket assign @member hands a ticket to a specific staff member.

Approval ​

Pick an Approval before opening channel and tickets no longer open straight away: the request arrives in that channel with the member's answers, and the staff clicks to open it or to deny it. The member is told either way. Useful for partnership or staff application categories, where most requests don't need a channel.

The dashboard's overview counts the requests waiting.

Panels ​

A panel is a card with a Title, Text, Colour, Footer and Image URL, posted in a channel. Members pick with buttons, a menu, or both. Each Choice has a Label, an Emoji, a Colour (for buttons) and the Category it opens a ticket in.

Saving a panel posts it, or updates it if it is already posted. /ticket setup #channel posts a simple panel from Discord.

A message builder button can also open a ticket exactly like a panel choice, on any message.

Inside a ticket ​

The member and the staff talk in the channel. Staff commands:

CommandWhat it does
/ticket add, /ticket removeLet someone else into the ticket, or take them out.
/ticket renameRename the channel.
/ticket priorityLow, normal, high or urgent: 🟢, 🟠 or 🔴 in front of the channel name.
/ticket transferMove the ticket to another category, with its staff.
/ticket closerequestAsk the member whether the ticket can be closed, with Close it and Keep it open buttons.
/ticket closeClose it, with an optional reason. The Close button does the same.

Closing removes the member from the channel, saves an HTML transcript (to the log channel, and to the member if you chose so) and leaves Reopen and Delete buttons for the staff. /ticket delete deletes a ticket without a transcript.

Auto-replies ​

An auto-reply has a Name, a trigger (Trigger when the message contains, starts with, is exactly, or matches the regex), the Text to look for, the Reply, and optionally a category. "How do I get the VIP role?" can get its answer before anyone from the staff wakes up.

From the dashboard ​

  • Open tickets lists the tickets right now, with who opened them, who handles them and the last message. Close (with a reason), Reopen, Delete, or Close every open ticket.
  • History lists closed tickets: member, category, who claimed it, when it opened and closed, and a link to read the transcript.
  • Last 30 days counts tickets opened and closed, and what each staff member closed and claimed.

Reports can also open a ticket with the member who reported, see Moderation.

Commands ​

/ticket

Tickets

  • setup<channel>Post a ticket panel
  • log<channel>Channel for ticket logs
  • limit<amount>Open tickets allowed at once
  • close[reason]Close this ticket
  • closeallClose every open ticket
  • add<target>Add someone to this ticket
  • remove<target>Remove someone from this ticket
  • deleteDelete this ticket without a transcript
  • reopen[user]Reopen a member's last ticket
  • rename<name>Rename this ticket
  • priority<level>Set this ticket's priority
  • transfer<category>Move this ticket to another category
  • closerequest[reason]Ask the member if the ticket can be closed
  • assign<member>Give this ticket to a staff member
/ticketcatManage Server

Ticket categories

  • listList the categories
  • add<category>[staff_roles]Add a category
  • remove<category>Remove a category