Discord Ticket Logs: Four Events, Four Channels, One Blind Spot
Ticket log channels are free on every plan and set per event, so opens, claims, closes and transfers can each land somewhere different. What each one carries.
Dani, Founder, AI Ticket Bot
9 min read
Most servers treat this as one setting called "the log channel", pick a channel, and never look at it again. It is four settings, and the difference between one channel and four is the difference between a feed nobody reads and a record somebody actually uses.
What is a Discord ticket log channel?
Short answer: a channel where the bot posts a one-embed summary each time a ticket changes state. You set it from the panel, either with /panel in Discord or in the panel editor on the dashboard, and it takes effect on the next ticket. There is no plan gate on any of it.
The post is deliberately short. It names the ticket number, the panel it came from, the category, and whoever is involved, over the server icon and a timestamp. On open, claim and transfer it carries a Jump to ticket button. On close it carries Open transcript instead, because by then the ticket channel is gone.
That last detail is the point of the feature. A Discord ticket bot deletes the ticket channel when it closes, so a staff member scrolling back through their server finds nothing. The log channel is the one surface where the shape of a day's support work stays visible in Discord.
Which events can you log, and what does each one carry?
| Event | Fires when | The post names | Button |
|---|---|---|---|
| Opened | A member opens a ticket on this panel | Opener, category, panel | Jump to ticket |
| Claimed | A staff member takes an open ticket | Claimer, opener, panel | Jump to ticket |
| Transferred | Staff move a ticket to another category | Staff member, opener, the old and new category | Jump to ticket |
| Closed | The ticket ends, by any route | Closer, opener, category, panel, close reason | Open transcript |
Four events is the whole list, and the omissions matter as much as the entries. Unclaiming is not logged, and neither is a message, a rename, a priority change, somebody being added to a ticket, or a rating arriving. The dashboard audit log has those; the log channel never will.
The posts follow your server's language setting, so a server running /language in Portuguese gets Portuguese log embeds. And each event is stored against one panel: a server with a support panel and an appeals panel has eight settings, not four, and a new panel starts with all of them off.
Why the four events belong in different channels
The default instinct is one channel for everything. It is also the setup that guarantees nobody reads it: opens outnumber every other event and drown them.
One channel for all four
- Opens bury closes at roughly the rate tickets arrive
- Useful for about a week, then muted
- Anyone who can read it sees every opener's name
- Finding last Tuesday's close means scrolling past 200 opens
A channel per event
- Each feed stays at the volume of the thing it tracks
- The closed feed stays short enough to actually scan
- Opens can stay private while closes go to a wider staff channel
- Search in the right channel returns the right thing
Off is a real answer for at least one of the four. If a responsible role is already pinged inside every new ticket, an opened feed is telling your staff something they have already been told.
Setting one up
- Open the panel:
/panelin Discord, or the panel's editor page on the dashboard - Go to Log channels, which lists all four events with an Off option each
- Pick a channel per event. Off is a real answer for events you do not need
- Confirm the bot can view and send in each channel you picked
- Open a test ticket and close it, then check both channels caught it
Nothing is backfilled. Logging starts with the next ticket, so a panel that has been running for six months without it has six months of history only in the transcripts.
What the close log records that nothing else does
The closed post carries a Reason field, and reading it is the fastest way to understand your own queue. A staff member who types a reason on /ticket close has that exact sentence shown. An automatic close writes a code instead, and the bot renders it as a phrase:
What the reason field says
- Inactivity
- The ticket was auto-closed after silence, on the panel's own timer
- User left the server
- The opener left, so their open tickets were closed behind them
- Admin force-close
- An administrator closed it from outside the ticket
- Ticket channel was deleted
- Somebody deleted the ticket channel by hand rather than closing it
- Ticket thread was deleted
- The same, on a panel running tickets as threads
- Ticket channel was no longer reachable
- The bot could not see the channel any more when it went to close it
Two of those are worth a standing habit. "Ticket channel was deleted" means a staff member with Manage Channels skipped the close flow, which still produces a transcript but skips the close reason and any chance of the member rating the exchange. And a run of "Inactivity" closes on one panel usually means the auto-close window is set shorter than your team's real response time, which is a setting problem rather than a member problem. Auto-close settings covers what to do about it.
One thing catches people out. An automatic close is attributed to the bot rather than left blank, so the closer field alone will not tell you whether a person ended the ticket. The reason field is what distinguishes them.
Who can read the log channel is a decision, not a default
A log post is an ordinary Discord message in an ordinary channel. Nothing about being a log makes it private, and the bot will happily post into a channel every member can read.
That matters most on the opened event, because its post says who opened a ticket and which category they picked, in plain text. Panel categories are descriptive by design. "Report a player", "Ban appeal", "Billing", "Report a staff member". A public opened-feed publishes that pairing for every member of your server, forever, in a way the ticket itself never did.
Staff-only is the assumption most people make and the setting fewer people check. On a report or appeal panel, leaving the opened event off entirely is the safer default.
When the log goes quiet, and nothing tells you
The log fan-out is best-effort on purpose. It runs as a detached task after the ticket work is already done, and every error inside it is swallowed rather than raised. That is the right call: a log channel that has been deleted must never stop a member from opening a ticket or a staff member from closing one.
The cost of that design is the blind spot in the title. If the bot loses permission to post in the log channel, or the channel is deleted, or it is moved under a category that denies the bot, then ticket logging stops and everything else keeps working perfectly. No DM, no error embed, no warning in the dashboard.
Compare that with the paid webhook path, which does have a watchdog: an outgoing webhook that fails repeatedly disables itself and direct-messages the server owner to say so. Log channels have no equivalent, which is deliberate but worth knowing.
There is a second silent gap on the same feature. If a panel is deleted while tickets it created are still open, those tickets survive as orphans and close normally, but the close is not logged anywhere, because the log routing belonged to the panel that no longer exists.
Re-test your log channels after any permission or channel reshuffle
The failure mode is silence, so nothing prompts you to look
Assume a quiet log channel means a quiet day
A quiet log channel is equally consistent with the bot having been locked out of it three weeks ago
What a log channel is not
This is the part that saves money, so it is worth being blunt about the boundaries.
It is not the transcript. Ticket transcripts are the full conversation, stored at a link, kept for 90 days on Free and 730 days on a paid plan. The log post is a summary, and it lasts as long as you keep the channel. When the transcript expires, the button on an old close post stops leading anywhere useful.
It is not the dashboard audit log. That records configuration changes and staff actions across the whole server, including who changed the log routing itself, and it is not limited to four events.
It is not a webhook. Outgoing webhooks exist to reach systems that are not Discord, they are a paid feature, and their payload deliberately does not carry the close reason that the log embed does. A log channel tells your staff. A webhook tells your software.
It is not Discord's own audit log. Discord will record that the bot deleted a channel. It will not tell you the ticket number, the opener, the category, or why.
Reach for a log channel when
- You want a scannable feed of ticket activity for staff
- You want closes visible after the channels are deleted
- You want to spot who is closing tickets by deleting the channel
- You are on Free and want a record that costs nothing
Reach for something else when
- You need the conversation itself, which is the transcript
- You need ticket data in a CRM or a spreadsheet, which is a webhook
- You need a log of every message, rename or permission change
- You need an alert when something breaks, which no log channel provides
How the resolution share is defined
- Sample
- Every ticket handled across the bot's lifetime, V1 and V2 combined
- Window
- Lifetime to date, refreshed continuously rather than pinned to a date
- Definition
- Resolved by AI means the AI closed the ticket with no human stepping in at any point. A single staff reply disqualifies it
The setup worth copying
Turn closed on first, into a quiet channel your leads read. It is the single most useful of the four, it is the only one carrying a reason, and it is the one whose information disappears from Discord otherwise. Add claimed if you want to see who is picking work up. Add transferred if you route by category and want to know where routing is going wrong. Add opened last, or not at all, after you have decided who is allowed to read it.
Keep reading
Frequently asked questions
It is a channel you nominate where the bot posts a short summary every time something happens to a ticket. The summary names the ticket number, the panel, the category and the people involved, and it carries a button that jumps to the ticket or opens its transcript. It is a feed for staff to scan, not a copy of the conversation, and it lives in a channel you control rather than inside the ticket itself.
No. Log channels are free on every plan including Free, with no cap on how many panels use them. This is worth knowing before you pay for anything, because the most common reason people buy outgoing webhooks is that they wanted ticket activity posted in a Discord channel, which log channels already do for nothing and format better.
Four: opened, claimed, closed and transferred. Each one is set separately on each panel and can point at a different channel, or at no channel at all. Unclaiming is not logged, and neither are messages, renames, priority changes, people added to a ticket or satisfaction ratings. Those are visible in the dashboard audit log or in the transcript instead.
Almost always because the bot lost access to that channel, or the channel was deleted or moved into a category that denies it. The log fan-out is deliberately best-effort and detached from the ticket itself, so a failure there can never stop a ticket from opening or closing. The trade-off is that it fails silently: nothing is DMed to you and no error appears anywhere a server admin looks.
No. The transcript is the full conversation, stored off Discord at a link, and it expires on your plan's retention clock. The log post is a few lines of summary that stays in your own channel for as long as you keep the channel. They answer different questions: the log tells you a ticket was closed and by whom, the transcript tells you what was actually said.
Yes, in three places. The close log post names the closer and carries the reason. The dashboard audit log records every close with the actor and the kind of close it was. The transcript page shows the close note. An automatic close is attributed to the bot itself, so the reason field is what tells you whether it was inactivity, a member leaving the server, or somebody deleting the channel by hand.
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 articlesHow to Open a Ticket in Discord (and What Decides If It Opens)
Members open a ticket by pressing a button on a panel. Behind that press sit five steps in a fixed order, and five routes in that do not all pass them.
9 min read
Discord Ticket Panel Design: What You Can Change, and What Discord Decides
The ticket panel is designable on every plan. What you can change, the two layouts, how members pick a category, and the rules Discord imposes on all of it.
9 min read
Discord Ticket Channel Names: The Template and What Discord Does to It
Ticket channels are named from a template on the panel, using three variables. What you can put in it, what Discord rewrites, and why a name changes on its own.
9 min read