A new contracts and entitlements feature called Entitlement Management was delivered as part of the Spring '10 release. This feature represents a significant enhancement to the Service Cloud's contracts and entitlements functionality. It was designed to model warranties, subscriptions, maintenance agreements and other types of contracts. You can define detailed service levels that customers holding these service contracts are entitled to receive. The feature also includes functionality to enforce service levels within the case management process. This article is going to focus on defining service levels and enforcing them on cases. Future posts will explore other areas of the feature in more detail.
Key Entitlement Management features:
- Manage customers' contracts and entitlements
- Define detailed service levels
- Verify that customers are entitled to support
- Enforce service levels on cases
- Report and track SLA performance
Entitlement Processes & Milestones
Entitlement Processes are a new object that is used to both capture service level details and the business logic to enforce them on cases. Entitlement processes use a timeline metaphor to capture all of the steps that must be completed and when they must be completed to meet internal or external agreements that are often referred to as SLA's. Let's focus on creating an example of an Entitlement Process and how it can be defined to meet some common real world requirements.
First we are going to need to create milestones to use in the process. Milestones are a new object that model important steps in your case management process. Milestones are often important service metrics that support organizations use to track and report on performance. When you first enable the Entitlement Management feature there are no pre-populated milestones. For the purposes of this example we are going to create two new milestones: first response and resolution time. These are the two most common types of milestones.
Navigate to the Entitlement Management-->Milestones page in the Customize Setup menu to add or modify milestones.
Create a new record with the name First Response and a description of Notification to the customer that their case has been received and it is being worked.
Next create a second milestone named Resolution Time and a description of The amount of time required to successfully resolve a customer case.
A first response milestone represents how quickly your support organization must respond to a customer case. It is sometimes referred to as response time or initial response. It is often defined as the elapsed time from when a case is opened until a member of the support organization starts diagnosing the problem. Usually this is marked by notifying the customer that their issue is being addressed either via email, a comment on the case or both. Note that an auto-response email would not generally be acceptable as a first response because it would rarely equate to a service agent or support engineer beginning to analyze and work the case.
is usually defined as the time required to successfully resolve a customer issue. That may be the time required to fix the root cause of a case or the time required to provide a satisfactory workaround. For our purposes we will define it as the elapsed time between when a case is opened until it is resolved to the customer’s satisfaction. More specifically it will be the time from when a case was created until the case status is set to Closed
and the Date/Time Closed field is set with a value less than or equal to the current date.
Now that we have our two milestones defined we need to create an Entitlement Process that references them. To do this create a new record on the Entitlement Process setup page. Name it Standard Support Process. Leave the Case enters the process field with the default Based on case created date. For the Case exits the process field I am using custom criteria in order to list more than one case close status and to require a case reason. These two fields determine when the process will run against a case.
Now we can add the first response and resolution time milestones to the process. When you add milestones to a process, you will see a Milestone Name pick list along with a Time Trigger, Order, and Criteria fields. The Milestone Name field contains all of the milestones that exist in your Org. The Time Trigger field is the SLA or the elapsed time from when the case is created until the milestone must be completed. The Order field is only used by the process if you define identical or overlapping criteria. The criteria field on milestones is used to define what cases the milestone will apply. Even if the process is running against a case, if a given milestone's criteria are not met then that milestone will not appear on the case. The most common field to use in the criteria is case priority. Normally, the higher the priority of a case, the tighter (shorter) the SLA. It is also common to include customer and product attributes. The Case Origin field is frequently used in milestone criteria to handle use cases such as phone support which may or may not require a first response because the case is created by an agent while talking to the customer.
Our example is going to use case priority to define different SLA's for Critical, High, and Medium or Low cases. This applies to both first response and resolution time milestones.
|Milestone||Criteria||Time Trigger (minutes)|
|First Response||Case.Priority == Critical||60|
|First Response||Case.Priority == High||240|
|First Response||Case.Priority == Medium, Low||480|
|Resolution Time||Case.Priority == Critical||480|
|Resolution Time||Case.Priority == High||960|
|Resolution Time||Case.Priority == Medium, Low||2,400|
Once the entitlement process is activated it can be associated to customers' entitlements and applied to cases. This post is not going to delve into creating and maintaining entitlements or creating cases from entitlements.
Automatically Completing Case Milestones
It is possible to write apex triggers to automatically complete milestones. Of course, you need to define what events and related case criteria determine what it means to complete a milestone.
In order to automatically complete a first response milestone we need to look at what events represent an agent beginning work on a case as well as what the criteria is for notifying the customer. For starters we might look at the event of an agent or support engineer taking ownership of a case. In addition, the status of the case may change from New to In Progress. Finally, the customer needs to be notified which is often via an email or a comment on the case. For our example, we are going to consider a first response milestone complete when either an outbound email is sent to the contact on the case or a public case comment is added to the case by the owner of the case and ensure that the owner is an internal user.
First Response completion criteria
- Must be triggered by an internal user
- Case is assigned to an internal user.
- Case status is In Progress.
- An outbound email is sent to the contact on the case.
- A public case comment is added to the case by the owner of the case.
Resolution Time completion criteria
- Must be triggered by an internal user
- Case is closed
- Case Status is Closed