REFERENCE · SLA SYSTEM
A guide for the team

The timer that keeps promises.

An SLA in Atender is the live commitment attached to a conversation: respond within X, resolve within Y. The system makes that promise visible at every moment — green while you have time, yellow when it’s slipping, red when it’s about to break — and it makes the breach itself programmable, not just observable. This page covers the three ideas that shape every SLA: what it tracks, how risk is computed, and how a policy attaches to a conversation.

i
A note on terminology.
A policy is the rules — the metrics it watches and the time targets it enforces. An assignment is how a policy attaches itself to conversations (which channel, which team). The live SLA on a conversation is the running timer plus the current risk state. When this page says “SLA,” it usually means the live thing on a conversation; when it says “policy” it means the rules behind it.
The core idea

What an SLA tracks

A policy can watch one, two, or all three of these metrics at once. Each metric runs its own clock with its own thresholds, so a single conversation can be perfectly fine on one and at risk on another.

1The three metric types — each one starts its clock at a different moment
First Reply Time
From the customer’s first message until the first agent reply
All Messages
From any customer message to the next agent reply — runs continuously
Resolution Time
From the start of the conversation until it’s closed as done
Mix and match in a single policy. First Reply alone tells you whether you’re acknowledging customers; Resolution alone tells you whether you’re actually finishing things. Most teams track both — and add All Messages on top when a conversation drags on with multiple back-and-forths.
Risk model

How risk is computed

A policy is really a set of four time tripwires per metric. As the timer counts down, it crosses each tripwire and the conversation’s risk state escalates. A background job re-checks every active conversation about once a minute, so the badges you see on screen are never far from real.

1The four risk states — the names match what shows in the product
SLA green

Plenty of time remaining

The policy is in force, the clock is ticking, but you’re well clear of the first threshold. The default state for any conversation that’s just been opened.

At risk yellow

The first tripwire has been crossed

You’re past the comfortable middle. Not yet urgent, but the conversation has earned a place on someone’s watch list.

Urgent red

The last tripwire before breach

The next threshold is the breach itself. Anything sitting here for long is about to fail — this is the “drop everything” band.

Breach red, overdue

The promise has been missed

The countdown flips and starts counting up — how long the conversation has been overdue. The state is sticky from this point until the conversation is closed.

And the way time gets divided into those four states
2Priority bands — four time targets per metric, in seconds
Band 1

Low — below the first threshold

Time elapsed is under lowTargetSeconds. Risk state: SLA. The healthy zone — every new conversation starts here.

Band 2

Normal — past the first threshold

Between lowTargetSeconds and normalTargetSeconds. Risk state: At risk. The conversation has aged enough to deserve a yellow badge.

Band 3

High — past the second threshold

Between normalTargetSeconds and urgentTargetSeconds. Risk state: Urgent. One more threshold and you breach.

Band 4

Urgent — at or past the breach line

Time elapsed has reached or exceeded urgentTargetSeconds. Risk state: Breach. The countdown flips into overdue mode.

Bands are auto-derived, not assigned. Nobody on your team picks “urgent” for a conversation. The conversation earns “urgent” by surviving long enough to cross the second-to-last threshold. This is what makes the system fair — every conversation is judged the same way, by the same clock.
Escalation is one-way. The state can climb — SLA → At risk → Urgent → Breach — but it never walks back down inside a single conversation, even if the timer pauses. Once breached, breached. The only way to reset the state is to close the conversation; reopening starts fresh.
Attachment model

How a policy attaches to a conversation

A policy doesn’t live on a conversation directly. It attaches through an assignment — a small rule that says “this policy applies to this team and/or this channel.” When a new conversation appears, the system scores every matching assignment and the most specific one wins.

1The assignment matrix — scoring resolves conflicts
Score 3 most specific

Team + channel

Both the team and the channel match. Highest priority — beats every other kind of match.

Score 2 team-only

Team only

The team matches but the channel doesn’t. Used when no team+channel rule exists for this combination.

Score 1 channel-only

Channel only

The channel matches but the team doesn’t. The default fallback — your “all email gets four hours” baseline.

One winner per metric. If two policies could apply to the same conversation, the higher-scoring assignment wins outright for that metric. Channels supported include email, web chat, voice, SMS, WhatsApp, Messenger, and the rest of the [[Omnichannel]] surface.
And the things that change when the timer runs
2Office hours and lifecycle — what pauses the clock, what resets it

Office hours pause the clock

By default, SLA timers only run during your configured opening hours — timezone-aware, with holiday country codes and date overrides honored. A 5 PM Friday email doesn’t start breaching at 5:01 PM. Toggle Ignore office hours on a policy to track time continuously instead — the right call for 24/7 channels and critical tiers.

Reopen restarts the timer (mostly)

When a closed conversation reopens because a customer replied, the timer restarts for each tracked metric — with one exception. First Reply Time does not restart if an agent has already replied. That promise has already been kept; we don’t pretend otherwise.

Closing freezes the badge

When a conversation moves to done, the live countdown stops and the badge flips to a static Met or Breached label. The final state is recorded once and preserved for analytics.

Every assignment is preserved

The conversation keeps a full history of which policies have been applied — when each one started, what priority it was at, when it was due. Useful for analytics, debugging, and any case where someone needs to reconstruct what was promised.

And finally, two ways to make SLAs do something, not just show something
3Automation hooks — SLAs as a programmable signal
Two automation triggers fire as the breach scheduler reclassifies risk
sla_breach_warning · fires on At risk and Urgent sla_breached · fires on Breach
Wire these into Automation Rules. Escalate to a manager, post into Slack, reassign the conversation, kick off a callback — anything you can express as an automation rule can be triggered the moment an SLA tips. The badge is the human-readable surface; the trigger is the machine-readable one.
At a glance

How the three ideas fit together

Every SLA is the same shape: a set of metrics tracked against time tripwires that auto-escalate the risk state, attached to conversations through a scored assignment matrix. Office hours pause the clock, closing freezes the badge, automation triggers turn the whole thing into a programmable signal.

An SLA
What it tracks the metric clocks
Metric types
First Reply All Messages Resolution
A policy can watch one, two, or all three metrics at once.
How risk is computed tripwires & states
Priority bands
Low Normal High Urgent
Risk states
SLA At risk Urgent Breach
Bands are auto-derived from elapsed time. Escalation is one-way.
How it attaches assignment & lifecycle
Assignment match
Team + channel · 3 Team · 2 Channel · 1
Clock behavior
Office-hours pause Reopen restart Freeze on close
Plus sla_breach_warning and sla_breached as automation triggers.