Discord Ticket Bot Working Hours: How to Close Without Going Dark
Working hours tell your ticket bot when your staff are on, not when your bot is. What actually stops outside hours, and what quietly keeps running.
Dani, Founder, AI Ticket Bot
16 min read
Most servers arrive at this feature after a bad night. Somebody opened a ticket at 2am, nobody was awake, and by the time a moderator looked at it the member had already left, or worse, had gone hunting through the member list for someone to direct message. The instinct is to put a sign on the door. That instinct is right, but the sign is the smallest part of what this setting does.
What do working hours actually do on a Discord ticket bot?
On our bot, working hours are a weekly schedule attached to a panel: one opening time and one closing time for each weekday. It is a paid feature, available on Premium and above, and it is off by default.
The important structural point is that it is two switches, not one. Almost every question about this feature comes from assuming there is only one.
Use working hours
- Turns the schedule on. The bot now knows when you are open
- On its own, changes only the automatic timers
- Tickets still open at any hour
- Safe to enable on almost any server
Block tickets outside hours
- Decides what happens when someone arrives while you are closed
- On its own, does nothing until the first switch is on
- The panel button refuses, and no ticket is created
- The setting that actually turns members away
Turning on the first switch without the second is a completely reasonable configuration, and it is the one we would recommend to most servers. It means: keep accepting tickets around the clock, tell people honestly when they arrive out of hours, and stop the machinery that assumes somebody is watching.
Does the AI stop answering outside working hours?
No, and this is the single fact that changes how you should think about the whole feature.
The schedule has no connection to the AI. A member who opens a ticket at 3am gets the same answer, from the same server-specific brain, in the same few seconds, as a member who opens one at 3pm. Nothing about the clock is consulted before the AI replies.
What genuinely stops the AI is a short and unrelated list: a staff member claims the ticket, a staff member types in it, the server runs out of its token budget, the panel hits a per panel message cap, the member is blacklisted, or the AI service is down. Time of day is not on that list, and it was never meant to be.
Across more than 180,000 tickets over this bot's lifetime, roughly half have been resolved by the AI with no human involved. That share does not drop at night. If anything, the questions that arrive at 3am skew towards the ones a well-trained brain handles best: where is the thing, how do I do the thing, why did the thing not work. See how to train an AI ticket bot for what makes that share go up.
- 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 does a member see when they open a ticket after hours?
Two different things, depending on the second switch.
If you are blocking, they never get a ticket. The button responds with a private message that only they can see, saying the team is offline, that new tickets are paused, and when you reopen.
If you are warning, the ticket opens exactly as it always does, and a short note appears inside it saying the team is offline right now, that a reply may take a little longer, and when you are back.
hey, my premium role didn't apply after I bought it

Outside our support hours. Your ticket is open, but our team is offline right now, so a reply may take a little longer. We're back Monday at 09:00.

