Missed SLAs frustrate customers and overwhelm support teams — but most breaches are preventable with the right setup in Jira Service Management (JSM).
Hi Atlassian Community!
I’m Kinga from Getint (Marketplace Partner). We work on integrations that often make or break SLA performance across tools. In this article, I’ll share practical guidance on Service Level Agreements (SLAs) in JSM — from design to configuration, automation, reporting, and common pitfalls — so your team can move beyond “just setting timers” to building agreements that earn trust and drive consistency.
What “SLA” actually means in Jira terms
SLA — in a nutshell — defines as a measurable promise between a service provider and customers. In JSM, it’s implemented as a time metric with start / pause / stop conditions plus goals.
- SLI (Service Level Indicator): the raw measurement (e.g., “Time to first response”).
- SLO (Service Level Objective): the target for the SLI (e.g., “respond within 2 hours”).
- OLA (Operational Level Agreement): an internal commitment between teams that supports the customer-facing SLA.
JSM defaults:
- Cloud: Time to first response, Time to resolution
- Data Center/Server: Same, plus Time to approve normal change and Time to close after resolution
Why does this matter? Precise definitions prevent “phantom breaches,” make reports meaningful, and enable healthy conversations when things go off-track.
Design SLAs that match your reality (before you click anything)
- Segment by urgency and work type
Start with P1–P4 targets and the request/issue categories that matter (Incidents, Service Requests, Changes). Keep the number of SLA types small and names crystal clear (e.g., “TTR – Incident – P1”).
- Choose a calendar model
Do you measure 24/7, business hours (e.g., 9–5, Mon–Fri), or a hybrid? If your teams span time zones, decide whether you’ll use one global calendar or per-team calendars.
- Decide pause logic early
A common pause condition is Waiting for Customer. If customers must reply before you proceed, pausing avoids unfair breaches.
- Pick stable goal criteria
Use fields that don’t change much mid-lifecycle (priority, issue type, organizations). If a field flips often, you’ll get surprises as issues jump between goals.
Step-by-step: Configuring SLAs in JSM (Cloud & DC/Server notes)
Navigation:
- Cloud: Project settings → SLAs
- Data Center/Server: Project settings → SLAs (under Time Tracking)
- Create/Name the SLA
Use names agents understand (e.g., “Time to first response”).
- Define the time metric (the stopwatch)
- Start: Issue created, Entered status = “Waiting for Support”, or Comment: By Customer
- Pause (optional): Status = “Waiting for Customer” or “Pending Third-Party”
- Stop: Resolution set, Entered status = Resolved/Done, or Comment: For Customers
- Attach a calendar
Create/select calendars with real working hours (holidays included). Cloud only allows one calendar per SLA; for multiple regions, you may need separate SLAs/projects.
- Add SLA goals and order them
Use JQL to target specific slices. Order matters: the first matching goal wins.
Examples (tweak for your fields):
- TFR – Incident – P1 (24/7)
JQL: issuetype = Incident AND priority = Highest
Goal: 15m
Calendar: 24x7
- TFR – Incident – P2 (Business hours)
JQL: issuetype = Incident AND priority = High
Goal: 1h
Calendar: EMEA 9–17
- TTR – Service Request – Standard
JQL: issuetype = "Service Request" AND priority in (Medium, Low)
Goal: 2d
Calendar: EMEA 9–17
- Time to approval – Normal Change
Start: Entered status = "Awaiting approval"
Stop: Entered status in ("Approved","Rejected")
Goal: 8h
Calendar: EMEA 9–17
Calendars, time zones & holidays: make them do the math
-
Build per-team calendars if SLAs differ by geography (“APAC 9–18,” “EMEA 9–17,” “US 8–17”).
-
Keep a simple 24x7 calendar for P1 incidents if you promise true around-the-clock coverage.
-
For complex holidays, maintain ICS files or central holiday objects and update yearly.
-
Sanity test each calendar with a known ticket to confirm pause/working windows.
Pause conditions & first response: common gotchas
Comment vs. Status - if your SLA stop condition is tied to a status transition, adding a public comment alone won’t stop the SLA. Safest pattern: trigger a status change and stop on that.
Waiting for Customer - double-check status names match SLA conditions exactly, or the clock may never pause.
Reporting & dashboards that agents will actually use
- Built-in JSM reports: Time to resolution, trend views.
- Useful gadgets: SLA countdown, Time to First Response.
- Root-cause reviews: Combine SLA trend report, a filter for breached issues ("Time to resolution" = breached()), and fields like Assignee at breach, Priority, Request Type, Calendar.
Exec views: If you want to show “time remaining” in plain text, use automation to store SLA values in custom fields.
Automations that keep SLAs on track (battle-tested patterns)
- Early warnings (thresholds)
Trigger: SLA about to breach (e.g., 30m remaining)
Actions: internal comment, Slack/Teams ping, escalation queue.
- Breach handling
Trigger: SLA breached
Actions: tag issue, capture assignee at breach, notify managers, open follow-up task.
- Share time remaining with customers
Use automation smart values like:
{{issue."Time to resolution".remainingTime.friendly}}
- in a comment: “You’ll hear from us within {{…}}.”
- Three-strike rule
Escalate ownership to duty manager at 75% / 90% / breach thresholds.
Troubleshooting & edge cases you’ll meet eventually
- SLA recalculation: Changes affect in-progress cycles, not completed ones.
- SLA missing/paused immediately: Often caused by mismatched pause conditions or bad JQL.
- Stop refers to past events: Stop must occur after start, or the SLA won’t run.
- SLA search JQL requires a JSM license.
- Visibility: If SLAs don’t show on issues/portal, check field context + Request Type mapping.
Make SLAs visible to customers
- Show SLA status (not just numeric targets) in the portal to reduce “any update?” pings.
- Keep phrasing simple: “We’ll reply within 1 business hour.”
- To expose SLAs in the portal (Cloud): ensure SLA fields are added to the Request Type screen.
When your SLA spans multiple tools
Many teams work across JSM & ServiceNow & Azure DevOps & Zendesk and more. If a priority P1 incident starts in one system and is resolved in another, your SLA promise should survive hand-offs.
At Getint, we help teams keep SLA-critical fields (priority, status, assignee groups, comments) synchronized across tools so your JSM “Time to resolution” reflects the actual work, not just what happened in one silo. If you need that kind of cross-platform reliability, here’s our Getint Atlassian Marketplace App.
This is one option - use any integration approach that ensures data parity for the fields your SLA depends on.
A reusable SLA catalog (examples to tailor)
These are example baselines, not Atlassian defaults:
- Incidents
- P1: first response 15m (24x7), resolution 4h (24x7)
- P2: first response 1h (business hours), resolution 8h (business hours)
- Pause: Waiting for Customer, Awaiting Third-Party
- Service Requests
- Standard: first response 4h (business hours), resolution 2d (business hours)
- Access Requests: first response 2h, resolution 1d; add “Time to approval” SLA
- Changes
- Normal change: approval 8h (business hours); closure 5d (business hours)
- Customer tiers
- VIP accounts: tighten SLA goals by 25–50% using org-based JQL
- Operational hygiene
- Auto-close resolved requests after X days
- Define whether TFR resets on reopen
Final thought
Great SLAs aren’t just technical rules — they’re agreements that make service delivery predictable and relationships stronger. Keep your names simple, calendars accurate, goals stable, and automation focused on prevention, not punishment. Review your SLAs regularly, and use them as conversation starters with both teams and customers.
Feel free to drop your experiences in the comments:
- Which SLA configurations or automations have worked best in your JSM projects?
- Do you use any creative calendar or escalation setups worth sharing?
Thanks for reading!
0 comments