Custom SLA

jmiskey
Kilo Sage

So, we have a Service Catalog where users can make requests using Service Portal.   Some of these requests are for new employee onboarding.   One of the variables in the Service Catalog is the "Due Date", which is the date that the request needs to be completed by.   Managers will often make requests for future employees that are dated a ways in to the future.   Even if the requests are approved right away, they often cannot be started right away for new employees who aren't starting for a while.

So, the department I am programming this for want the SLAs to work as follows.

The SLA clock should start ticking at the later of the two following dates:

- Date request is approved

- Due Date of request minus the SLA Duration

So, for example, let's say that the enter a request a new employee who starts March 31, and the SLA Duration is 2 Business Days.   So then we would want the SLA clock to start ticking March 29, so that the date/time that the SLA breaches is the same as the Due Date they elected.

Alternatively, let's say that they entered a due date of tomorrow and the request is approved today.   We want the SLA clock to start ticking upon approval (and not be back-dated).

Does this make sense?

Can it be done?

Will it be rather complicated?

Thanks

1 ACCEPTED SOLUTION

Joe McCarty1
ServiceNow Employee
ServiceNow Employee

I'm not sure it simplifies anything because it is still based on a criteria outside the actual request item record.   The triggering event is not either the approval date or the due date but how close the current date/time is to those reference points.   And SLAs are not continually evaluated to know when the current time crosses that boundary to attach but their conditions are evaluated when the record is updated to see if they meet the start/stop/pause conditions.   But the same approach as before should work for these requirements.



Here is a quick workflow I put together to prove it out (with a 10 minute window, more likely to be several days).   It assumes a business rule copying the date variable to due date and new field Start SLA to flag when the SLA should attach. :


Screen Shot 2017-03-14 at 11.47.18 AM.png


And the key activities:


Screen Shot 2017-03-14 at 11.47.31 AM.png


Screen Shot 2017-03-14 at 11.47.53 AM.png


And the SLA definition:



Screen Shot 2017-03-14 at 11.48.07 AM.png


View solution in original post

5 REPLIES 5

Joe McCarty1
ServiceNow Employee
ServiceNow Employee

The complication that you are going to have is that generally SLAs are evaluated for attachment etc when the record is saved.   But you are not making any modifications necessarily and instead want the SLA to fire based on conditions effectively outside the record (i.e. the current time and how close that is to the due date).



If you can modify the delivery workflow (since this is for request), you can create a custom field like 'Start SLA' and set a flag conditionally after approval if it is already later than due-date - duration and then have a parallel branch in your workflow with a timer activity set to fire due_date - duration after which you unconditionally set the flag.   Since you are modifying the record SLA condition evaluations will fire.   Then you can use the SLA definitions pretty much as is triggering off of when that flag is set.



There is an ability to extend default SLA Condition Rules, but it doesn't change what triggers evaluation which I think is the challenge in this case.


It looks like their requirements may have changed slightly (hopefully, this should make things simpler).



It sounds like the want the SLA to start at the later of:


- the Approval Date


- the Due Date entered on the Service Catalog request



It seems a little odd to me, that the SLA would start on the date that the user said the request is due by, but it sounds like that may be the way they want it.



Does that simplify things at all, or would we still need to go through all the same steps you outlined above?


Joe McCarty1
ServiceNow Employee
ServiceNow Employee

I'm not sure it simplifies anything because it is still based on a criteria outside the actual request item record.   The triggering event is not either the approval date or the due date but how close the current date/time is to those reference points.   And SLAs are not continually evaluated to know when the current time crosses that boundary to attach but their conditions are evaluated when the record is updated to see if they meet the start/stop/pause conditions.   But the same approach as before should work for these requirements.



Here is a quick workflow I put together to prove it out (with a 10 minute window, more likely to be several days).   It assumes a business rule copying the date variable to due date and new field Start SLA to flag when the SLA should attach. :


Screen Shot 2017-03-14 at 11.47.18 AM.png


And the key activities:


Screen Shot 2017-03-14 at 11.47.31 AM.png


Screen Shot 2017-03-14 at 11.47.53 AM.png


And the SLA definition:



Screen Shot 2017-03-14 at 11.48.07 AM.png


Thanks for the detailed reply!   We are still trying to hammer out the details with them (it sounds like it will most likely be one of the two situations I laid out).   Once we get that confirmed, I will start working on this and try to use your suggestions.   I will post back our my results (may be a few days!).