New in CRM Online Spring ‘14 / Service Pack 1 / Leo: SLAs

The Spring 2013 / SP1 / Leo release for Microsoft Dynamics CRM 2013 provides new functionality for Service Level Agreements (SLAs).  The SLAs are configurable to your requirements and provide not only deadline monitoring but also automated warnings and escalations.

In this post I walk through the setup process and show the functionality in action.   Invest 5 minutes here and walk away up to speed on this new feature.

Configuration of SLAs

Here’s the logical flow for configuring SLAs:

1 Define your Organization’s holiday schedule (the exception days when CRM should stop the clock on its SLA calculations)
2 Define your Organization’s customer service hours (e.g. it might be 9 to 5, Mon to Fri or it might be 24 x 7 x 365)
3 Create an SLA ‘agreement’ for each Customer Service Offering your Organization provides
4 Define the SLA detail for each agreement.   You can create general rules for each SLA Type (First Response, Case Resolution, Follow Up) or you might want to create specific rules for e.g. P1 vs. P2 Cases.

The sub-steps here are:
– Define which Cases / Customers this applies to
– Define when the SLA should be considered in danger of being missed and the actions that should occur when that happens
– Define when the SLA should be considered missed and the actions that should occur when that happens

5 Activate the SLA agreement
6 Associate an SLA to an Entitlement
7 Associate the Entitlement to your Customer records
8 Start referencing the Entitlement on your Customer Cases (you could do this automatically via code or workflow)
9 If Cases are created that reference the Entitlement tied to the SLA and which meet the applicability criteria defined on the SLA then you will see the SLA take effect. 
CRM will check for SLA applicability both on create and on update of the Case so if the attributes on the Case changes and the applicability criteria is suddenly met (e.g the Case was bumped from P2 to P1)  then the SLA will be triggered and the countdown initiated.

Working with SLAs as an End User

When an SLA is triggered you will see the applicable SLA due dates populated on the Case form.  In the example below I created a Case at 1pm on a Saturday for a Customer whose SLA dictates first response within 1 hour and resolution within 4 hours.   The agreed customer service hours are 8 to 5, Monday to Friday.  CRM calculate the first response as being due at 9am on Monday (1 hr after the customer service schedule commences) and puts the resolution deadline at 12pm Monday:


The default way of informing CRM that first response has been provided appears to be a new field on the Case record: “First Response Sent”.   As an end user I inform CRM that I have completed first response by updating “First Response Sent” to “Yes”.    There is no immediate alert on the Case that the SLA has been met.   But once the SLA deadline is hit CRM will see that the expected action had been completed in time and no warning or escalation will be triggered.

You could also implement a Workflow to set this field for the User, based on say the entry of an outbound phone call against the Case.

And you don’t have to use this field as your success indicator.  In the SLA definition you can define whatever you like:


Behind the Scenes – SLA Workflows

Microsoft have used CRM’s workflow engine to orchestrate the SLA monitoring.   This is transparent, you can call up the SLA workflow via the Background Processes associated view:


Here is the workflow that was executed for my earlier example.  You will see the workflow is sitting in a timeout state, waiting for the SLA deadline.  Once that time is hit it evaluates the success criteria that was defined in the SLA rule and then either exits out (if met), otherwise it performs the escalation/warning actions that were defined:


Adding Visibility to the SLA Deadline – the new Timer Control

SLAs are more effective if the end user has visibility of the deadline.   CRM provides date time fields for each  SLA type:  First Response By, Resolve By, Follow Up By.   But better still, Microsoft have released a new Timer control we can add to our forms to provide an actual countdown and success/failure indicator.

To add this control, jump into the form editor, and insert it via the INSERT tab on the ribbon:


Selecting the Timer control will pop a dialog window asking for property values for the control:


Here you connect the Timer’s properties to the fields that you are using for the SLA.    The end result is the below.  Here I have a Case that I created at 5:45pm that has a 15 minute SLA (based on 24 x 7 support) for First Response, with a warning triggered after 5 minutes:


Once the 5 minute market is hit the timer changes in appearance to the below:


And then once the SLA deadline is hit and the SLA not met, the timer becomes red and switches to counting up, giving you how long over the SLA you are:


