SLA Management

Set first-response and resolution targets per priority, get warned before they slip, and see whether each ticket met them

SLA management, called Response targets on the dashboard, gives every ticket two timers: one for the first staff reply and one for resolution. Targets depend on the ticket's priority. As a timer approaches its target the bot warns your team in a notification channel, and when it passes the target the breach is recorded on the ticket, announced, and turned into an escalation. It is built for teams that promise response times and need to know when they are about to miss one.

SLA management is an Enterprise feature. On lower plans the Response targets block shows an Enterprise badge instead of its settings, and the bot does not start SLA timers unless the bot owner's plan is Enterprise. Upgrade your plan to use it.

Go to Staff → Response targets

Setting up

Open the Response targets settings

Go to Staff → Response targets. The settings are one card titled Response targets.

Turn SLA tracking on

Enable the card's main switch. Nothing is tracked until this is on, and only tickets created after you save get timers.

Set targets by priority

Under Targets by priority, enter First reply within (the first-response target) and Solved within (the resolution target) in minutes for Low priority, Medium priority, High priority, and Critical priority. Targets are whole minutes. The resolution target must be at least as long as the first-response target: if you enter them the other way round, the other value of the pair is changed to match the one you typed when you leave the field.

Choose the SLA notification channel

Pick a channel under Post warnings in. Every warning, breach, escalation alert, and target-met message goes here and nowhere else. Use a dedicated staff-only channel such as #sla-logs; the card warns you if you select a ticket channel.

Choose who gets mentioned

Under Who gets pinged, decide whether alerts mention the Staff roles (all configured staff roles) and Whoever claimed the ticket.

Tune the advanced rules

Under Warnings and escalation and When to alert, keep the defaults unless you have a reason to change them. The sections below explain each option.

Save

Click Save changes on the bar at the bottom of the page (or press Ctrl/Cmd + S). New tickets pick up the new settings immediately; tickets that already have timers keep the targets they started with.

Settings

SettingAllowed valuesDefault
Response targets (main switch)on or offoff
Pause outside business hourson or offon
Move late tickets to the topon or offoff
Also report targets that are meton or offoff
First reply within (per priority)1 to 1,440 minutesLow 240, Medium 120, High 60, Critical 15
Solved within (per priority)1 to 10,080 minutes, at least the first-reply targetLow 2,880, Medium 1,440, High 480, Critical 120
Post warnings inany text channel the bot can post innone
Who gets pinged → Staff roleson or offon
Who gets pinged → Whoever claimed the ticketon or offoff
Early warningon or offon
Include ticket detailson or offon
Include member infoon or offon
Include recent performanceon or offoff
Escalate automaticallyon or offon
Maximum escalations1 to 103
Wait between escalations5 to 1,440 minutes30
Warning alert threshold50% to 99%, below the critical value75%
Critical alert threshold51% to 99%, above the warning value90%

Worked example: a three-person team

A small team that promises "we reply within the hour to anything urgent, within the day to everything else" could use:

PriorityFirst responseResolution
Low480 min (8 h)4,320 min (3 days)
Medium240 min (4 h)1,440 min (24 h)
High60 min480 min (8 h)
Critical30 min240 min (4 h)

With Pause outside business hours on and a Monday to Friday 09:00 to 18:00 schedule in Business Hours, a High ticket opened at 17:30 on Friday has 30 minutes of its first-response budget left when Monday morning starts. Keep Warning alert at 75% and Critical alert at 90%, set Wait between escalations to 60, and point Post warnings in at a private #sla-alerts channel that only the three of you can see.

What happens

  1. Timers start when the ticket is created. The ticket's priority at that moment selects the targets. A ticket with no priority is tracked as Medium.
  2. First response is met by the first staff message in the ticket. Claiming alone does not stop the timer; a staff member has to write something.
  3. Resolution is met when the ticket is closed, whether by /close, the dashboard, a close request, or a scheduled or automatic close.
  4. Warnings are posted to the notification channel when a timer reaches 75% and again at 90% of its target, as long as Early warning is on. The message reads "Ticket 42 is approaching SLA deadline (first_response at 75%)" and includes the ticket link, priority, and server, plus the targets when Include ticket details is on, the customer's name and ID when Include member info is on, and workload context when Include recent performance is on.
  5. Escalation alerts fire when the Warning alert and Critical alert percentages are crossed. Each alert is posted to the notification channel and mentions the configured targets. With Escalate automatically on, the alert repeats after Wait between escalations until Maximum escalations is reached, so a ticket nobody picks up keeps resurfacing.
  6. Move late tickets to the top does two things when the first warning fires: it moves the ticket channel to the top of its category and appends -🆘 to the channel name so it stands out in the channel list.
  7. Breach is posted when a timer passes 100%: "SLA Breach: Ticket 42 resolution target missed by 12.0 minutes". The ticket's SLA status is set, an sla.breach webhook is sent, and an escalation with reason Reply target missed appears on the dashboard's Escalations page.
  8. Target met posts a green confirmation for each timer that finishes within target, only if Also report targets that are met is on.

