When someone opens a ticket
A member clicks Create a ticket. Before anything is created, the bot runs four checks, in this order. The first one that fails stops the whole thing and tells the member why.
- Are they blocked? A blacklisted member is refused with a generic message, unless the entry was saved with its reason set to visible.
- Is the panel open? Outside business hours, they get your closed message.
- Do they already have one? One ticket per member per panel. They are pointed at the channel they already have, and that includes one that is closed but not yet deleted. Once the channel is gone they can open a new ticket, which takes the place of the old record.
- Can they pay? Only when the panel has an opening cost. A member short on coins is told the price and their balance.
Depending on the panel's create behaviour, they may first have to confirm, or fill in a reason and pick a label. Then the channel appears.
What the bot builds
A category. The panel's category, or a new one named Tickets if none is
set or the configured one is gone. A category the bot creates is denied to
@everyone and then saved back onto the panel, so the next ticket reuses it.
The channel, named from your format and numbered. Every panel counts its own tickets, so the numbering is per panel.
The permissions. @everyone is denied View Channel. The member, the bot
and each support role get View Channel, Send Messages, Read Message History
and Attach Files.
The welcome message. Your message content with {author} turned into a
real ping, then a card holding the panel name (which links to the ticket's
dashboard page), your ticket description, the reason if one was given, the
labels if any were picked, and the staff buttons: Close Ticket, Claim
Ticket, Escalate, and a ⋯ menu. It is pinned unless you turned that
off.
The ping sits above the card, and the four buttons sit inside it, under the text. Reason and Labels only appear when the panel asked for them.
Alongside that, and none of it blocking the ticket: a line in your log channel
if you set one, the private staff notes thread if the panel creates them
automatically, and the ticket_open event for the
autoresponder if you built anything
on it.
When it fails
Channel creation is the step most likely to fail, and the bot repeats Discord's own reason rather than guessing. The three you are most likely to meet:
- The bot is missing Manage Channels.
- The category is full. Discord allows 50 channels per category, and a busy panel gets there. Delete closed tickets, or point the panel at a fresh category.
- The server is at its channel limit.
If a paid ticket fails at this point, the coins are refunded automatically.
Opening a ticket for a member
Sometimes support starts somewhere else and you want a ticket for it.
From Discord: right-click the member, then Apps, then Create Ticket. You get a private list of your panels as buttons. The ticket opens in the member's name only on panels set to Create directly; on panels that ask for a confirmation or a reason the ticket is opened in the name of the staff member who clicked. This needs the Manage Server permission.
From the dashboard: on the tickets list, the Create Ticket button asks for a panel, a member, optional labels and an optional reason. The ticket gets an extra note saying who created it from the dashboard.
Tickets opened either way behave exactly like a member's own, with one exception: a ticket opened from the dashboard is never charged. A ticket opened with the Discord Create Ticket context menu still charges the member it is opened for, and is refused outright if they cannot afford it.
Blocking someone from opening tickets
Three ways in, one list out.
- The dashboard's Blacklisted users card, on the Ticketing page. It is the only one that can block for selected panels only, attach a reason, and choose whether the member sees that reason.
/ticket blacklist add, with an optional reason and ashow_reasonswitch. It blocks on every panel./ticket blacklist removelifts it and/ticket blacklist listshows who is blocked. These need Manage Server.- The ⋯ menu inside a ticket, Blacklist author. Staff-only, blocks on every panel with no reason, and offers a Close button right after.
Blocking never touches the tickets someone already has open. Close those yourself.
Next: handling a ticket.
