Discord Ticket History: How Members Find Their Own Past Tickets
Closing a ticket deletes the channel, but the member keeps the record. How they find their old tickets and transcripts, and what the history deliberately hides.
Dani, Founder, AI Ticket Bot
8 min read
Closing a ticket deletes the room it happened in. That is the right default, because a server carrying four hundred dead ticket channels is unusable, and it is what nearly every Discord ticket bot does. It also means the member walks away holding nothing they can point at.
They do get the transcript link, by direct message, the moment the ticket closes. Two weeks later that message sits above a game invite and three friend requests, and the member is back in your server asking whether anyone remembers what they were told in June. Somebody on your team then goes and finds it, which is a support ticket about a support ticket.
What a Discord ticket history is
Three things get used interchangeably and are not the same, so it is worth separating them before anything else.
- Transcript
- The saved record of one ticket conversation, at its own link
- Ticket history
- One person's index of the tickets they opened, with a way into each
- Ticket search
- The staff-side view of everybody's tickets in one server
A transcript is a document. A history is a list. A product can have the first without the second, and it is worth checking on any bot you are comparing, because "we save transcripts" and "your members can find their transcripts" are different promises with very different day-to-day consequences.
The staff-side equivalent here is /ticket search, which filters every ticket in the server by status, priority, opener, panel and period. That one is gated on staff permissions and it answers a different question. Support analytics covers the staff view properly.
How a member finds their own past tickets
Two surfaces, the same data underneath, and neither of them asks for a permission.
In Discord
- Run
/mytickets - Inside a server it lists that server
- In a direct message it lists every server
- The reply is private to the member who ran it
- Ten per page, pick one for the detail
On the website
- Sign in with Discord, open the account page
- Lists every server at once, with a filter
- Filter by still open or finished
- Every view is a plain URL they can bookmark
- Ten per page, the transcript link on the row
/mytickets is the only ticket command that works outside a server, and that is structural rather than incidental: a subcommand of a server-only group can never appear in a direct message, so this one sits at the top level on its own. There is nothing to grant, either. It only ever returns tickets that member opened, so no permission would make sense attached to it.
Picking one ticket opens a detail view with up to two buttons: a jump back into the channel while the ticket is still live, and the transcript once there is one. A closed ticket has no channel left to jump to, so that button is absent rather than broken.
Tickets are listed by their channel name, not their number. Ticket 137 identifies nothing to the person who was inside it. A name like support-137 does, and it is stored at close so it survives the channel being deleted.
What the history shows, and what it leaves out
The member's view is a deliberate subset of the row your staff see. Each omission has a reason, and the reasons are the interesting part.
| What | In the member's history | Why |
|---|---|---|
| The server, channel name, panel and category they picked | Yes | They chose it and they lived in it |
| When it opened, and when it closed | Yes | Their own timeline |
| Whether it is still going or finished | Yes, in plain words | Discord shows Open, Being handled, or Closed. Claimed is a staff word and never reaches them |
| The transcript | Yes, while it is still within retention | It is a record of their own words |
| Who claimed it, and who closed it | No | See the next section |
| The reason staff gave for closing | No | Written by staff, for staff, and sometimes about the person who would be reading it |
| The priority you set | No | Internal triage. Telling somebody their ticket was Low is an argument nobody needs |
| The star rating they left at close | No | Ratings are read by Manage Server and never handed back to the member |
| AI message counts, handoff times, staff contribution stats | No | Operational numbers, not the member's business |
One rule covers the whole table: the member sees what they already experienced, and nothing your team wrote about it afterwards. Everything in the lower half is a note taken by staff, for staff, and handing it back to the member changes what it is.
Why hiding the staff name is the load-bearing one
Every line in that lower half is a judgement call. One of them is more than that.
Staff replies on this bot can be sent under a shared Staff label, so the member never learns which person answered. Servers turn it on for good reasons: it stops one helper being direct messaged for months over a decision they only relayed, and it keeps a refusal from becoming personal. Replying as Staff goes through when that is worth doing.
Now put the claimer's name on a self-service history page. Every ticket ever answered anonymously has just been de-anonymised, retroactively, in a single release. Not one ticket: all of them, on every server, as far back as the records go.
For a large share of tickets there is no staff name to hide in the first place. Roughly half of all tickets across every server running this bot close with no human replying at any point. The live figures sit at /api/stats/global if you would rather check than take our word for it.
How that share is defined
- Sample
- Every ticket the bot has handled, V1 and V2 combined
- Window
- Lifetime to date, refreshed continuously rather than pinned to a date
- Definition
- Closed with no human replying at any point. One staff message and it does not count
Does it still work after somebody leaves your server?
Yes, and it is worth knowing before the day you need it.
The check on a transcript is whether the reader is the person who opened that ticket, compared by Discord account, and it runs before anything looks up server membership. A member who left, or who you banned, can still list their own tickets and read their own transcripts.
Staff access runs the other way. A staff member's right to read somebody else's transcript comes from holding a role in your server, so it ends when they leave it. The record follows the person who opened it. The access to everyone else's follows the role.
Both halves are deliberate and both are worth being able to say out loud. A departing moderator does not keep a window into your ticket archive. A member you removed does not lose the record of what you told them before you did.
The gate on a leaked link is unchanged by any of this: the URL alone is not enough, and anyone who is neither the opener nor current staff of that server is refused. Transcripts, retention and privacy is the full version.
How long a member can read their history for
Transcript retention
- Free
- 90 days
- Premium
- 730 days
- Pro
- 730 days
- Enterprise
- 730 days by default, set per agreement
The ticket outlives the transcript. Once the body is purged the ticket still appears in the member's history and says the record is no longer available, rather than offering a button that fails. Small thing, and it saves a support ticket every time it happens.
Two ways a history ends up thinner than you expect. A server can switch transcripts off entirely, which is free and has no plan gate: closing then stores nothing at all, and the member's list has rows with nothing to open. And tickets opened through somebody else's bot, using the connect feature, keep no messages with us, so they carry no transcript either. What a close actually deletes has the rest of that sequence.
Website chats from a visitor who never signed in appear nowhere in this, because there is no account to attach them to.
Where a ticket history is the wrong answer
Worth telling members about when
- People regularly ask you what they were told last time
- Staff spend real time re-finding and re-sending transcript links
- Your team answers anonymously and you still want members to keep the conversation
- Somebody has left and wants their own record of a decision
Not what you need when
- You want the old ticket reopened: there is no reopen anywhere in the product
- You want a customer profile, with purchase history and past behaviour attached
- You want the member to see their rating, or your close notes, read back to them
- You need to reach somebody who has gone quiet: this runs in their direction, not yours
That last one is the real ceiling. A ticket history is a record, not a relationship. There is no email address, no phone number, and no way to start a conversation with somebody who is no longer in your server, which running a helpdesk on Discord is honest about at more length.
What it does do is take a recurring class of work off your team without anybody configuring anything. It is on now, on every plan, and the only reason your members are not using it is that nobody has told them it exists. One line in your rules channel, or in the description on your ticket panel, is the whole rollout.
Keep reading
Frequently asked questions
With the mytickets command, which anyone can run and which needs no permission at all. Run inside a server it lists the tickets that member opened there. Run in a direct message with the bot it lists every server they have ever opened one in. The same list is on the website after signing in with Discord, on the account page, with a filter for which server and whether the ticket is still going.
Yes, if they were the person who opened it. The check is whether the reader is the original opener, compared by Discord account, and it happens before anything looks at whether they are still a member. Staff access works the other way round, because it comes from holding a role in your server and ends when they leave. Retention is what eventually closes a transcript, not membership.
No, and that is deliberate rather than an oversight. A server can send staff replies under a shared Staff label so members never learn who answered, and a history page that listed the claimer would undo that for every ticket at once, retroactively. The close reason and the priority are withheld for the same kind of reason: both are notes your team wrote for itself.
Yes. Signing in with Discord on the account page shows the same history, ten rows per page, filtered by server or by whether the ticket is still open. Nothing beyond a Discord login is needed, so a member with no role and no admin rights anywhere can still read their own record. The same handler answers both surfaces, so the command and the website cannot disagree about what a member is allowed to see.
The list of tickets is not pruned, so it goes back as far as your server's records. What expires is the readable transcript: 90 days on the free plan and 730 days on every paid plan. After that the ticket still appears in the history and says the record is no longer available, instead of offering a link that fails. A server can also switch transcripts off entirely, in which case nothing is stored to read.
They should not have to. The link goes out by direct message when the ticket closes, and that message scrolls away, which is why members ask. Pointing them at the mytickets command once is usually the end of it: the list is private to them, it has every ticket they opened, and it carries the transcript link on each row that still has one.
It’s not just an AI, it’s your AI.
See it on your own server.
Add the bot free, teach it a few of your most common answers, and watch it clear the repeat tickets on its own.
Free plan, no card. Your first panel starts 14 days of Premium.
Keep reading.
All articlesDiscord Ticket Close Requests: Ask First, Close on a Timer
Staff can ask the opener whether a ticket can be closed, with a deadline attached. What the member sees, the four ways it ends, and why silence closes it.
9 min read
Discord Saved Replies: What Belongs in the Library
A saved reply is a staff message, so every one you send ends the AI's turn. What to keep in the library, what to teach the AI instead, and where the limits sit.
9 min read
Anonymous Staff Replies in Discord Tickets: Who Still Sees You
Staff can answer a ticket as Staff instead of by name. What the member stops seeing, the six places a name leaks by default, and what still names you.
9 min read