CRM has entitlements since CRM 2013 and it was major functionality addition for Service Management. For our Service Module implementation we decided to implement Entitlement, however sooner we found that our functional requirement does not fit into OOB Entitlement functionality and finally we have to opted for Custom Solution.
Let me explain what we intended to do
- In CRM we had Customer Hierarchy enabled in a such way that there would be Parent Customer at root and it will have children Customers from various regions. Logically its one customer only however we have to maintained the hierarchy because products can be sold to any of the Customer in Hierarchy.
- Since we treat all the Customer is entire Hierarchy as “One” logical customer, there are no separate entitlements for each of these Customers, all the Customers in a hierarchy follow the same entitlements and SLAs
- On Cases for Contacts there are 2 fields provided, one is responsiblecontactid and other one is primarycontactid. As you might be already knowing, primarycontactid is tightly coupled with customerid field in sense that when Customer is selected as Account only Account-Contacts can be assigned to primarycontactid field on Case. On the other hand responsiblecontactid is stand alone field having no dependency on any other field. We for our Case form selected primarycontactid to capture the Contact on Customer.
Now here is what we faced as limitations.
- We had defined Entitlements only for Root level (Parent) Customer in CRM, hence there was just one Entitlement per Customer Hierarchy.
- There were no Contacts added to Entitlements.
- There were no Products added to Entitlements.
- Cases can be created for any Customer within Hierarchy and Contact was mandatory field on Case form. Hence every case would have Customer (Account) and Contact.
- Now in such cases System would not match Entitlement since it would never match the Customer and Contacts on Case with Entitlements.
- Even though User tries to select the Entitlement on form it will throw error as shown below
One of the solution to overcome these limitations was to create “same” entitlements for each of the Customers in Hierarchy which we this would be maintenance overhead if we have to alter Entitlements for Customer.
So basically we could not leverage OOB Entitlements for our Business Process.
I think there should be some enhancement made to Entitlements functionality to honor Hierarchy of Customer so that we minimize creating Entitlements for all the Customer in hierarchy.