Discord Ticket Auto-Close Settings: Nudge, Ping, Then Close
Inactivity settings decide when a Discord ticket closes itself. What the nudge, the staff ping and the close each do, and how to pick a window you trust.
Dani, Founder, AI Ticket Bot
15 min read
Every ticket list ends up failing in one of two directions. Either it fills with channels nobody has touched in three weeks, so the count stops meaning anything and staff stop reading it, or it closes things too eagerly and members come back to find the conversation gone. Both are the same setting, tuned wrong in opposite directions.
What do inactivity settings do on a Discord ticket bot?
You set one number: how many hours of silence a ticket is allowed. On our bot it lives on the panel, accepts anything from 1 hour to 8,760 hours (one year), and is available on Premium and above. The dashboard offers one day, two days, three days, one week and one month as presets, because those cover almost everybody.
That single number then drives three different behaviours, in order.
- Silence starts
- Whoever owes the reply is nudged
- The window runs out
- The ticket closes
Most bots stop at the third step. The interesting part is the second, because before the bot can nudge anybody it has to answer a question that a flat timer never asks.
Who owes the next reply?
The bot looks at the author of the most recent real message in the ticket and compares it to whoever opened it. That comparison decides everything that follows, and the two paths are not symmetrical on purpose.
Member owes the reply
- Staff or the AI spoke last, and the member went quiet
- They get a direct message asking them to come back
- The ticket closes when the window runs out
- The clock is doing what you configured it to do
Your team owes the reply
- The member spoke last, and nobody has answered
- The claimer gets pinged, or the responsible staff role
- Nothing closes, unless you switch that on yourself
- The clock is telling you something about your queue
The asymmetry is deliberate: a ticket sitting unanswered is not the member's fault, and closing it would quietly delete the evidence that your queue has a problem. So by default that direction produces a ping and nothing else. There is a switch to close those too, covered further down, and it is off until you go and find it.
How long should a Discord ticket stay open before it closes?
Start from the longest gap you are genuinely comfortable with, then add your weekend. Most servers land between 24 and 72 hours.
| Your server | A reasonable window | Why |
|---|---|---|
| Small community, staff answer when they can | 72 hours or a week | The list is short enough to read. Closing fast gains you nothing |
| Busy server, staff on most days | 48 hours | Long enough for a working day plus a night, short enough to stay a queue |
| Commerce or payouts | 72 hours, and pause the slow ones | Some tickets legitimately wait on a third party. Pause those individually |
| Gaming server, peak evenings | 48 to 72 hours | Members reply after school or after work, not during your afternoon |
| High volume with an AI first pass | 24 hours | Most tickets resolve the same day, so a long window only adds noise |
| Anything with a two-day weekend | Longer than the weekend, or set working hours | A 48-hour window and a quiet Saturday close real tickets |
That last row is the mistake we see most often, and the cleanest fix is not a longer window. See working hours for the setting that suspends every one of these timers while you are closed, rather than stretching them to survive the gap.
- 180,000+
- tickets over the bot's lifetime
- ~half
- resolved with no human
- 3,400+
- Discord servers
- seconds
- typical first reply
Where these numbers come from
- Sample
- Every ticket handled across both generations of the bot, all servers
- Window
- Lifetime to date, refreshed continuously
- Definition
- Resolved means the AI closed the ticket without escalating to a human
- Check it
- The live endpoint at /api/stats/global returns the current figures
What happens before a ticket closes itself?
This is the sequence, and every step of it is a guarantee rather than a best effort.
Silence is noticed
Nothing happens for at least 30 minutes of quiet, on any setting. That floor exists so a ticket in a normal back and forth conversation is never treated as stalled.
The member is nudged
They get a direct message saying the ticket is waiting on them, with the projected close time and a button that jumps straight back to the channel. A quiet marker is also posted in the ticket, so the nudge is in the transcript.
A grace period runs
At least 15 minutes, or a quarter of your window, whichever is longer. The close cannot happen until this has passed.
The full window expires
The close deadline is exactly the number you set, measured from the last real message. It is not shortened by anything above.
The ticket closes properly
Transcript saved, opener notified, audit entry written, webhooks fired, log channel updated, channel removed. It is a real close, not a quiet archive.
Because the check runs every 15 minutes and the grace floor is also 15 minutes, the nudge always lands in an earlier pass than the close. There is no combination of settings where a ticket goes from live to closed in a single step without the member having been told.
What the setting can hold
- Range
- 1 to 8,760 hours
- Scope
- Per panel, shared by every category on it
- Minimum silence before any action
- 30 minutes
- How often it is checked
- Every 15 minutes
- Warning before a close
- Always, with its own grace period
- Plan
- Premium and above
Why did the nudge arrive earlier than I expected?
Because the close deadline is fixed and the warnings before it are not.
The bot looks at the recent messages in that specific ticket and measures the median gap between them. A conversation where both sides were replying within minutes gets its nudge sooner than one where replies were naturally hours apart, because in the fast ticket a two hour silence means something and in the slow one it means nothing. The threshold is bounded by your window at both ends, so it can never drift past the close.
The staff ping does the same thing, scaled to your window in a way that is worth seeing written out:
Roughly when an overdue staff reply gets pinged
- 1 hour window
- about 30 minutes
- 24 hour window
- about 2.7 hours
- 1 week window
- about 8.5 hours
- 30 day window
- about 20.7 hours
- Faster prior cadence
- pulls the ping earlier, to about half of those
- No cadence signal yet
- uses the patient value shown above
The curve is deliberately not a flat percentage of your window. A flat ten percent would ping a 30-day ticket seven days in, which is useless, and a one hour ticket after six minutes, which is worse than useless. Scaling sub-linearly keeps the reminder a meaningful slice of a short window and a small slice of a long one, and it is clamped so it never fires sooner than half an hour or later than a day.
Does the AI keep the clock running?
While the AI is actively working a ticket, your staff are not pinged for being slow. That would be a notification about a job nobody has been handed yet. Once it hands off to a human, the ticket becomes a normal staff-owes ticket and the timers apply as usual.
The AI's own replies count as real messages, so they reset the silence clock and flip the direction to "waiting on the member". That is the common case in practice: the AI answers in seconds, the member reads it and never comes back, and the nudge is what closes the loop a day later.
is there a refund window on the season pass?

