SLA targets and business hours
Set a department's default first-response and resolution targets per priority, count only business hours, warn and escalate before a target is missed, and check that SLA clocks are running. Topics can set their own.
Admin › Tickets › SLAs sets how quickly tickets should get a first reply and be solved, by priority: the department's default targets. A topic can set its own, which its subtopics inherit. Each ticket then shows a clock counting down to its targets, and schoolOS warns people before a target is missed.
You need Manage helpdesk settings to open the page and change targets. Saving business hours also needs Change account settings.

SLA health#
The banner at the top shows the share of open tickets that have a target (policy coverage), how many are at risk and how many are breached. It also says when the SLA clock last ran. It should run every few minutes; "Scheduler heartbeat is missing or stale" means it hasn't run in the last 15 minutes. Contact schoolOS support if that doesn't clear.
Below 100% coverage, some open tickets have no target. Fill in the default targets for their priority.
Department#
When departments are on, Department picks whose targets you're setting: All departments (shared), or one department. A department's own targets win over the shared ones.
Business hours#
By default a clock counts every minute, nights and weekends included. For a target with Count business hours only ticked, only the hours set here count. Open the Business hours section to change them; closed, it shows how many days a week are open and the time zone.
- IANA timezone. Like
America/New_YorkorAmerica/Chicago. Until you save business hours, it's your district's time zone (orAmerica/New_Yorkwhen your account has none), and that's the zone the clocks use. A zone you save stays, evenUTC. - Each day of the week. Tick Open and set the start and end time. One window a day; 9:00 to 17:00, Monday to Friday, to start. Unticked days are closed.
- Closed dates. Holidays and breaks, as dates separated by commas:
2026-12-25, 2027-01-01.
Select Save business hours. With a department picked, you're setting that department's hours; otherwise the shared hours every department uses unless it has its own.
The hours are read in the timezone, so check it before you save. Add your district's calendar breaks under Closed dates each summer, or the clocks count winter and spring break as working days.
Targets#

