DocsGetting started

How tickets work

The life of a ticket from the button press to the deleted channel, and exactly what Sortr does at each stage.

Every ticket opens, is worked on, closes and is eventually deleted, perhaps with a reopen in between. This page says what Sortr does at each stage, with links to the settings that change it.

#Opening

A member presses an option under a panel's post: a button, or an entry in a menu. A ticket can also be opened with /new, if you have switched it on under Slash commands. Only the support team, or the roles you pick for it, can use it, and opening a ticket for someone else always needs the support team.

#The checks

Before anything is created, Sortr checks these, in this order:

  1. The member may use the option they pressed, going by its Who can use it under Buttons › Access and roles. It is Everyone unless you change it. The server owner can always use it, and so can Administrators, except when the option hands out a role at or above their own highest role, or the server requires 2FA for moderator actions (see Servers that require 2FA).
  2. The server is not close to Discord's limit of 500 channels. Sortr stops opening tickets at 470. Threads are not counted.
  3. The member does not have a blocked role.
  4. It is inside support hours, if the panel has them.
  5. The member did not open a ticket from this panel too recently.
  6. The member is within the panel's limits on open and closed tickets.

The first check that fails is the answer the member gets: a message only they can see, saying why, and no ticket or form opens. /new does not go through an option, so the first check does not apply to it. When an option opens another panel's tickets, the blocked roles of both panels apply, and those of the panel whose post was pressed are checked first of all. See Limits and rules.

If the panel has Questions switched on, the member fills in a pop-up form next, and the checks run again when they submit it.

#What Sortr creates

  • A number. Tickets are numbered across the whole server, shared by every panel, with four digits by default: 0042.
  • A channel. It is named by the panel's Name while open pattern, ticket-{ticket.number} by default, so ticket-0042. See Ticket channel.
  • A place for it. The channel goes into the first category under Where new tickets go that has room. With no category set, it is created outside any category. When every category in the list is full, the ticket is also created outside any category, and the event log says so. With Create a new category when these are full switched on for the list, Sortr creates the next category instead, adds it to the end of the list and puts the ticket there. See Destination category.
  • Who can see it. @everyone never can, whatever the settings say. The member who opened it and each support role can see it, with the permissions set under Who can see it. Server admins can see it too, because Discord lets them see every channel.
  • An opening message. Sortr posts it with a Close button, mentioning the member and the support roles. It pins it, unless you switched off Pin the opening message. If Discord does not let Sortr pin it, the ticket opens all the same and the event log says "Sortr could not pin the opening message". The member's answers to the questions are added to it, unless you switched off Show answers in the ticket. See Opening message.
  • The member's files. If a question's Answer is set to Files, Sortr posts a copy of the files the member attached under the opening message, one message per question. That copy in the ticket is the only one: Sortr keeps the files' names, never the files. See Questions.

Then Sortr changes the member's roles: first the panel's roles under When a ticket opens, then the Give roles and Remove roles of the option the ticket was opened through. An option's roles are changed once, when the ticket opens, and are never handed back when it closes or is deleted. Sortr writes "Ticket opened" to your event log and sends the event to any webhooks. The member gets a message only they see: "Ticket 0042 opened:" with a link to the channel.

#While it is open

  • The member and support talk in the channel. Every new message, apart from Sortr's own quiet-ticket reminder, restarts the quiet clock used by Automations.
  • With /add and /remove switched on, the support team, or the roles you picked for each command, can bring someone else in or take them out, and the support team can let a whole role in with /add. The member who opened the ticket cannot, unless a role they hold is picked. See Working a ticket.
  • If you change a panel's support roles and save, existing tickets follow: a removed role loses access to them, and a changed role gets its new permissions on the tickets it is already on. This applies to open and closed tickets alike, and a restart part way through is picked up once Sortr is back. A role you add reaches existing tickets only if you say so when you add it. Sortr's role needs Manage Permissions on those ticket channels for this: where Discord refuses it, the event log names the tickets that kept their old support roles. Tickets Sortr took over from Ticket Tool are the exception: they keep the roles they had when Sortr took them over. See Who can see it.