Yes, 14 days from purchase, as long as it hasn't been redeemed. Do you want me to check the redemption status on your order?

Just checking in on this one. It's still open and waiting on you. It'll close automatically on Thursday if we don't hear back.
What does not reset the clock is the bot's own housekeeping. The welcome embed, the claim notice, the nudge marker and the staff ping are all recorded as system messages, and system messages are deliberately excluded from the silence calculation. If they counted, the bot's own nudge would push the close another full window into the future and no ticket would ever close at all.
Any genuine message does reset it, from either side, and doing so re-arms both warnings. A ticket that bounces between member and staff five times gets five clean cycles, not one.
How do you stop a specific ticket from closing?
Some tickets legitimately sit still. You are waiting on a payment provider, or a member is travelling, or the fix ships next week. Closing those is not tidying, it is losing the thread.
- /ticket inactivity pause
- Freeze the timers on this ticket, with an optional reason
- /ticket inactivity resume
- Put it back under the normal window
- /ticket inactivity status
- Show whether it is paused and when it would close
A paused ticket is dropped from the sweep completely, so there is no nudge, no ping and no close. The reason (up to 255 characters) is posted in the channel and written to your audit log, which matters more than it sounds: the next person to open that ticket can see it was paused on purpose rather than assuming the bot is broken.
Pause is staff-only, and status is the one to reach for when a member asks how long they have. It shows the projected close time as a Discord timestamp, so they read it on their own clock.
- Does claiming a ticket exempt it from auto-close?
- No. Claimed tickets are swept exactly like open ones, because a claimed ticket going quiet is the classic forgotten ticket. Claiming changes who gets pinged, not whether the timers run.
- What if the member has direct messages closed?
- The nudge is marked as delivered either way, so a blocked DM cannot stall the close forever. They still get the marker inside the ticket channel itself.
- Does it apply to tickets another bot opened through connect?
- No. Those channels belong to the other bot, so there is no panel of ours holding a window for them.
- Can I use a different window per category?
- Not today. The setting is per panel, so different windows mean different panels.
What actually happens at the moment of close
Auto-close is not a special quiet path. It runs the same close every human close runs, which is the reason it is safe to leave on.
- Hour 0
Last real message
Somebody replies, the clock starts, both warnings re-arm
- Around 75%
Nudge sent
Direct message to the member, marker in the channel, close time stated
- Window + grace
Close fires
Only if the nudge has had its grace period and nothing was said
- Immediately after
Everything else
Transcript saved, opener DM'd, audit written, webhooks and log channel updated, channel deleted
The transcript is the part that makes this reversible in the way that matters. The conversation still exists at its own link after the channel is gone, so a member who comes back three days later is not starting from nothing, and a closed ticket is still something you can feed back into the AI later.
Should you also close tickets your team never answered?
There is a second switch for this, off by default, and it deserves a paragraph rather than a toggle.
Leave it off while your queue is small enough to read
An unanswered ticket is a task, and a task you can still see is one you might still do
Turn it on to make the open count look better
The count was the only thing telling you the queue was too big. Closing it changes the number and nothing else
Turn it on above a few hundred tickets a month
Past a certain size a three week old unanswered ticket is genuinely dead, and pretending otherwise makes the list useless
Turn it on while your window is short
A 24 hour window plus this switch will close tickets your team simply had not got to yet
If you do enable it, the sequence is the same as the member direction: the claimer or the staff role is pinged first, gets the same grace period, and only then does the ticket close. The one exception is a ticket that is neither claimed nor covered by a responsible role, where there is nobody to ping, so it closes on the window alone. That case is worth reading as a signal in itself, because it means tickets are arriving somewhere nobody is assigned.
What about web chats from your website?
The website widget runs the same decision logic with its own window, and only the delivery differs. There is no Discord account to direct message, so the nudge arrives as a message in the chat itself, and a visitor whose chat does close gets a line explaining why before it flips to closed. If a mirror thread exists in your server, your staff get a note there too.
When auto-close is the wrong setting
Turn it on
- Your ticket list has channels nobody has opened in weeks
- Members regularly ask a question, get an answer, and vanish
- You want closed tickets to produce transcripts instead of dead channels
- You are on Premium or above and can set a window longer than your weekend
Leave it off
- You are on the free plan, where the setting is not available
- Your volume is low enough that closing tickets by hand costs you nothing
- Your support genuinely runs in multi-week cycles and pausing each one is worse
- You would be using it to hide a backlog rather than clear one
Two honest limits worth stating plainly. The window is per panel, so a server that needs a fast window on general questions and a slow one on refunds needs two panels, not one setting. And the timers are suspended entirely by working hours, which is a feature rather than a bug, but it does mean the effective window on a server that closes at weekends is longer than the number in the box.
Three edge cases that look like bugs
A ticket where nobody ever spoke is never touched. The clock keys off real conversation, so a channel containing only lifecycle embeds has no silence to measure. It stays open until somebody closes it.
The nudge is marked sent even when the direct message fails. If a member has DMs from server members turned off, the bot cannot reach them, and rather than retrying forever it records the nudge and carries on. The in-channel marker still appears, so the warning exists somewhere they can see it.
Changing the window does not restart anything. The new number applies from the next sweep against each ticket's existing last message, so shortening a 7 day window to 24 hours can close several old tickets within the quarter hour. Shorten it in steps if your list is long.
Setting it up without breaking anything
Before you turn it on
- Pick a window longer than your longest normal gap, weekends included
- Check whether working hours would serve you better than a longer window
- Leave the staff-owes switch off for the first month and watch what it would have closed
- Rewrite the nudge message for the panel if the default wording does not sound like you
- Open a test ticket, let it go quiet, and read what the member actually receives
- Come back after two weeks and look at how many closes were correct
The last one is the only real test. If members are reopening tickets that closed on them, your window is too short or your nudge is not landing. If the list still fills with dead channels, it is too long. Nobody gets this right from the first guess, and the number is one field.
- Inactivity window
- The hours of silence a ticket is allowed before it closes
- Nudge
- The direct message telling a member their ticket is waiting on them
- Staff ping
- The in-channel reminder that a reply is overdue, sent to the claimer or role
- Grace period
- The gap the nudge is given to be answered before a close can happen
- Sweep
- The check that runs every 15 minutes across every eligible ticket
The setting behind the setting
Auto-close is a housekeeping tool. It makes a ticket list readable again, and it is worth every minute it takes to configure, but it does not reduce the number of tickets you get and it does not answer any of them.
The things that do are elsewhere. An AI first pass resolves the ticket before silence is even relevant, and across this bot's lifetime that has been roughly half of more than 180,000 tickets. Asking the right questions at the moment a ticket opens means fewer rounds of back and forth for the timers to sit through. Answering repeat questions in public means those tickets never exist to go stale.
Configure the window, then go and work on the reason your tickets go quiet.
Keep reading
Sources and further reading
- Live product statisticsServer count, lifetime tickets and AI-resolved share, updated continuously
- Plans and feature availabilityWhich plans include smart inactivity and working hours
- Machine-readable product referenceWhat the bot does, with its limits stated
- Uptime and incident history90 days of real availability data
Frequently asked questions
One number, the hours of silence a ticket is allowed, plus the behaviour that number drives. On our bot you set it per panel, anywhere from 1 hour to 8,760 hours, and it is available on Premium and above. Inside that window the bot decides who owes the next reply. If the member owes it, they get a direct message asking them to come back, and the ticket closes if they never do. If your team owes it, the claimer or the responsible staff role gets pinged in the channel, and by default nothing closes.
For most servers, somewhere between 24 and 72 hours. Shorter than a day punishes anyone who sleeps or works, and longer than about a week means the ticket list stops being a to-do list. The one rule that matters more than the number is that your window should be longer than the longest gap you are comfortable with, including weekends. A 48-hour window and a two-day weekend are on a collision course unless you also set working hours.
Not on ours. The close requires three things at once: the full window of silence has passed, a nudge has already been sent, and that nudge has had its own grace period to be answered. The grace is at least 15 minutes, or a quarter of your window, whichever is longer. Because the sweep runs every 15 minutes, the warning always lands in an earlier pass than the close, so there is no configuration where a ticket goes from active to closed in one step.
No, and this surprises people. Claimed tickets are still checked on every sweep, because a claimed ticket that has gone silent is exactly the kind that gets forgotten. What claiming changes is who gets pinged: the claimer is notified by name instead of the whole staff role. If you need one specific ticket left alone, pause it with the slash command rather than claiming it and hoping.
Run /ticket inactivity pause inside the ticket, optionally with a reason of up to 255 characters. A paused ticket is dropped from the sweep entirely, so no nudge, no ping and no close, and the reason is posted in the channel and recorded in your audit log so nobody wonders later. Resume it with /ticket inactivity resume, or check where any ticket stands with /ticket inactivity status.
The close deadline is exactly the window you set. The warnings before it are not fixed, because they adapt to how fast the conversation was moving: the bot looks at the median gap between recent messages and picks a threshold from that, bounded by your window. A ticket where everyone was replying in minutes gets its nudge sooner than one where replies were hours apart. Timing is also rounded to the 15-minute sweep, so treat every number here as accurate to a quarter of an hour.
Usually not, which is why it is off by default. A ticket waiting on your staff is not the member's fault, and closing it converts your backlog into a statistic instead of a queue. There is an opt-in switch for it, and it exists for high volume servers where an unanswered ticket from three weeks ago is genuinely dead. If you turn it on, the ticket is still pinged first and given the same grace, so your team gets a chance to catch it.
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 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.
8 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