Default targets apply to every ticket whose topic doesn't set its own. Closed, the section says how many priorities have targets of their own, like "2 of 4 priorities set", or All inherited. To give a subject faster or slower targets, like "Safety hazard" or "Accounts & access › New account", set them on its topic instead.
Each row is a priority: the priorities tickets in this department (or the account) use, each once. Type a number of minutes in each box. It saves when you leave the box. A badge shows the time in days, hours and minutes, like "1h 30m".
- First response (min). Time until an agent's first public reply (or a workflow's reply to the requester).
- Resolution (min). Time until the ticket is solved.
Also in each row:
- Count business hours only. Counts only business hours for this row's targets. Turn it on when your team works school hours only. Leave it off for anything that needs attention around the clock.
- At-risk threshold (%). When the ticket is at risk. 80 means once 80% of the time is used. See below.
- Escalation team. Where the ticket goes when it's at risk. No reassignment leaves it where it is.
Leave a box empty to inherit that one target. The empty box shows, in gray, the target tickets get, and a badge says where it comes from: Default (this page's own row), Shared, Global or Priority default (the priority's own SLA (minutes)). That gray number is exactly what the clock uses; see the next section.
A row with no settings of its own shows the business hours, threshold and escalation team its tickets already get. Changing one of them saves a row that starts from those, so it doesn't switch the others off.
Clearing both boxes removes the row, and the cell inherits again, once its business hours, threshold and escalation team are the same as what it would inherit. A row whose options differ is kept for them: for example, business hours switched off for one department while the shared targets count them.
Which should I choose?#
| Choice | Pick this | When | | --- | --- | --- | | Clock | Count business hours only | Your team works school hours, and a ticket filed at 4 p.m. Friday shouldn't be late by Monday morning. Right for most IT and Facilities work. | | | Every minute (unticked) | Someone is on call, and the work can't wait: a safety hazard, a building with no heat, the network down district-wide. | | At-risk threshold | 80 (the default) | Targets of a day or more: the last fifth still leaves hours to act. | | | Lower, like 50 | Short targets. With a 2-hour target, 80 warns with only 24 minutes left. | | Escalation team | No reassignment | The assignee can usually catch up once reminded. | | | A team | A second line should take over: Tier 1 to Tier 2, or a building's custodians to the Facilities supervisors. The assignee stays, and the escalation team is notified. | | Department | All departments (shared) | Your departments promise the same response times. | | | One department | A department promises something different, like Facilities answering an Urgent work order in 30 minutes, day or night. |
For example, a district with 12 schools sets its shared targets with business hours on, 7:30 to 16:30 in America/Chicago, and winter break under Closed dates. Urgent gets a 60-minute first response and a 480-minute resolution, with a threshold of 50 and Tier 2 as the escalation team. An Urgent Wi-Fi outage reported at 3:45 p.m. on Friday is at risk at 4:15 p.m. if nobody has replied: it moves to Tier 2 and its assignee is told. Its resolution is due at 2:45 p.m. Monday, because the weekend doesn't count. Facilities picks its own department and sets an Urgent row with business hours off, so a gas smell reported at 9 p.m. is still due a reply within the hour.
Which target a ticket gets#
First, the ticket's topic: when its topic, or the nearest topic above it, sets targets for the ticket's priority, those apply. See a topic's SLA.
Otherwise each target is worked out on its own. For First response and for Resolution, schoolOS takes the first row in this list that has a value in that box:
- This department's default targets.
- The shared default targets.
- schoolOS's defaults.
- For Resolution only: the priority's own SLA (minutes).
A topic's blank box falls back to this list too.
So a department can set only a faster first response and keep the shared resolution target. Ticking Count business hours only, changing the threshold or picking an escalation team never takes a target away.
Count business hours only, the threshold and the escalation team come from the first row in the list that exists, whether or not it sets any minutes.
A priority your account or department has edited is its own copy of the one it started from. Targets set on the original still apply to the copy until the copy gets its own.
How the clocks run#
The clocks follow each status's meaning, not its name.
- New and Open. Both clocks run.
- Pending. The clocks pause. When the ticket leaves Pending, the paused time is added to its due times. With Count business hours only, only the business hours spent paused are added, so a pause over a weekend doesn't push the due time out by two days.
- Solved and Closed. The resolution clock stops. Reopening starts it again.
- First response is met by an agent's first public reply, or a workflow's Reply to the requester step (see Actions). An answer from the AI assistant doesn't count. A ticket closed without a reply counts as met when it closes.
- Changing the priority, topic or department re-targets both clocks from when the ticket was created, keeping the time already used. Changing its type never touches them.
At risk and escalation#
When a clock passes its at-risk threshold, schoolOS:
- Marks it at risk on the ticket, and notes it on the timeline.
- Notifies the assignee in the app.
- If the row has an Escalation team, moves the ticket to that team (the assignee stays) and notifies its members.
When a clock passes its due time, it's marked breached and the assignee is notified. Notifications for restricted and FERPA-protected tickets leave out the subject.
A threshold of 80 gives people the last fifth of the time to act. Lower it for teams that need more warning.
Was this article helpful?
Related articles
- Ticket prioritiesThe priority levels tickets can have, their order, a fallback SLA target, the default for new tickets, and the AI criteria triage uses to pick one.
- Ticket statusesRename, recolor, reorder and add the statuses tickets move through. Each status has a meaning (New, Open, Pending, Solved or Closed) that decides SLA clocks, reopening and reports.
- Ticket topicsThe subjects a department's tickets are about, in one tree as deep as you need. AI triage reads each description to give new tickets a topic, and a topic's type, team, SLA and fields pass down to its subtopics.
- TeamsGroup agents into teams that own a ticket queue and cover locations. What a team covers, how it hands out new tickets, the topics each member handles, the default team, private tickets (now set on topics) and its own email address.
- Helpdesk overview and ticket lifecycleCheck that email, your workspace address, SLA clocks and AI triage are working, and set what closing, reopening and long-pending tickets do.
- Work a ticketEverything inside an open ticket. Read the conversation and its events, reply or add an internal note, change status, priority, assignee and fields, link devices and tasks, and merge, duplicate, split off or archive.
Updated October 20, 2026