In the meantime: role syncing usually catches up within about ten minutes. If it hasn't, it's normally because the purchase email doesn't match your linked account. Can you check that and tell me what you see?
Both messages carry the reopening time as a Discord timestamp rather than as text. That detail is worth more than it looks: Discord renders a timestamp on each member's own clock, so a member in Manila and a member in Lisbon read the same message and each sees a time that means something to them. You configure one schedule and nobody has to do timezone arithmetic.
Should you block tickets outside hours, or just warn?
The honest answer is that blocking is the right choice less often than people assume, and the reason is not about the bot.
A member who is turned away by a closed panel does not go and wait patiently. They ask in general chat, or they direct message the first person with a coloured name, which is both worse for that moderator and the exact behaviour that makes ticket sniping scams work. A ticket that opens at 3am and sits quietly until morning is easier to handle than the alternatives that fill the gap.
Warn, and let the AI take the first pass
The member gets an answer or at least gets their context captured, and your morning starts with a summary instead of a cold start
Block everything overnight because it feels tidier
You have not removed the demand, you have redirected it into direct messages and general chat where nothing is logged
Block a specific panel that genuinely needs a human
Payouts, account recovery and anything with a legal step cannot be progressed by anyone at 3am, so an honest closed sign is kinder than a false start
Block because staff are tired of notifications
The notification you are annoyed by is probably the ping on open, which is a different setting entirely
The setting that stops tickets closing themselves overnight
This is the part that almost nobody writes about, and it is the strongest reason to turn the schedule on even if you never block a single ticket.
If you use smart inactivity, your bot is running a set of timers on every open ticket: nudge the member if they have gone quiet, ping the responsible staff role if a reply is overdue, and close the ticket if it goes stale. Those timers are what keep a busy server's ticket list from silting up.
Outside your working hours, all three stop.
Outside the panel's open windows we suppress nudges, pings AND the close so nobody is DM'd at 3am and tickets don't close while the server is "closed". Resumes on the next in-hours sweep.
Comment in the inactivity sweep, AI Ticket Bot source
Read that as three separate promises. Your members are not direct messaged in the middle of their night by a bot chasing them for a reply. Your staff role is not pinged for being overdue on a ticket at a moment when being overdue is the entire point. And a ticket opened on Friday evening is still open on Monday morning, rather than having quietly closed itself over a weekend that your inactivity window happened to be shorter than.
That last one is the failure people usually discover by accident, weeks later, when a member asks why their ticket vanished. Without a schedule, a 48-hour inactivity window and a two-day weekend are on a collision course.
What the schedule can and cannot hold
- Windows per weekday
- One
- Days per week
- Seven, each configured separately
- Scope
- Per panel, shared by every category on it
- Stored as
- UTC weekday plus opening and closing time
- Split shifts
- Not supported, use one continuous window
- Overnight windows
- Supported, by configuring both calendar days
Why your staff still get pinged at 3am
Because there are two different staff pings and the schedule only suppresses one of them.
The inactivity ping fires when a reply is overdue. That one respects your hours and goes quiet.
The ping on open fires the moment a ticket is created, if you have configured your panel to announce new tickets to a staff role. That one does not consult the schedule at all. If you allow tickets to open outside hours, the notification still lands at 3am, because from the bot's point of view a ticket was genuinely created and the role you nominated genuinely asked to hear about it.
There is no contradiction here, but there is a decision. If overnight notifications are the actual thing bothering your team, the fix is one of: turn off the ping on open for that panel, block tickets outside hours so there is nothing to ping about, or leave it and let whoever is awake glance at it. Turning on working hours and expecting silence will not get you there, and it is better to know that before you spend a week wondering why it did not work.
How to set working hours on your ticket bot
Open the panel you want to schedule
In the dashboard, go to your panels list and pick the panel, then the Working Hours tab. In Discord, use the panel editor and choose Working Hours.
Turn on "Use working hours"
This is the master switch. On its own it changes nothing a member can see, so it is safe to enable before you have finished configuring days.
Set each day you are open
Use the Mon to Fri nine to five preset if it fits, then adjust. The dashboard shows the UTC equivalent under each row so you can sanity check what was actually stored.
Leave the days you are closed switched off
An unconfigured day counts as closed for the whole day. That is the behaviour you want for weekends, and the trap described in the next section if you are not expecting it.
Decide on "Block tickets outside hours"
Off means tickets open with a heads-up. On means the button refuses. If you are unsure, leave it off and watch what actually arrives overnight for a week.
Open a ticket yourself while closed
The only test that matters. Check what the member sees, and check whether your staff role got pinged, before you rely on it.
There is deliberately no "24/7" preset, because that is the same thing as leaving the master switch off. If you are open all the time, the correct configuration is no configuration.
What time zone are Discord ticket bot working hours in?
Underneath, UTC. On the surface, it depends where you set them.
The dashboard detects your own timezone, lets you type times on your own clock, and converts. Each row shows you the UTC equivalent it stored, which is worth glancing at, because if you are far from UTC your local Monday can straddle two UTC days. The Discord panel editor does not convert: there you type UTC directly, and it says so.
Two edge cases worth knowing if you are far from UTC
Overnight windows work, but they are two rows underneath. A window that runs from 22:00 to 02:00 cannot be one entry, because a closing time must be later than an opening time on the same day. It is stored as two: the evening portion on one calendar day and the early hours on the next. The dashboard does this for you and merges them back together when you reload, so you see what you typed. Setting it by hand in Discord means creating both halves yourself.
There is a one-minute seam at midnight UTC. Because a day ends at 23:59 and the next starts at 00:00, a window that crosses UTC midnight has a single minute in the middle where the panel reads as closed. In practice nobody has ever noticed, but if you are testing at exactly that minute and getting a confusing result, that is why.
The schedule does not follow daylight saving. Times are stored as fixed UTC values, so when your clocks change, your support hours effectively move by an hour relative to your staff. Put a reminder in whatever you use for reminders and re-save the tab twice a year.
The mistake that closes your panel every day of the week
A weekday with no configured window counts as closed, not as open. That is the correct behaviour for weekends, and it is a trap in one specific case.
What that looks like depends on your second switch. With blocking off, every ticket carries an out-of-hours warning around the clock, which is confusing but harmless. With blocking on, nobody can open a ticket at all until you configure a day, which is not harmless at all.
The check takes ten seconds: after you save, look at the tab and count the days that are switched on. If the answer is zero, that is your problem.
- Does the schedule apply to tickets opened by a third-party bot through connect?
- No. Working hours live on a panel, and a ticket picked up through connect has no panel of ours behind it, so there is nothing to attach a schedule to.
- Do closed hours stop the public FAQ channel answering?
- No. That is a server-wide setting with its own switch and it is unaffected by any panel's schedule.
- What happens to an open ticket when you close for the day?
- Nothing. The schedule gates opening and the automatic timers, not existing conversations. Staff can reply at any hour and so can the AI.
- Can members see your hours before clicking?
- Only if you write them into the panel description, which is worth doing. The bot tells them after they click, not before.
What are good support hours for a Discord server?
Start from where your members are, not from where your staff are. Those are usually different, and Discord communities skew far more international than the teams running them.
Before you commit to a schedule
- Look at when tickets actually arrive, not when you assume they do
- Check whether your busiest hour is inside or outside your proposed window
- Decide whether weekends are genuinely closed or just thinner
- Count how many staff are in the timezone you are about to build around
- Write the hours into the panel description so people read them before clicking
- Re-check after a month, because the schedule shapes behaviour and behaviour moves
If you have advanced analytics, the ticket volume view answers the first two of those directly. If you do not, an honest look at the last fifty tickets in your log channel gets you most of the way.
| If your community is | A reasonable starting point | Why |
|---|---|---|
| One region, one language | Weekdays, your working day, weekends off | The simple case. Your members and your staff share a clock |
| International, one staff timezone | A wide weekday window, warn rather than block | The AI covers the tail, humans cover the middle |
| Gaming or roleplay, peak evenings | Late afternoon to late evening, all seven days | Demand follows the server's activity, not office norms |
| Commerce with payouts or refunds | Narrow weekday hours, block on the money panel only | Some work genuinely cannot happen without a person |
| Under about fifty tickets a month | No schedule at all | The overhead of maintaining it exceeds what it saves you |
The last row is not a joke. Small servers usually do better leaving this off and answering when they can. See running a free Discord ticket bot for what that setup looks like.
When working hours are the wrong choice
Turn them on
- You run smart inactivity and your window is shorter than your weekend
- Members are getting nudged or auto-closed while nobody is around to help
- You want an honest answer on the panel instead of silence
- Your team has a real schedule that everyone recognises
Leave them off
- You are on the free plan, where the schedule is not available
- Your only complaint is notification volume, which is a different setting
- Your staff are genuinely spread across enough timezones to cover the clock
- Your ticket volume is low enough that a schedule is ceremony, not process
Two more honest limits. There is one schedule per panel, so per-category hours are not a thing: express that with a second panel instead. And connect tickets, the ones our AI answers inside another bot's ticket channels, have no panel behind them, so no schedule can apply to them.
- Working hours
- A weekly per panel schedule of when your staff are on duty
- Blocking
- Refusing to create new tickets outside those hours
- Smart inactivity
- The timers that nudge quiet members, ping overdue staff and close stale tickets
- Ping on open
- The staff-role notification that fires when a ticket is created, unaffected by hours
What to do instead of closing
Closing is one lever. It is rarely the best one on its own, and there are three cheaper things that reduce the pain of an overnight ticket more than a schedule does.
Let the AI take the first pass. Even when it cannot finish the job, a ticket that arrives in the morning with the member's context already gathered is a different piece of work from a ticket that says "hi". Escalation is what makes this safe: the AI hands over with a summary rather than guessing.
Ask the questions before the ticket exists. A ticket form collects the order number, the platform, the screenshot, all of it, at 3am while the member is still at their keyboard, rather than at 9am when they are not.
Answer the repeat questions in public. An AI FAQ channel takes the questions that never needed a ticket out of the queue entirely, which does more for your overnight load than any schedule.
Working hours are the honest label on the door. These three are the reason the door being closed costs you less.
Keep reading
Sources and further reading
- Live product statisticsServer count, lifetime tickets and AI-resolved share, updated continuously
- Plans and feature availabilityWhich plans include working hours and smart inactivity
- Machine-readable product referenceWhat the bot does, with its limits stated
- Uptime and incident history90 days of real availability data
Frequently asked questions
A weekly schedule attached to a ticket panel that tells the bot when your staff are actually on duty. On our bot it is one open and close time per weekday, stored per panel, and it is a paid feature. Turning it on does not change what the bot can do. It changes what the bot does about silence: outside the windows, new tickets can be blocked or flagged, and the automatic nudges, staff pings and auto-closes all stop until the next open window.
No. On our bot the schedule has no effect on the AI at all, which is deliberate. A member who opens a ticket at 3am still gets an answer in seconds if the question is one the AI can handle. The things that genuinely stop the AI are unrelated to the clock: a staff member claiming the ticket, a staff member typing in it, the server hitting its token budget, a per panel message cap, a blacklist, or the AI service being down.
Usually not, if you run an AI on the panel. Blocking turns away a member who might have been answered without anyone waking up, and it pushes them into direct messages to your moderators instead, which is worse for everyone. Blocking makes sense when a ticket genuinely cannot be progressed without a human, such as payouts, account recovery or anything with a legal step. The middle setting, where the ticket opens with a note saying the team is offline, is the right default for most servers.
Ours are stored in UTC. If you set them from the dashboard you type your own local time and it converts for you, showing the UTC equivalent under each row. If you set them from the Discord panel editor you type UTC directly. The member never sees either: the closing message renders as a Discord timestamp, so everyone reads the reopening time on their own clock in their own language.
Yes, and this is the part most people do not expect. Outside the open windows the inactivity system suppresses everything it would normally do: no direct message nudge to the member, no in-channel ping to overdue staff, and no automatic close. A ticket opened on Friday evening is still sitting there on Monday morning rather than having quietly closed itself while nobody was watching. It resumes on the first sweep after you reopen.
Not on ours. The schedule lives on the panel, so every category button on that panel shares it. If your billing team works weekdays and your moderation team covers weekends, the way to express that is two panels with their own schedules rather than one panel with two sets of hours. It is worth knowing before you design your panel layout, because splitting a panel later means republishing it.
Because the schedule suppresses the inactivity ping, not the ping that fires when a ticket opens. Those are two different notifications. If your panel is set to ping a staff role every time a ticket is created, and you chose to let tickets open outside hours, that ping still fires at 3am exactly as it did before. Either turn off the ping on open, or block tickets outside hours, or accept it. Working hours on their own will not silence 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