Key SLA concepts
SLA Definition — the configuration record that defines the SLA. It specifies: which table it applies to, what conditions trigger it to start, the target duration, the schedule (business hours or 24x7), and the conditions that pause it.
Task SLA — the live record created when an SLA Definition attaches to a specific record (an incident, change, etc.). This is the running timer. It shows start time, breach time, percentage elapsed, and current state. One record can have multiple Task SLAs — one for response time, one for resolution.
SLA states
- In Progress — actively counting down toward the target
- Paused — timer stopped by a pause condition (e.g., incident in On Hold state, waiting for customer response)
- Completed — target met before breach
- Breached — elapsed time exceeded the target duration
- Cancelled — SLA was cancelled before completion (e.g., incident resolved via a different path)
Retroactive start — the most dangerous setting
Retroactive start means the SLA starts from the record's created date, not from when the SLA Definition was activated or attached to the record. If you activate an SLA Definition on a table with existing open records, retroactive start causes those records to immediately have SLAs that are potentially already breached.
This is the most common source of unexpected breaches on first SLA activation. The fix: test SLA Definitions on a test instance with realistic data first. Understand the retroactive start impact before activating in production.
Schedules and SLAs
SLA Definitions can be tied to a work schedule. When a schedule is applied, the SLA timer only counts down during scheduled hours — nights and weekends pause automatically.
Example: a "4-hour response" SLA on a business hours schedule gives you 4 business hours, not 4 calendar hours. A P2 incident created at 4pm on Friday has until Tuesday morning to receive a response.
Make sure your SLA target duration and schedule align with stakeholder expectations. A "4-hour" SLA with a business hours schedule means very different things depending on when tickets are created.
Pause conditions
Pause conditions stop the SLA timer when a specified condition is true. Common pause conditions:
- State = On Hold (waiting for vendor or customer)
- Awaiting User Information is checked
- Assignment group is empty (unassigned)
Pause conditions require careful design. If too many conditions can pause the SLA, agents may deliberately put tickets in states that pause the clock to avoid breaches — defeating the purpose of SLA measurement.
Flow Designer and SLA triggers
The SLA trigger type in Flow Designer fires when a Task SLA reaches a specified breach percentage. This is the recommended pattern for escalations. See Flow Designer triggers for configuration details.
Debugging unexpected SLA breaches
- Open the incident and navigate to the SLA related list or the Activities section
- Open the Task SLA record — check Start Time, Stage, Business Duration, and Breach Time
- Look at the SLA workflow execution log to see state transitions
- Verify the SLA Definition conditions match what you expect
- Check the schedule configuration — is the SLA using the right business hours schedule?
- Check for missing pause conditions that should have stopped the timer
// Query Task SLAs for a specific incident
var gr = new GlideRecord('task_sla');
gr.addQuery('task', incidentSysId);
gr.query();
while (gr.next()) {
gs.log(gr.sla.getDisplayValue() +
' | Stage: ' + gr.getDisplayValue('stage') +
' | Business duration: ' + gr.getValue('business_duration') +
' | Breach time: ' + gr.getValue('breach_time'));
}
Related guides:
SLA configuration in detail
A ServiceNow SLA Definition record has four key components that work together: the Schedule (business hours, 24x7, or a custom calendar), the Condition (which records this SLA applies to — typically an encoded query on incident priority and assignment group), the Duration (how long the SLA allows), and the Pause conditions (what states cause the SLA timer to stop — typically Pending and On Hold states).
// SLA Definition key fields:
Table: incident
Condition: [priority=1]
Target: 4 hours
Work schedule: Business Hours 8am-6pm Mon-Fri
Pause on: [state=4^OR^state=6^OR^state=7] (Awaiting/Resolved/Closed)
Start condition: [state=1] (New)
Stop condition: [state=6] (Resolved)
SLA reporting and compliance metrics
SLA compliance is a primary ITSM KPI. The native SLA reports in ServiceNow let you track SLA met/breached counts by priority, assignment group, category, and time period. For custom compliance metrics and trend tracking, combine Performance Analytics with your SLA data — build an indicator that tracks SLA compliance percentage over time, broken down by assignment group. This turns point-in-time reports into trend data that shows whether your teams are improving or degrading over time.
Retroactive SLA application
By default, SLA Definitions only apply to records created or updated after the definition is activated. Applying SLAs retroactively to existing records requires a script — query the target records, and for each one, create an SLA record manually (via the Task SLA table, task_sla) or use the SLA utility methods to trigger recalculation. This is most commonly needed after a new SLA Definition is deployed or when an SLA was misconfigured and records need to be re-evaluated. Document any retroactive SLA changes carefully — they affect historical reporting and may need business stakeholder sign-off.
Related: Notification Engine for SLA breach alerts · Performance Analytics · Scheduled Jobs for SLA review reports · Business Rules for SLA-triggered actions
SLA breach prevention and proactive alerting
Reacting to SLA breaches after they happen is less effective than preventing them. Build proactive alerts that fire when an SLA is at 50% elapsed time with no progress update, and at 75% elapsed with the ticket still unassigned or in the wrong group. Use the Notification Engine with condition-based notifications triggered by SLA elapsed percentage thresholds. The Task SLA table (task_sla) has a percentage field showing what fraction of the SLA time has been consumed — a Business Rule or Flow triggered when this field crosses 50% and 75% thresholds gives your team actionable warning before the breach occurs.
Production deployment and operational considerations
Deploying and maintaining any ServiceNow capability in production requires thinking beyond initial configuration. Consider monitoring: what alerts will tell you when something is not working as expected? Consider capacity: as data volumes grow, will this configuration scale appropriately? Consider documentation: will the next admin or developer who touches this understand what you configured and why? ServiceNow implementations that start well-documented and monitored stay well-configured over time. Those that are dep
SLA troubleshooting — why is this SLA not triggering?
When an expected SLA does not appear on a task record, diagnose in sequence. First: verify the SLA Definition is Active. Second: check the SLA Definition's Condition — does the target record match the filter? Use the Condition Builder's test functionality to check the record against the condition. Third: check the Start Condition — the SLA timer starts when this condition becomes true; if the record was already in the start state before the SLA was activated, it may not have triggered. Fourth: check for any SLA Exclusions — exclusion records can prevent specific users, groups, or condition combinations from triggering SLAs. Fifth: check the Task SLA table directly (task_sla) filtered by the task's sys_id — if a record exists but shows a paused or stopped state, the SLA triggered but is not running.
SLA breach reporting for management
Build two SLA reports that most managers want: a compliance percentage by assignment group (% of SLAs met vs total closed, grouped by assignment_group) and a breach trend line (count of SLA breaches per week over the last 12 weeks). The compliance report identifies which groups need process improvement attention. The trend line shows whether performance is improving or degrading over time. Combine these with Performance Analytics indicators for the trend data and a standard report for the compliance percentage. See also notification configuration for proactive SLA breach alerts.
SLA vs OLA vs Underpinning Contract
ServiceNow implements three distinct SLA agreement types that often get conflated. An SLA (Service Level Agreement) is an external commitment between the service desk and the customer — the user who raised the incident. An OLA (Operational Level Agreement) is an internal commitment between teams within the IT organisation, such as the helpdesk and a resolver group. An Underpinning Contract (UC) is a commitment between the IT organisation and an external supplier. All three use the same technical mechanism in ServiceNow — the SLA Definition record — but they attach to different parties and have different reporting implications. When implementing SLAs for a new ITSM deployment, mapping out all three agreement types before configuration prevents the architectural confusion of mixing customer SLAs and internal team targets into a single tracking mechanism.
SLA Engine and Pause Conditions
The SLA engine evaluates definitions against records at regular intervals (and on record saves). Each SLA definition includes a start condition, a stop condition, and optionally a pause condition. The pause condition temporarily suspends the SLA timer — the most common use case is pausing an incident SLA when the incident moves to "Awaiting User Info" state, since the clock should not run while waiting for information the service desk cannot control. The technical implementation of pause requires careful thought: the SLA stage field transitions between "In Progress," "Paused," "Completed," and "Breached" based on condition evaluation, and the elapsed time calculation adjusts for pause periods. Testing pause behaviour requires creating test records, manually advancing state, and verifying that the elapsed time and stage fields update as expected. The Business Rules that trigger SLA recalculation are in the SLA module's sys_script records.
Business Hours and Holiday Schedules
SLAs that should only count business hours rather than calendar time use a schedule reference. A schedule defines which hours of which days are "active" for SLA purposes — a standard "8am-5pm Monday to Friday" schedule means an incident created at 4:45pm will have only 15 minutes of SLA time count until the following morning, not the full overnight period. Holiday schedules extend this by marking specific dates as inactive. The interplay between schedules and time zones is a frequent implementation issue: if your instance handles incidents from multiple time zones, each SLA definition should reference a schedule in the appropriate time zone for its customer base, not the instance's default time zone. Mismatched time zones produce SLA calculations that appear correct in reports but are wrong for users in non-default time zones.
Pass your ServiceNow interview
The NowSpectrum Interview Prep Kit covers 50 Q&As including SLAs, ITSM, and platform administration topics.
Get the Interview Prep Kit →
Free Weekly Newsletter
One practical ServiceNow tip every week.
Written by working professionals. No fluff. Free forever.
Subscribe Free →