#Closing

The member who opened the ticket and the support team can close it with the Close button. Here "the support team" means members of the panel's support roles with Full access, the server owner, and anyone with Administrator, except in a server that requires 2FA for moderator actions, where Administrators need a support role too. Pressing Close first asks, privately, "Close this ticket?", and Close ticket goes ahead.

A ticket can also be closed with /close, which asks nothing and takes an optional reason of up to 500 characters. It is for the support team, or for the roles you pick for it under Slash commands. The member who opened the ticket uses the button. And a ticket closes on its own after a quiet spell if you use Automatic close.

Sortr only closes a ticket it can lock the member out of. If its role can no longer see the channel, or lacks Manage Permissions there, the ticket stays open, and whoever pressed Close ticket or ran /close is told "Sortr can't manage this ticket's channel any more, so it can't close it. Let the server's staff know."

When a ticket closes, Sortr:

  1. Locks the member out. The member, and anyone added with /add, members or roles, lose View channel and Send messages. The channel stays, and support can still read and write in it. Bots keep their access. If Discord refuses Sortr in that channel, for example when its role lacks Send Messages there, taking the channel away can fail, and the event log then names who may still be in.
  2. Posts the closed notice with Reopen, Transcript and Delete buttons, which only the support team can press by default. Who may press each one is set under Ticket buttons. Whoever closed the ticket is told it is closed now, without waiting for the transcript.
  3. Saves the transcript to the places set under Transcripts, if Save it is on When the ticket closes, the default. If the notice uses {transcript.link}, Sortr adds the link to it once the copy is saved. With When the ticket is deleted, nothing is saved now and the notice has no transcript link. If other transcripts from your server are being saved, this step waits its turn. A save that fails is logged as "Transcript not saved at the close".
  4. Sends the member a direct message if you switched on Close message to the member. It is off by default. A member who has had several direct messages from Sortr in the last hour, from any server, may not get it, and the close's entry in the event log then says so.
  5. Hands out roles set under When it closes, writes "Ticket closed" to the event log and sends the webhook event.
  6. Renames and moves the channel. The new name comes from Name once closed, closed-{ticket.user.name} by default, which is the member's Discord username without its dots, so closed-renoakley. The channel moves to the first category under Where closed tickets move that has room. If every one is full, it stays where it is. With Create a new category when these are full switched on for that list, the close finishes first and the channel moves once the new category exists.

If Sortr restarts in the middle of a close, it finishes locking people out and handing out the When it closes roles once it is back.

SortrAPPToday at 15:40
Ticket closed

Closed by @mira.k. Use the buttons below to reopen it, save a transcript or delete it.

🔓 Reopen📄 Transcript⛔ Delete

Good to know. Discord allows two renames per channel every ten minutes. If a ticket is closed and reopened quickly, Sortr skips a rename rather than wait, so the channel may keep its old name for a while. A rename or move that does not happen at a close or reopen is written to the event log: under Missing Discord permission when Sortr lacks a permission for it, otherwise under Something went wrong, which for a skipped rename suggests renaming the channel by hand if the name matters.

#While it is closed

The channel stays, and support can keep writing in it. Anything written after the close stays among staff. The copies the member can read, on Sortr's site or in their direct messages, stop at the close. The copy posted in your server has everything.

