Understanding user types and permissions on Customer Service
Since I started to use Customer Service module this always has been a struggle, quite hard to find a proper answer nowadays about best practises and how user management should be set up. Said that, my goal on this article is to provide you full picture how CSM was originally designed and how to get the most of it. I will update this article as often as I can with all information I collected so far.
According to ServiceNow documentation, Customer Service Management application enables you to route cases to available customer service agents with the necessary skill sets. Agents can make use of response templates and search tools to search the knowledge base and community and provide timely, informative responses to customers.
Customer information includes the account and contact information for a customer or partner.
- An account is a supported external customer and the Account form stores the customer's information, including the company name, contact names, addresses, phone numbers, and web and email addresses. An account can be a customer account, a partner account, or both.
- A contact is a user who is an employee of an account. A contact record stores information about a contact, such as the name, phone number, email and web address. An account can have multiple contacts but a contact can be associated with only one account. A contact can have one or more associated assets and service contracts. A contact can also have a user ID and can log in to the customer portal.
An account can have one or more associated assets, service contracts, entitlements, and SLAs. An account can also be associated with the following entities:
- A partner is a supported external customer that, in turn, sells to and supports one or more customers. A partner account record stores information about a partner's company, similar to a customer account. On a partner account record, the Partner field is enabled. A partner can report and manage cases on behalf of customers. A partner can also be a customer.
Ok, that's what is described on the official documentation but what's really happening in the background?
Understanding user classes
When you mark a table as extendable, you are also adding a second system field: Class [sys_class_name] -- System Class Name. It contains the name of the table that the record represents. The sys_id field uniquely identifies a record. In the case of an extended table, the sys_id field is actually stored in two places: on both the parent and child tables. The platform joins both together whenever you query the child table and the field sys_class_name is added on the parent table.
In other words, sys_class_name is to extend sys_user table to "User", "Contact" or "Consumer".
When a User record is saved with class User , we get the details from SYS_USER table.
When a User record is saved with class 'Contact', we get details from extended SYS_USER and CUSTOMER_CONTACT table. The customer_contact table have some related lists such "Tickets", Locations", Social Profiles".
Since my client is a B2B, for the moment I will not cover the consumer scenario on this article.
As far I am aware, all admin should have a "User" class assigned and all customers and agents should have "Contact" assigned.
The Customer Service Management application provides the ability to establish different types of relationships between partners, customers, and contacts. These relationships make account and asset management easy and flexible. The following types of customer service relationships are available. (link here). This will help to create a relationship such "regions" to your parent accounts providing a kind of hierachy parent-child to a specific account.
Permissions
Security is the mother of all mothers and nowadays that's a buzz word. An administrator usually does this kind of questions:
- If I want to someone to use my application, what roles they need?
- If I want to someone support the cases, what roles they really need?
Customer Service Management includes both internal and external user roles. Internal user roles are for agents and agent managers using the Customer Service Management application. External user roles are for customers and partners using the customer portal.
Here's roles you need to set up to your Agents or Customers:
| Use Case | Roles |
|---|---|
| Agent An agent is an employee of the company. Class: User | snc_internal sn_customer_service_agent sn_esm_agent |
| Customer A customer is a user who is an employee of an account. Class: Contact | snc_external sn_customerservice.customer sn_esm_user |
| Admin Class: User | admin |
Note: Thank you @Kavita for helping me sorting this out. I was banging my head against the table over the reason of existence of this class. The official documentation provided lists all the roles available OOTB and how they should be used. Only customers should be contacts.
The following table provides all roles available OOTB and how they are set up.
| Use Case | Roles |
|---|---|
| Create Cases | sn_customerservice.customer sn_customerservice_agent |
| Delete Cases |
admin
Add assets/rooms/addresses/contracts/accounts manually
Official documentation https://docs.servicenow.com/bundle/london-customer-service-management/page/product/customer-service-...
sn_customerservice_manager
or admin
Run/create reports
Official documentation (https://docs.servicenow.com/bundle/london-performance-analytics-and-reporting/page/use/reporting/con...).
itil
Modify users/groups lists etc
Official documentation https://docs.servicenow.com/bundle/london-platform-administration/page/administer/roles/reference/r_...
user_admin
Schedule Customer service agents and field service technicians
Official documentationhttps://docs.servicenow.com/bundle/london-customer-service-management/page/product/customer-service-...
agent_schedule_admin
Remember that all examples I provide is for a B2B scenario and for that reason the consumer roles is not included or mentioned. Therefore they've a very similar behaviour to the customers.
If you would like to go further on custom csm user roles, take a look on the documentation https://docs.servicenow.com/bundle/london-customer-service-management/page/product/customer-service-...
Relationships
The Customer Service Management application provides the ability to establish different types of relationships between partners, customers, and contacts. These relationships make account and asset management easy and flexible. The following types of customer service relationships are available. (link here). This will help to create a relationship such "regions" to your parent accounts providing a kind of hierachy parent-child to a specific account.
Conclusions
There's a gap in the documentation explaning how this module should properly work.
I will try to cover the maxium I can in order to be easier in the future to set up a Customer Service Mgt scenario.
Labels:
https://www.servicenow.com/community/csm-articles/understanding-user-types-and-permissions-on-customer-service/ta-p/2298124
