Skip to content
20% off + 25% more tokensSee prices

BlogGuides

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

17 min readUpdated

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?

The main setting is 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) or off, and is available on Premium and above. The dashboard offers 12 hours, one day, two days, three days, one week and 30 days as presets, because those cover almost everybody. Next to it sit four switches: remind members, ping staff, release unanswered claims, and close tickets waiting on staff.

Together they drive three different behaviours, in order.

  1. Silence starts
  2. Whoever owes the reply is reminded
  3. The window runs out
  4. The ticket closes after a warning

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 quoting the reply, then a closing warning
  • 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, then one follow-up
  • 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, one follow-up 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 serverA reasonable windowWhy
Small community, staff answer when they can72 hours or a weekThe list is short enough to read. Closing fast gains you nothing
Busy server, staff on most days48 hoursLong enough for a working day plus a night, short enough to stay a queue
Commerce or payouts72 hours, and pause the slow onesSome tickets legitimately wait on a third party. Pause those individually
Gaming server, peak evenings48 to 72 hoursMembers reply after school or after work, not during your afternoon
High volume with an AI first pass24 hoursMost tickets resolve the same day, so a long window only adds noise
Anything with a two-day weekendLonger than the weekend, or set working hoursA 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 holds staff pings and closes until you are open again, rather than stretching the window 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.

  1. 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.

  2. The member is reminded

    A direct message quoting the reply they are waiting on, with buttons to open the ticket, mark it solved or say they still need help. It comes after about three times this member's usual reply delay, never later than a day, and a marker in the ticket records that it was sent, so the reminder is in the transcript.

  3. A closing warning follows

    A second message a quarter of your window before the close, between 30 minutes and a day ahead, stating the close time. On a short window the reminder and the warning become one message. The close cannot happen until the warning has gone out.

  4. The full window expires

    Measured from the last real message, and never shortened by anything above. A member known to answer slowly, with two or more answers in the ticket, gets longer: up to three times their usual delay, never more than twice the window.

  5. 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 close is always planned from the moment the warning actually went out, 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

Window
1 to 8,760 hours, or off
Scope
Per panel, shared by every category on it
Minimum silence before any action
30 minutes
How often it is checked
Every minute, for the tickets that are due
Warning before a close
Always, a quarter of the window ahead, 30 minutes to a day
Plan
Premium and above

Why did the reminder arrive earlier than I expected?

Because the reminders are timed from people, not from the window.

The bot measures how long this member took to answer earlier in the ticket, turn by turn, and leans on how fast members of your server usually answer while the ticket is still young. The reminder comes after about three times that delay, never before 30 minutes of silence and never later than a day. A member who answers within minutes is reminded sooner than one whose replies are naturally hours apart, because in the fast ticket a two hour silence means something and in the slow one it means nothing. Only the member's own replies are measured, so an AI that answers in seconds never makes a ticket look fast.

The staff ping is timed the same way, from your team: about three times how long staff on that panel usually take to answer, once the panel has eight replies to learn from, and the whole server's speed until then. Before either has been learned, it falls back to a curve scaled to your window, which is worth seeing written out:

The fallback, before your team's speed is learned

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
Auto-close off
the 24 hour value, about 2.7 hours
Once learned
about three times your team's usual reply time instead

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 answering, every reply it sends puts the ticket back on the member's side, so your staff are not pinged about a job nobody has handed them. When the AI steps aside, because it escalated, reached its reply limit or could not answer, the ticket becomes a normal staff-owes ticket and the ping follows as usual, with a line saying so when the assistant did not answer the member's last message.

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 reminder is what closes the loop.

MemberToday at 21:04

is there a refund window on the season pass?

AI Ticket Bot
AI Ticket BotAPPToday at 21:05

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?

AI Ticket Bot
AI Ticket BotAPPToday at 21:06

Reminder sent. The member was reminded by DM that this ticket is waiting on their reply.

What does not reset the clock is the bot's own housekeeping. The welcome embed, the claim notice, the reminder 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 reminder 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 starts a fresh round of reminders. A ticket that bounces between member and staff five times gets five clean cycles, not one. The one exception is a member who ignored the last reminder: they skip straight to the closing warning until they write again.

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
Show who the ticket is waiting on, what the bot will do next and when it closes, and pause or resume it with an optional reason

A paused ticket gets no reminder, 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.

Pausing and resuming need the Close tickets permission, but anyone in the ticket can open the card, so it is the one to point a member at when they ask how long they have. The close time shows as a Discord timestamp, so they read it on their own clock, and resuming starts the quiet time again from zero.

