Discord Support SLA: Response Times You Can Actually Keep
An SLA is a promise about your side of the conversation. How to choose response times a Discord server can keep, and what a ticket bot can and cannot enforce.
Dani, Founder, AI Ticket Bot
17 min read
Most communities arrive at this question the same way. Somebody complains that their ticket sat for two days, an admin says something like "we usually reply within a few hours", and by the end of the week that sentence is pinned somewhere as though it were policy. It is now a promise, made by accident, with nothing behind it and no way to tell whether it is being kept.
This article is about doing that deliberately instead. What a support promise actually is, how to pick numbers you can keep, which parts a ticket bot can genuinely help with, and the large parts it cannot.
What is a support SLA on a Discord server?
The vocabulary first, briefly, because the term is borrowed from a world that does not quite apply here. Our Discord support glossary defines it in one line: a promised ceiling on how long a member waits, and in a community it is usually a promise you make to yourself rather than a feature you buy.
That last half is the part worth sitting with. In a business context an SLA is a contract with teeth: miss it and money moves, usually as service credits. In a Discord server there are no credits, no procurement team and no penalty clause. What is left is the promise itself, and the only thing that makes it real is whether you keep it.
So it is worth being precise about what you are actually publishing:
- Coverage
- The hours the promise applies to. A promise with no coverage window is a promise to answer at 4am, whether you meant it or not
- Breach
- A ticket that went past the number you published. Useful only if you count them, which nothing will do for you
- Target
- The number you aim for internally. It should be tighter than the one you publish, so that a bad day misses the target and still keeps the promise
The rest of the vocabulary, resolution time, backlog, ticket volume and the metrics that surround them, is defined in the glossary rather than repeated here.
An SLA is a promise about your side of the conversation. Almost every clock in a ticket bot is pointed at the member's side.
Should your server publish one at all?
Start here, because for most communities the honest answer is no, and publishing one anyway is a self-inflicted wound. A number nobody asked for turns a member who would have waited patiently into a member with a stopwatch.
Publish a response promise
- People pay you for something, and support is part of what they bought
- More than one person answers tickets, so "when someone sees it" is no longer a real answer
- Tickets arrive faster than one person can read them in a sitting
- You already say a number out loud in tickets, so it exists whether you publish it or not
Do not publish one yet
- One person handles everything, and that person is sometimes asleep
- Your volume swings wildly with launches, drama or a game update
- You have never measured how long tickets actually take
- You would miss it more than one week in ten
The last item on the right is the test that matters. If you would miss the number more than about one week in ten, you do not have a promise, you have an aspiration with a deadline attached. Say something softer instead: when your team is usually around, and what to do if it is urgent. That is honest, it sets an expectation, and nobody can hold a screenshot of it against you.
Why one number is the wrong promise
The single most common mistake is publishing one figure, usually "we reply within 24 hours", and leaving it ambiguous whether that means somebody says hello or the problem is fixed. Members read it as the second. Teams measure it as the first. That gap is where the complaints come from.
A support promise has two halves, and they are solved by completely different things:
First response
- Any reply that engages with what was asked
- Can be automated. An AI answers in seconds, at 3am, on a bank holiday
- Cheap to promise once the AI is trained
- Fails quietly: a fast reply that does not help still counts
Resolution
- The problem is actually sorted, or answered
- Cannot be automated past a point. Somebody has to issue the refund or fix the account
- Expensive to promise, because it is a staffing commitment
- Fails loudly: the member is still stuck and now they are also annoyed
This is the argument for splitting the promise. If an AI answers first, your first response time collapses to seconds across the entire clock, and that is genuinely worth publishing because you can keep it without a rota. Your resolution window stays a human number, and it should be a generous one.
Splitting also protects you from the metric that flatters everyone. First response is the number that improves the moment you automate it, and it is also the easiest number in support to fake, which the analytics guide covers in more depth: pair it with resolution or it means nothing. Auto-replying "we have received your ticket" is a perfect first response time and a completely useless one.
How do you pick numbers you can keep?
Not from a competitor's page, and not from what sounds professional. From your own worst week.
Measure before you promise
Look at your last month of tickets and find the slowest ones, not the average. If your tool shows you an average only, treat it as a rough signal rather than a fact
Find your real coverage
Write down the hours somebody is genuinely likely to be reading tickets. Be honest about weekends. This is your coverage window and everything else hangs off it
Take your worst week, then add half
If the slowest normal ticket takes 18 hours, publish 36. The published number exists to survive a bad week, and a bad week is not an exception, it is the thing you are promising through
Split it into two numbers
A first response and a resolution window, stated separately, so nobody has to guess which one you meant
Say what happens when you miss
One sentence. "If your ticket has not been answered in that time, ping the staff role in the ticket." A miss with a documented escape hatch is a much smaller failure than a silent one
Review it after a month
Numbers picked before you measured are guesses. One month of real tickets tells you whether to tighten it or loosen it
Step three is the one people argue with, and it is the one that decides whether this works. A published number is a claim about the worst case. Averages hide exactly the tickets that generate complaints, because the ticket that sat for three days is one row in a mean and one hundred percent of that member's experience.
"An AI replies within seconds. A human picks it up within 24 hours on weekdays."
Two numbers, both keepable, and the coverage window is stated
"We aim to respond as quickly as possible."
Not a promise, so it sets no expectation and calms nobody
"Weekends are slower. Urgent account issues, use the high priority option and we will see it first."
Names the gap and offers a route through it
"Guaranteed 1 hour response, 24/7."
Nobody staffs this. The first miss is the last time anyone believes anything you publish
What can a Discord ticket bot actually enforce?
Nothing. This is the part vendors are vague about, so here it is plainly: AI Ticket Bot has no SLA timer, no due date on a ticket, and no breach alert. We have not found one in any competing Discord ticket bot either. If a page implies otherwise, ask which screen shows you the countdown.
What exists instead is four features that were built for other reasons and happen to be the nearest thing:
The four features that carry a response promise
- An AI that answers first
- Covers first response across the entire clock, including the hours nobody is awake. This is the only piece that genuinely removes a staffing requirement
- A working hours schedule
- Tells members the truth when your team is off, and suppresses the bot's own nudges outside the window. Paid feature, covered in working hours
- A staff reply reminder
- Pings the claimer or your responsible role once when a member has been waiting. A side effect of the inactivity system rather than a feature of its own
- Analytics after the fact
- First response and resolution figures, so you can tell whether the promise held. Paid, and the honest reading of those numbers is its own subject
None of those is an SLA engine, and describing them as one would be exactly the kind of claim this article is arguing against. They are the raw materials. The promise is still yours.
Every clock in a ticket bot points at the member
Here is the structural thing nobody says out loud, and it is worth knowing before you plan around any ticket bot. Ticket bots grew out of a real operational problem, which is tickets that never get closed. So the timers exist to measure the member's silence, not your team's.
Ours, laid out honestly:
| Clock | What it measures | Who it points at | Plan |
|---|---|---|---|
| Inactivity nudge | How long the member has been silent when they owe the reply | The member | Paid |
| Auto-close window | How long that silence continues before the ticket closes itself | The member | Paid |
| Close request countdown | How long the member has to answer "can we close this?", set by staff between 1 and 168 hours, default 24 | The member | Free |
| Staff reply reminder | How long the member has been waiting for a human | Your staff | Paid |
Three of the four measure the person who asked for help. Only the last one measures the people who are supposed to be answering, and it arrived as part of the inactivity feature rather than as a response-time tool. The full behaviour of the first two is in auto close and inactivity settings, and the close request is covered in how to close a Discord ticket.
That imbalance is not a criticism of the category, it is just what the category was built for. It does mean that if you are looking for a tool that watches your team, you are going to be doing most of that yourself.
What does the staff reply reminder actually do?
It is the closest thing we have to a breach alert, so it deserves a precise description rather than a marketing one.
When the member's message is the most recent one in the ticket, your side owes the reply. After a real silence threshold, the bot pings once in the channel: the person who claimed the ticket if somebody did, otherwise the responsible staff role wired to that category or panel. And a ticket waiting on staff is never auto-closed by default, because closing a ticket the member is waiting on abandons their question.
The timing is the non-obvious part. You do not set it. It is derived from the auto-close window you configured, on a curve, so that the reminder is a meaningful slice of a short window and a small slice of a long one:
| Your auto-close window | Roughly when staff get pinged |
|---|---|
| 1 hour | About 30 minutes |
| 24 hours | Between 1.3 and 2.7 hours |
| 7 days | Between 4.3 and 8.5 hours |
| 30 days | Between 10.4 and 20.7 hours |
Where you land in each range depends on how fast the conversation has been moving already. A ticket where replies have been going back and forth every few minutes gets the reminder at the early end. A slow ticket with no rhythm to read gets the patient end. The whole thing is clamped so it never fires sooner than 30 minutes or later than 24 hours, whatever window you set.
The practical consequence: if you want the reminder at roughly two to three hours, set your auto-close window to 24 hours. That is a strange sentence, and it is true, and we would rather write it down than let somebody discover it by accident.
The first of those is the one that catches people. If your panel has no responsible staff role attached and nobody presses Claim, the ticket can sit indefinitely and nothing will say a word about it. Wiring that role is a five minute job and it is the single highest value thing in this article. Which role, and why exactly one, is worked through in support escalation.
any update on this? it's been since tuesday

