Skip to content

BlogGuides

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

Dani, Founder, AI Ticket Bot

9 min read

Every support queue collects the same pile. Tickets where the work is finished, the answer has been given, and nobody has pressed close because the last message in the channel is yours and it feels wrong to end a conversation the other person has not left.

So they sit. A week later somebody clears them in a batch, and a handful of those people were still waiting on something.

What is a close request on a Discord ticket bot?

It is a question with a countdown behind it. One command inside the ticket, two optional choices, and the bot handles the rest.

/ticket close-request
Ask the opener whether this ticket can be closed
hours
How long they have, from 1 to 168. Leave it out and it is 24
reason
Why you want to close it, up to 500 characters, shown to them

What lands in the ticket is a short card with two buttons and the deadline written as a live timestamp, so everybody reads it on their own clock. The same question goes to the member by direct message with a button that jumps back to the ticket, because a question posted in a channel somebody has stopped watching is not a question, it is a formality.

AI Ticket Bot
AI Ticket BotAPPToday at 21:04

Can we close this ticket? Jordan would like to close this ticket. Press Yes if your problem is solved, or No if you still need help. It closes by itself in 24 hours if nobody answers.

The two buttons underneath read "Yes, close it" and "No, I still need help", and the wording of the card itself is one of the per-panel messages you can rewrite, on any plan, if that is not how your server talks. What the bot always adds on top is the pair of buttons and the deadline, so a rewrite cannot accidentally remove the answer.

The direct message is best effort. If the member has left your server, or has messages from server members switched off, nothing is delivered and the countdown runs anyway, which is the same rule the closing message follows. The card inside the ticket is always there.

The four ways a close request ends

Two of them close the ticket and two of them do not, and each one is recorded differently.

What the member doesThe ticketWhat your records say
Presses YesCloses immediately, the normal wayClosed by the opener, with your reason attached
Presses NoStays open, your team is told in the channelClose request declined
Sends any new messageStays open, the request is dropped quietlyClose request cancelled
Nothing, until the deadlineCloses by itselfClose request expired

Only one of those can win. The No button, a message arriving and the deadline expiring can genuinely land in the same second, and the bot settles which one counts before anything visible happens, so a ticket never closes twice and never closes after somebody has already said no.

The Yes route is worth reading twice. It runs the ordinary close, which means it is recorded as closed by the person who opened it rather than by you, and the reason you typed when you asked rides along as the close reason. Your records end up saying the member agreed, which is a different fact from you deciding.

Why silence closes the ticket

This is the part people push back on, so it is worth stating plainly: if nobody answers, the ticket closes.

The alternative sounds kinder and achieves nothing. A request that leaves the ticket open on silence returns you to exactly the state you were in before you sent it, which is a finished ticket sitting in the queue with nobody willing to end it. The deadline is the entire feature. Everything around it is manners.

That is also why it is not a substitute for reading the ticket first. A close request on work you have actually finished is a courtesy. The same request on a ticket your team never answered is a countdown to being ignored, and members read it exactly that way.

How long should you give them?

The deadline you can set

Shortest
1 hour
Default
24 hours
Longest
168 hours, which is 7 days
Reason
Optional, up to 500 characters

The ceiling is 7 days for a structural reason rather than an arbitrary one. Discord archives an idle thread after a week at most, so a request outliving that would leave a thread ticket waiting on an answer inside a thread that has already dropped out of the channel list.

The number you choose is a message whether you intend it or not. An hour is fine when the member is clearly still there and you are tidying up in front of them. A day is the default because it survives one night of sleep in any timezone. A week is for the person who told you they would come back after the weekend, and setting it that long is how you avoid closing on somebody who did exactly what they said they would.

Running the command again on the same ticket replaces the pending request and restarts the clock, and the old buttons stop working, so a member can never be looking at two live questions at once. Use that to extend a deadline rather than to nag.

Who can ask, and who can answer

Asking uses the same rule as closing: Manage Server, or a staff role you granted the close permission to. If somebody is already trusted to end a ticket outright, asking first is strictly gentler, so there is no separate permission to hand out. Discord ticket bot permissions covers how those roles are put together.

Answering is narrower than most people expect. Only the account that opened the ticket can press either button. A staff member who clicks is told so and pointed back at the ordinary close command, and so is anyone else who was pulled into the channel. That is deliberate: the whole value of asking is that one specific person agreed, and a helpful colleague pressing Yes on their behalf would quietly destroy it.

The buttons keep working for as long as the request is live, including across a restart of the bot, which matters when the deadline is a week away.

