A useful SLA is not the smallest number that fits on a slide. It is a promise that combines customer expectations, actual capacity, priority, calendar rules, and a clear action when time is at risk.
Separate the external promise, internal target, and metric
Teams often use SLA to mean three different things: a promise communicated to customers, an internal operating target, and a number on a dashboard. Mixing them creates conflict. An operation may pursue a stricter internal target, while customers need an expectation the company can sustain across the published channels and hours. Before selecting minutes or hours, write down the experience the target protects and the decision the measurement is meant to guide.
Zendesk documentation describes an SLA as a policy that measures response and resolution times. Google SRE separates the indicator, objective, and agreement: define the behavior that matters, then the target and, where relevant, the consequence of the commitment. In customer service, that discipline keeps a historical average from becoming a contract without capacity, risk, and cost analysis. A target needs an owner and a predefined response when it is missed.
Write one record for each promise: audience, included channels, operating hours, priority, start, pause, stop, target, communication, and breach treatment. If a commercial, legal, or regulatory agreement exists, validate it with the accountable teams. This guide organizes the operating process; it does not replace contract review. The external promise should be easy to explain, while the internal rule can retain the precision required for audit.
Respect channel expectations without creating four operations
WhatsApp, Instagram, email, and chat do not need the same first-reply target. A chat presented as synchronous needs immediate availability, while email may support a longer window. Still, avoid four incompatible operating models. Keep the same priority taxonomy, owners, and states, and vary calendars or targets only where the customer experience truly differs. That lets a conversation move between teams without losing the rule or restarting the clock.
Do not confuse channel speed with case severity. A duplicate charge received by email may be more urgent than a simple chat question. Classify impact and urgency first, then apply the target for that channel and work type. The queue should show remaining time, age, and risk instead of sorting only by newest message. Use the escalation-rules guide to define who takes over at-risk cases.
Start with a few tiers: normal first reply, priority first reply, next update, and resolution when the team controls the outcome. External dependencies need a follow-up promise, not an invented resolution time. Also distinguish customer waiting on team from team waiting on customer. The state should explain why the clock runs or pauses without hiding conversations that remain open and relevant to the customer.
Define the clock before choosing the number
Every SLA needs unambiguous events. First reply may begin with the customer’s first eligible message and end with the first useful public human response. Resolution may begin at creation and stop only when the solution is communicated and the state changes. An automated receipt should not become a human reply in the dashboard. See first-reply time for the underlying formula and audit checks.
Document calendars, time zones, holidays, and after-hours behavior. Atlassian supports combining targets with calendars and start, pause, and stop conditions. The operating logic matters more than the tool: the same case cannot look compliant in one report and breached in another because teams use different clocks. Preserve the rule version used by each case so results remain explainable after a calendar or priority policy changes.
Pauses require care. Waiting for information genuinely required from the customer may pause a clock defined that way; transferring a case, waiting on another internal team, or leaving a conversation ownerless generally should not erase time. Every pause needs a reason, a resume event, and visibility in history. If priority rises, preserve elapsed time and apply the documented policy rather than silently restarting the case.
Test the promise against capacity, exceptions, and breaches
Before publishing a target, simulate a real week. Break volume down by interval, channel, priority, and team; include peaks, lunches, shift changes, holidays, and absences. Compare demand with available people and work that requires investigation. A target that depends on heroic effort will fail precisely when volume rises. Pilot the policy in one queue and review real conversations before extending the promise to every channel.
Use history as evidence, not as an automatic target. A healthy median can hide a long tail of customers waiting for hours. Report attainment by tier, volume inside and outside the target, open backlog, and percentiles. Google SRE warns that targets carry product and business implications. Connect the promise to backlog and queue age, because open cases must not vanish from measurement.
A dashboard that turns red only after a miss is too late. Define progressive alerts: approaching risk, action required, breach, and recurrence. Each level needs an owner, context, and next decision. When a breach occurs, preserve channel, priority, calendar, events, pauses, transfers, owner, and impact. Do not repair the number by deleting history. Classify the cause and change capacity, routing, or policy. Track promised follow-ups too, so a polished SLA does not coexist with forgotten commitments.
- External promise and internal target separated
- Included channels and work types listed
- Priority based on impact and urgency
- Start and stop events documented
- Calendar, time zone, and holidays defined
- Pauses limited and auditable
- Owner assigned before and after risk
- Pilot uses real volume and exceptions
- Dashboard includes open backlog
- Corrective action exists for every breach