Does claiming a ticket exempt it from auto-close?
No. Claimed tickets are handled 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 reminder is posted in the ticket instead, mentioning them, so a blocked DM can neither stall the close nor leave them unwarned. A member who has left the server gets no message, and the ticket still closes on time.
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.

  1. Hour 0

    Last real message

    Somebody replies, the clock starts, a fresh round of reminders is planned

  2. About three times their usual reply time

    Reminder sent

    Direct message quoting the reply, marker in the channel

  3. Shortly before the end

    Closing warning

    A quarter of the window ahead, 30 minutes to a day, with the close time stated in a direct message or, with reminders off, a note in the ticket

  4. The window ends

    The ticket closes

    Only if nothing was said since the warning. 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 claimer or the staff role is still pinged first, and the ticket closes only once the window has run out and that ping has had time to be answered. The one exception is a ticket with nobody to ping, because it is neither claimed nor covered by a responsible role or because Ping staff is switched off, 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 engine with its own window and switches, and only the delivery differs. A visitor who signed in with Discord gets the same reminder by direct message, with a button back to the chat, and every visitor sees the closing warning in the chat itself. A visitor whose chat does close gets a line explaining why before it flips to closed. Staff pings go to the chat's thread in your server, so a web chat that never got a thread is never pinged.

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 on a panel with working hours, staff pings and closes wait for you to be open, 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. Member reminders are not held back.

Three edge cases that look like bugs

A ticket the member opened and never wrote in is not ignored. It counts as waiting on the member from the moment it opens, so the reminder asks them what they need, and it closes on the window like any other.

A reminder that cannot be delivered moves into the ticket. If a member has DMs from server members turned off, the bot mentions them in the ticket instead, so the warning exists somewhere they can see it and the close is never stalled waiting for a DM.

Changing the window does not restart anything. Every open ticket is re-planned at once against its existing last message, so shortening a 7 day window to 24 hours sends several old tickets their closing warning straight away, and they close a quarter of the new window later, six hours for a 24 hour window. 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 Waiting on the member 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
Reminder
The direct message telling a member their ticket has a reply waiting for them
Staff ping
The in-channel reminder that a reply is overdue, sent to the claimer or role, with one follow-up
Closing warning
The last message before a close, sent a quarter of the window ahead, 30 minutes to a day
Claim release
Handing an unanswered claim back to the team at the follow-up, when switched on

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.

Frequently asked questions

A close window plus four switches. On our bot you set them per panel, and they are available on Premium and above. The window is the hours of silence a ticket is allowed, anywhere from 1 hour to 8,760 hours, or off. The switches decide what happens inside it: remind the member by direct message when the ticket is waiting on them, ping the claimer or the responsible staff role when your team is, hand an unanswered claim back to the team, and close tickets that are waiting on staff. Reminders and pings work even with auto-close off, and by default nothing waiting on your team 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. A ticket waiting on the member only closes after a closing warning has gone out, and the close is planned from the moment that warning was actually sent: a quarter of your window later, kept between 30 minutes and a day. If the direct message cannot be delivered, the warning is posted in the ticket instead, and with member reminders switched off a quiet note in the ticket takes its place. There is no configuration where a ticket goes from active to closed in one step.

No, and this surprises people. Claimed tickets are handled exactly like open ones, 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, and if they still have not answered at the follow-up, the claim can be handed back to the team. If you need one specific ticket left alone, pause it with the slash command rather than claiming it and hoping.

Run /ticket inactivity inside the ticket and press Pause, optionally with a reason of up to 255 characters. A paused ticket gets no reminder, no staff ping and no close, and the reason is posted in the channel and recorded in your audit log so nobody wonders later. Resume it from the same card, which also shows who the ticket is waiting on and what happens next. Resuming starts the quiet time again from zero.

The window counts from the last real message, and three things can move the close past it. A member who has already answered at least twice in that ticket and is known to be slow gets more time, up to three times their usual reply delay and never more than twice your window. The close always comes a set time after the closing warning, a quarter of the window kept between 30 minutes and a day, so a warning that went out late moves the close with it. And on a panel with working hours, a close that falls due while you are closed waits for you to open. The reminder before it is timed from how fast that member usually answers, so it arrives sooner in a fast conversation than in a slow one.

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 claimer or staff role is still pinged first, and the close waits until that ping has had time to be answered, so your team gets a chance to catch it.

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. Premium is free for 14 days once your tickets are live.