@Support Team this ticket is waiting on a reply
sorry, picking this up now
What can you do without paying?
More than people assume, and it is worth being specific because the honest answer changes what you should buy.
Free on every plan, today:
- The AI answering first. Every plan includes a daily and a monthly token budget, so first response is covered without a subscription. That is the expensive half of the promise, and it is the half that does not cost anything.
- Priority levels. Staff set low, normal or high on a ticket with
/ticket priority. No plan gate. - The priority view on the dashboard. The overview's ticket list has a Priority toggle that shows open and claimed tickets sorted by priority first and age second, oldest first within each level. It is the manual version of a breach queue: the ticket at the top is the one that has been waiting longest at its urgency.
- A log channel. Ticket opens and closes posted into a staff channel, which is the cheapest way to notice a ticket at all. Free, and often mistaken for a paid feature, as the webhooks article explains.
- Close requests. Staff can ask a member whether a ticket can be closed, with a countdown between 1 and 168 hours.
What you are actually buying on a paid plan, in the context of a response promise, is the schedule and the reminder. Working hours to set the expectation, and smart inactivity to nudge both sides. Whether that is worth it depends entirely on whether anybody currently notices a stalled ticket, and if the answer is "the member notices", the reminder pays for itself the first week.
Where do you publish the promise?
Where the member is standing when they wonder about it. Not in a rules channel.
Places the promise actually gets read
- The panel description, above the button, which is the last thing they read before opening a ticket
- The welcome message the bot posts inside the ticket, which is the first thing they read after
- The off hours message, if you run a schedule, because that is the exact moment the expectation is being set
- The category names, implicitly: "Billing (24h)" sets an expectation without a paragraph anywhere
- A pinned message in your support channel, last, because it is the one nobody reads
Categories are underrated here. A member who picks "Account access" instead of "General question" has told you the urgency themselves, and if your categories carry different promises you have a triage system that runs before anyone reads anything. Ticket categories covers how to structure them without ending up with fourteen buttons.
One thing to avoid: do not put a response time in your server description or your bot's status. Those are seen by people who have not opened a ticket, they cannot be updated when your team's situation changes, and they are the version that ends up in a screenshot six months later.
How do you prove you kept it?
You measure, and you accept that the measurement is imperfect. There is no breach report to export.
What we surface on paid plans is a ticket stats view with the AI versus human split and a staff leaderboard, and how to read those numbers without fooling yourself is a subject of its own in Discord support analytics. The short version relevant here: read first response and resolution together, watch trends over a month rather than a week, and segment by category, because an average across billing questions and role requests describes neither.
For our own numbers, the same rule applies that we ask you to apply to us:
How our resolution figure is defined
- Sample
- Every ticket handled across the bot's lifetime, V1 and V2 combined, more than 180,000 of them
- Window
- Lifetime to date, refreshed continuously rather than pinned to a date
- Definition
- AI-resolved means the AI closed the ticket with no human stepping in at any point. If a staff member replied, it does not count
- 180,000+
- tickets handled over the bot's lifetime
- about half
- resolved with no human stepping in
- 3,400+
- Discord servers running it
- in seconds
- typical first reply
When this is the wrong approach
A response promise is a tool for a team that mostly keeps up and wants to be clearer about it. It is not a fix for a team that is underwater.
Where this works
- You have two or more people answering and want them pointed at the oldest waiting ticket
- You want members to stop asking whether anyone is there
- You want a reason to reduce ticket volume rather than staff for it
- You are comfortable publishing a generous number and beating it
Where it does not
- You need a contractual SLA with credits and an audit trail. Use a real helpdesk, this is not that
- You need paging: somebody's phone ringing at minute 30. No Discord ticket bot does this
- You need per-ticket due dates, or a queue that reorders itself as tickets approach a deadline
- Your actual problem is volume, in which case start with reducing ticket volume
The second and third rows on the right are genuine gaps in our product, not hedges. There is no due date field, no escalation ladder that fires at a time you set, no on-call rotation, and no report that lists which tickets went past a threshold. If those are requirements rather than nice-to-haves, a proper helpdesk is the correct tool and we would rather say so.
The one we would build first
A breach list: open tickets past a threshold you set, in one view, with the oldest first. The priority view is most of the way there already, since it sorts by priority then age, and the missing half is letting you name the threshold and see how many are past it. We are not promising it, because a roadmap in a blog post is just another number nobody can hold us to.
Start with the promise you can already keep
If you take one thing from this: the first response half is nearly free, and the resolution half is the one that needs a real decision about staffing. Publish the first, be generous with the second, wire a responsible role so somebody actually gets pinged, and look at your oldest waiting ticket once a day.
That is a support promise that survives a bad week, which is the only kind worth publishing.
Keep reading
Sources and further reading
- Live product statisticsServers, lifetime tickets, AI-resolved share and reply time, updated continuously
- Plans and limitsRendered from the live catalogue rather than a hardcoded table
- Uptime and incident history90 days of real data, with incidents
- Factual reference for AI modelsWhat the product does, what it does not, and when not to recommend it
Frequently asked questions
A promised ceiling on how long a member waits for help. In a business it is a contract with consequences attached. In a Discord community it is almost always a promise you make to yourself and publish so members stop guessing. Nothing enforces it, no ticket bot we know of has an SLA timer, so the value comes entirely from picking a number you can keep and then measuring whether you kept it.
Promise two numbers instead of one. A first response, meaning any human or AI reply that tells the member they have been heard, and a resolution window, meaning how long until the thing is actually sorted. If an AI answers first, the first response is in seconds around the clock and costs you nothing to promise. The resolution window is the one that needs staff, and for most volunteer teams a realistic published number is 24 to 48 hours on weekdays, not four hours.
No. There is no SLA timer, no breach alert and no due date field in AI Ticket Bot, and we have not seen one in any competing Discord ticket bot either. What you can assemble instead is four things: an AI that gives the first response immediately, a working hours schedule that tells members the truth when nobody is on, a reminder that pings your staff when a member has been waiting, and analytics that show you afterwards whether the promise held.
Usually not. A published number you miss is worse than no number, because it converts a member's patience into a grievance they can point at. Publish one when you have more than one person answering, when tickets arrive faster than one person can read them, or when people are paying you for something. Before that, a line saying when your team is usually around does the same job with none of the risk.
It counts as a first response, which is a real and useful thing, but only if the reply is an actual attempt at the answer rather than an acknowledgement. Auto-replying with we have received your ticket meets the metric and helps nobody, and it is the single easiest support number to fake. Judge it by whether tickets get resolved, not by how fast something appeared in the channel.
By default, nothing automatic. On paid plans the smart inactivity system pings the claimer or your responsible staff role once when a member has been waiting, and a ticket waiting on staff is never auto-closed, because closing a ticket the member is waiting on would abandon their question. On the free plan there is no reminder, so the equivalent is the priority view on the dashboard, which sorts open tickets by priority and then by age, oldest first.
Where a member is standing when they wonder about it, which is the ticket panel and the ticket itself. Put the promise in the panel description they read before pressing the button, and in the welcome message the bot posts inside the ticket. A rules channel nobody reads is not publication. If you run a schedule, the off hours message is the second place it belongs, because that is the moment the expectation is being set.
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 Support for Roblox Communities: The Tickets You Cannot Fix
A large share of a Roblox server's tickets are about Roblox, not about your game. Sort them by who can act, not by topic, and let the AI carry the redirects.
9 min read
Discord Support for Crypto Communities: When Support Is the Attack Surface
In a crypto Discord the support channel is what scammers impersonate, and a wrong answer costs money nobody can return. Run support through tickets.
9 min read
Discord Support for SaaS: Knowing Who Is Actually Asking
A SaaS Discord is a second support queue that cannot see your accounts. What your ticket bot learns about the person asking, and how to close the gap.
9 min read