Mentions in every alert follow Who gets pinged: the staff roles when Staff roles is on, and the user who currently has the ticket claimed when Whoever claimed the ticket is on. If neither is on the message is posted without a ping.

SLA statuses

Each ticket ends with one of four statuses, recorded on the ticket and used by analytics:

StatusMeaning
ActiveThe ticket is open and at least one timer is still running
MetBoth the first-response and resolution targets were met
Partial breachOne target was met and the other was missed
BreachedBoth targets were missed

Business hours and pausing

With Pause outside business hours on (the default), SLA timers pause whenever your Business Hours schedule says you are closed, including holidays, and resume when you reopen. The paused time is subtracted from the elapsed time, so a ticket opened Friday evening does not breach over the weekend. This only works when business hours is configured and enabled for the server; with no schedule, timers run around the clock even if the switch is on. There is no manual pause.

Where to see the results

  • Ticket page: the Conversation tab of the ticket on Tickets logs the moment the first-response target was met as a First response event.
  • Stats: when open tickets have used 80% or more of a target, a banner at the top counts them, broken down by priority. Under More stats, Reply and close targets shows the share of tickets that met each target, by priority and over time. The Late first replies card, and the Late replies column on the Your team page (See team), count each staff member's late first replies.
  • Escalations: every breach creates an escalation with reason Reply target missed; it is resolved automatically when the ticket closes.
  • Webhooks: sla.warning and sla.breach events carry the ticket, priority, timer type, target and elapsed minutes, and percentage used. See Webhooks.

Limits and gotchas

If Post warnings in is empty, no warning, breach, escalation, or target-met message is sent anywhere. Timers still run and statuses are still recorded, but nobody is told. Always set the channel.

  • SLA priorities are Low, Medium, High, and Critical. The /priority command and priority detection use urgent as their top level, which does not match any SLA priority: an urgent ticket (or one set to none) is tracked with a built-in fallback of 120 minutes first response and 1,440 minutes resolution, not your Critical targets. Set high when you want your High targets to apply.
  • The 75% and 90% warning points are fixed. The Warning alert and Critical alert fields change when escalation alerts fire, not when the plain warnings are posted.
  • Targets are locked in when the ticket is created. Changing the settings later affects new tickets only.
  • Move late tickets to the top only works for text and announcement channels inside a category; it does nothing for thread tickets.
  • Channel renames are rate limited by Discord, so the -🆘 suffix can lag by a few minutes on a busy server.
  • If the notification channel is deleted or the bot loses permission to post in it, SLA notifications for that channel stop until you pick a working channel.

Troubleshooting

SymptomCauseFix
No SLA alerts at allNo channel set under Post warnings in, or SLA tracking is offSet the channel and confirm the Response targets switch is on, then save
Alerts arrive but nobody is pingedBoth switches under Who gets pinged are off, or no staff role is configured in Staff → Staff rolesTurn on Staff roles or Whoever claimed the ticket
An urgent ticket is using the wrong targetsurgent is not an SLA priorityUse /priority level:high for tickets that must follow your High targets, or accept the 120/1,440 fallback
Timers do not pause overnightPause outside business hours is on but business hours is not configured or enabledSet up a schedule in Opening tickets → Business hours
Timers never pause even with a schedulePause outside business hours is offTurn it on; it is the only way to pause a timer
A ticket breached even though staff replied quicklyThe reply came from someone who is not staff, or was a claim without a messageOnly messages from members with a staff role count as a first response
The -🆘 suffix stays after the ticket is handledDiscord rename rate limits delay the change, and the suffix is not removed automaticallyRename the channel with /rename if it bothers you; closing the ticket removes the channel anyway
Changing targets did not affect an open ticketTargets are fixed at creationOnly new tickets use the new targets

Common questions

Does claiming a ticket stop the first-response timer? No. The first-response timer stops at the first message from a staff member in the ticket. Claim and then reply.

Where do SLA warnings appear? Only in the channel you choose under Post warnings in in Staff → Response targets. Nothing is posted inside the ticket itself, so users never see SLA chatter.

Why did my urgent ticket not get the Critical targets? SLA priorities are Low, Medium, High, and Critical, while /priority sets urgent. An urgent ticket does not match any SLA priority and is tracked with a fallback of 120 minutes for first response and 1,440 minutes for resolution.

Can I pause the SLA on one ticket while I wait for the customer? No. The only pause is Pause outside business hours, which pauses every timer outside your schedule. There is no per-ticket pause.

What counts as resolved? Closing the ticket by any method: /close, the dashboard, an accepted close request, a scheduled close, or auto-close.

How many escalation alerts will I get for one ticket? Up to Maximum escalations (default 3) per timer, spaced by Wait between escalations (default 30 minutes), as long as Escalate automatically is on and the ticket stays open.

Do SLA timers respect holidays? Yes, when Pause outside business hours is on. Holidays in the Opening tickets → Business hours settings count as closed days and pause the timers for the whole day.

Is the SLA status visible to the user who opened the ticket? No. SLA alerts go to your notification channel and SLA results appear only on Stats; nothing is posted inside the ticket.

Last updated on

On this page