A couple of limitations of the Timer:

  • You can’t add it the form header or footer, only the body
  • The timer is not a field so it can’t be added to CRM views.  It is only effective on the CRM form.  On views, users must leverage the date time fields instead.  Some color-coded SLA identifiers would have been useful in the views. I guess you can do that via conditional formatting rules if using the Outlook Client
  • Each Timer control is bound to a set of fields.  This means if you want a Timer that overs First Response that then switches over to Resolve By you will need 2 Timers and some JavaScript to show/hide the Timers.

In summary, a cool new feature.   I especially like the configurability offered to automate any number of actions at the warning  and again at the deadline.

11 thoughts on “New in CRM Online Spring ‘14 / Service Pack 1 / Leo: SLAs

  1. Pingback: What’s New in CRM Online Spring ‘14 / Service Pack 1 for Microsoft Dynamics CRM | GT // CRM

  2. ansrikanth

    Awesome article Gareth.. Was struggling to find out information on this last night, That’s a good start for me… I will post some of my questions here it self on the same topic after going through it again.

  3. ansrikanth

    Awesome article Gareth… Only worry for me on the first look is the workflows are running under SLA Owner account, which is updating the modified by & on of my case with the System admin account.. Might fail some of my reports :(, Did you observed that ?? Any other alternates you think ??

  4. TseiTsei

    Thanks for this!

    Can I easily calculate the resolving time using the timer? I tried but when I resolve the case, the timer says only succeeded instead of showing the time used.

    1. Gareth Tucker Post author

      I don’t think the timer control will help you there. You would need to calculate the resolution time yourself. Which will be difficult if you want to report it in business hours.

  5. Lewis

    I have been trying to figure out why this wont work, I have created the SLA, associated it with an Entitlement, and then associated the Entitlement with a Case, But i have the issue that at the top of this article you have the “Applicable SLA” section with dates inside of that. Neither my colleagues nor I could figure out how to get the information in there.

    If you could give me some help that would be Fantastic.

    1. Gareth Tucker Post author

      Are you not seeing those fields at all or are they just not populated? If those dates are not populating perhaps you are missing the service hours / holidays setup? (steps 1 and 2 in my post).

      1. Lewis

        Wow Thanks for the fast reply..
        I have the service hours, I didn’t put any holidays cause I assumed if there were none then it would still work just would count everyday, however I have just entered the a few holidays but the fields still aren’t populated.

  6. Martin Miller

    While this mechanism is useful, it seems to me to be unfinished functionality (I really do hope its classified as work in progress).

    The limitations I see are:
    * You cannot call a work flow in your warning / failure steps – arguably this is OK, since you might just set an SLA status field which in turn triggers some action – which could be uniform across the different rules for that SLA field. However its a pain if you just want to call a work flow directly to do the same action for the SLA’s.
    * All SLA times are referenced as offsets from the creation time of the case (as far as I can tell). This presumes that all cases are correctly set-up when first saved. However what we typically see is that cases once triaged follow a different SLA expectation based on their parameters. We would far rather like to see the SLA as relative to when the SLA criteria was met. Now I may be completely wrong about this – so welcome correction!

    We want to be able to set up the following scenario:
    – first response SLA (tighter for more important customers) – this is the time for our team to triage, classify and/or seek clarity from customer, and to assign to a team to act.
    – followup timer – (again tighter for more important customers, BUT importantly, varied by what kind of case it has become at triage [request, fault, help, etc.) – this is the time before the team assigned to do the work examine it.
    – resolution timer – entirely based on classifications along the way.

    As I said, out of the box it seems that assumption is made that the case is nicely triaged as created. This is seldom so for us. Cases come by email, the portal, and more rarely by phone. Rarely does the case that is created have all the right meta to dictate all its SLA’s aside from first response.

  7. David

    Hi everyone,
    I’m doing tests with SLAs and I don’t understand the behaviour of “firstresponseslastatus” and “resolvebyslastatus” fields. I believe that it would change automatically with “responseby” and “resolveby” fields depending on if it is succeed or not.
    Another doubt is if is possible to pause the SLA.
    Thanks guys


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s