SLAs: how to ensure that the elapsed time is up to date?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
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?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago - last edited 3 weeks ago
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
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
