SLAs: how to ensure that the elapsed time is up to date?

tahnalos
Kilo Sage

We are attempting to test the SLA functions here in one of our sandbox environments and we have noticed an issue.

 

We have noticed that unless the parent record is touched, the SLA record stays stuck without any change in elapsed business time.  This is causing problems for us as the SLA timers that we have set up are not firing properly resulting in SLA breaches.

 

Can anyone tell me how ServiceNow is supposed to be updating the timers on SLA entries so that the appropriate notifications fire properly?

4 REPLIES 4

amy312james
Mega Contributor

The SLA engine in ServiceNow runs in the background and updates SLA timers by recalculating how much business time has passed based on the SLA definition's rules. The engine doesn't get constant updates; instead, it relies on scheduled jobs and events. This means that the SLA record doesn't get updated until the parent task record is checked (for example, when the engine updates or queries it). This means that the SLA progress is tracked in the background, but changes are only visible when the parent record is "touched" or processed. This then sends notifications or breaches according to the SLA rules.

Tanushree Maiti
Kilo Patron

Hi @tahnalos 

 

Refer these KBs , if it helps  :

KB0747448 SLA records do not contain business elapsed time values. 

KB0871016 Incorrect "business elapsed percentage" and "Business time left" in Task SLA's 

 

KB0830722 Incorrect SLA breach, sla stage is on pause but got breached 

Please mark this response as Helpful & Accept it as solution if it assisted you with your question.
Regards
Tanushree Maiti
ServiceNow Technical Architect
Linkedin:

lauri457
Tera Sage

You send notifications from the work/flow defined in the sla definition. There is a sla percentage timer action that can be used in flows.

 

Not sure if the sla mechanism for flows is the same but the workflow activity works using scheduling jobs via sys_trigger and the table sla_async_queue

SohamTipnis
Mega Sage

Hi @tahnalos,

 

Yeah, this can definitely be confusing at first—but what you’re seeing is actually how ServiceNow behaves in many cases.
SLA timers in ServiceNow are not always updated in real time. They usually get recalculated either when the parent record is updated or when the SLA background jobs run. So if those jobs are not running frequently (which can happen in sandbox environments), the SLA can look “stuck” until you touch the record.
That’s why when you update the parent record, the elapsed time suddenly jumps—because the system is recalculating everything at that moment.
I’d suggest checking whether the SLA scheduled jobs (like SLA Engine/Processor) are active and running properly in your instance. In lower environments, these jobs sometimes don’t run as frequently, which directly affects SLA timers and notifications.
In short, nothing is really broken; it’s just that SLA processing depends on background execution, not continuous live updates.

 

You can refer to the below article as well: https://noderegister.service-now.com/kb?id=kb_article_view&sysparm_article=KB0830722

 

Let me know if this helps!!!😉

 

If you find my answer useful, please mark it as Helpful and Correct. ‌‌‌‌😊


Regards,
Soham Tipnis
ServiceNow Developer || Technical Consultant
LinkedIn: www.linkedin.com/in/sohamtipnis10