What it does to auto-close and to your records

While a request is pending, the inactivity system skips that ticket entirely. No nudge, no ping, no automatic close on the usual window. One quiet person should never receive two different messages about the same silence from the same bot, and two systems should never race to close one ticket. Auto-close and inactivity settings is the longer version of what gets paused.

The two are worth telling apart, because they solve different problems and they are not priced the same.

Close request

  • One ticket, decided by a person
  • Free on every plan
  • The deadline is whatever you typed
  • Ends the moment the member writes anything
  • Reach for it when the work is done

Inactivity auto-close

  • Every ticket, decided by a policy set once
  • Part of a paid plan
  • The window is per panel and applies to all of it
  • Restarts the clock when anybody writes
  • Reach for it when nobody is watching the queue

An expired request is not a quiet close either. It runs the same sequence every other close runs: the transcript is written, the member is sent it by direct message along with the button that lets them rate how it went, your log channel and any webhooks are told, and the channel goes. The expiry check runs on a timer rather than to the second, so the close lands a few minutes after the deadline rather than on it.

The question and its outcome are both captured into the ticket's own record as they happen, so the transcript the member receives shows that you asked and shows what they said. That is the difference between a close somebody can query later and a close they can only remember.

Your audit log separates the two closing routes, and that separation is the only feedback you will get on the number you have been picking. A row of tickets closed by their openers means people are reading the question and agreeing with it. A run of expired requests means they are not seeing it, or the deadline is too short, or you are sending them on tickets that were never finished.

Roughly half of all tickets across every server running this bot close with no human replying at all. Those are the ones that sit open longest, because there was never a staff member watching to end them, and they are the population a close request is really for. Current figures are 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

When not to send one

Send one when

  • The work is done and you are waiting on an acknowledgement
  • The member has gone quiet and you would rather not close over their head
  • Somebody said they would confirm later and never did
  • You want the record to say they agreed rather than that you decided

Reach for something else when

  • The last message is a question of theirs, in which case answer it
  • You are clearing a backlog in bulk, which is a job for the dashboard
  • The ticket belongs to a connected third-party bot, which owns its own closing
  • It is a website chat from a visitor with no Discord account, so there is nobody to ask

Two more limits worth knowing before you build a habit around it. There is no way to send, accept or deny one from the web dashboard: it shows you a pending request, who asked, their reason and when it runs out, but the answer belongs to the member in Discord. And closing is still final here, as it is on nearly every Discord ticket bot, so a Yes cannot be taken back. How to close a Discord ticket covers what a close actually removes and why there is no reopen.

Used properly this is a small feature that quietly fixes a real thing. Tickets stop piling up at the end of the week, nobody has to decide whether ending a conversation is rude, and the person who opened it gets the last word on whether they are done.

Frequently asked questions

It is staff asking the person who opened a ticket whether it can be closed, with a deadline attached. The bot posts a Yes or No question inside the ticket and sends the same question to the member by direct message. If they say yes it closes, if they say no it stays open, and if nobody answers before the deadline it closes by itself. Here the command is /ticket close-request and it is free on every plan.

The ticket closes by itself. That is the whole point of setting a deadline, and it is why sending one beats typing a message that asks whether everything is sorted. The close is a real close, not a quiet one: the transcript is written, the member gets it by direct message with a rating button, your log channel and any webhooks are told, and the channel goes. The check runs on a timer, so it lands a few minutes after the deadline rather than on it.

The default is 24 hours and it suits most tickets. You can pick anything from 1 hour to 168 hours, which is 7 days, and the number is read as a message whether you mean it that way or not. An hour on a finished ticket reads as being shown the door. A week is the right choice when somebody has told you they will come back after the weekend.

Yes, and there are two ways to do it. There is a No button that keeps the ticket open and tells your team the person still needs help, and simply writing a new message in the ticket ends the request as well. The second one matters more in practice, because somebody who was already typing never has to notice the buttons at all. Staff replies do not end it, only the opener's.

Sending one uses the same rule as closing: Manage Server, or a staff role you gave the close permission to. Answering is restricted to the one account that opened the ticket, so a staff member pressing the buttons is refused and pointed at the ordinary close command instead. Nobody else in the channel can decide on the member's behalf.

Not on this bot. The dashboard shows that one is pending, who asked, the reason they gave and when it runs out, but sending, accepting and denying all stay in Discord. Closing the ticket from the dashboard while a request is pending simply closes it there and then, which is the escape hatch if you decide not to wait.

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.