Transcript on the closed notice saves the conversation to the Discord channel and the Sortr site, as set under Transcripts (never to the member's DMs), and hands you the file privately. The button and /transcript save at most once per ticket every 2 minutes.

Closed tickets count towards the panel's closed-ticket limit until they are deleted. Every closed ticket is listed in the dashboard under Closed tickets.

#Reopening

Support presses Reopen. If staff have written in the channel since it closed, Sortr first warns, privately, that reopening lets everyone who comes back scroll up and read those messages. It names them: the member, and anyone added with /add, up to 20, then how many more. Reopen anyway goes ahead. Then Sortr:

  • gives the member back the permissions the panel gives a ticket owner, and lets back in anyone added with /add who was locked out at the close. If Discord refuses Sortr in that channel, for example when its role lacks Manage Permissions there, letting them back can fail, and the event log then names who is still locked out;
  • posts "Ticket reopened", mentioning the member, unless you switched that message off;
  • renames the channel back with Name while open, or to ticket- and its number when that is blank, and moves it to the first category under Where new tickets go that has room. A reopen never creates a category: if every one is full, the channel stays where it is;
  • takes the Reopen, Transcript and Delete buttons off the closed notice, so they are not left under an open ticket;
  • writes "Ticket reopened" to the event log and restarts the quiet clock.

Both name patterns can use {panel.name}, and Sortr fills it in on a close and on a reopen as it does when the ticket opens. The roles under When a ticket opens, and an option's own roles, are not handed out again on a reopen.

#Deleting

Support presses Delete on the closed notice. Delete asks once, then deletes. The first press only shows a prompt, which only the person who pressed sees. It says that deleting removes the channel and everything in it for good, and what happens to the conversation: "A transcript is saved first.", "Its transcript is already saved." or "No transcript is kept, because transcripts are switched off for this panel." Pressing the red Delete ticket button on that prompt deletes. Dismissing the prompt keeps the ticket. There is no undo.

Once Delete ticket is pressed, Sortr does these three things, then removes the channel 8 seconds later:

  1. Saves a transcript, when one is called for. That is when Save it is on When the ticket is deleted, and also when the ticket has no copy since its last close, whichever you picked. With all three places under Transcripts switched off, nothing is saved.
  2. Posts the notice. The Before deletion message, "Deleting this ticket", says the channel and everything in it will be gone in 8 seconds, unless you switched that message off. It can link to the copy that was saved a moment ago with {transcript.link}.
  3. Writes the log entry. "Ticket deleted" goes to the event log, with "Transcript saved before deletion" or "The transcript could not be saved before deletion" when a save was tried. The webhook event carries a link to the copy that was saved, if any.

Nothing in the channel can be brought back, but saved transcripts are kept, and the ticket stays in the Closed tickets list.

A reopen takes the buttons off the closed notices among the channel's latest 50 messages. A Delete button left on an older closed notice, further up a long conversation, still works on the reopened ticket. Its prompt then starts "This ticket is still open." Going ahead saves a transcript first, as above, and hands out the roles under When it closes. In the Closed tickets list such a ticket reads "deleted while open", with the date it was deleted.

If someone deletes a ticket channel by hand in Discord, Sortr notices, marks the ticket deleted and logs "Ticket channel deleted". A channel deleted by hand is never saved, whatever Save it says. If that ticket was still open, Sortr also hands out the roles under When it closes. A channel deleted while Sortr was offline is marked deleted and logged once Sortr is back, without handing out roles.

#Steps Sortr takes on its own

These are set per panel under Automations and Transcripts. Sortr checks for them about every five minutes, and for old transcripts about once an hour, so a step can run a little late. Each check closes at most 5 tickets and deletes at most 5 from one server, taking servers in turn, so a backlog is worked off over the next checks.

StepWhat Sortr doesDefault
WarningWhen nobody has written in an open ticket for the time you set, posts "Waiting on a reply" with a silent mention of the roles you pick. The member is never pinged. Once per quiet spell, and only while a role is picked.Off
Automatic closeCloses a ticket nobody has written in for the time you set, and posts "Closed automatically". Like a close by hand, it hands out roles, and saves the transcript when Save it is on When the ticket closes.Off
Automatic deleteDeletes a closed ticket's channel once it has been closed for the number of days you set. It asks nobody. It saves a transcript first under the same rule as the Delete button, then posts the "Deleting this ticket" notice 10 seconds before the channel goes.Off
Keep it forDeletes transcripts kept on Sortr's site once they are older than this, and a closed ticket's form answers and subject once this long has passed since the close. Set under Transcripts.90 days

Tickets whose panel has been deleted keep working with the settings the panel had when it was deleted, Automations included, and its webhooks only if you chose to keep them. Those settings can no longer be changed, apart from stopping kept webhooks on the server page. See Deleting a panel.

Something unclear or out of date? Tell us and we will fix it.

Updated 2 November 2026