Community Alums
Not applicable
The article below is intended for any person who is getting started with CSM or wants to do user management.
A working Javascript and HTML is useful but not required.
Leave a comment whenever you feel is missing any relevant information in this article.

Introduction

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:
  • case
  • contact
  • service contract
  • entitlement
  • asset
  • 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?

find_real_file.png

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 documentation https://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.

Comments
Kavita Waldia
ServiceNow Employee
ServiceNow Employee

Hi Rafael,

Thank you putting together this concise article on user management in CSM. If you could let us know the areas where you feel there are gaps in documentation we can address those.

There are a couple of statements that need some correction.

  1. 'all admin should have a "User" class assigned and all customers and agents should have "Contact" assigned.' - Agents should also have User class. Only customers are contacts. (para 4 in 'Understanding User Classes')
  2. An agent is an employee of the company while a customer contact is an employee of the account

I also wanted to point you to some detailed information available on the product documentation around roles and permissions.

Hope this is helpful.

 

Regards,

Kavita Waldia

Product Manager - CSM

 

hiball
Tera Explorer

Hi Rafael,

Thank you for this great article. I have also been struggling with CSM module many times.

My client is using CSM to serve their customers (B to B) but they also have company internal users who should have the possibility to open cases by email and CSM portal. Internal users are normal users, not contacts from ServiceNow point of view. How to achieve this?

BR, Janne

Community Alums
Not applicable

Hi Janne,

Assuming the fact your business is B2B and all your users are logged in, you should respect the OOTB behaviour. I always take the demo data available in our developer instance as guidance and said that I would say the best option is: taking CS0000005 as example. "George Warren" from "Boxeo", he's a contact and have the roles sn_esm_user, sn_customerservice.customer and snc_external. His issue was solved by Jodi Seals (class user with roles sn_customerservice_agent and sn_esm_agent). Check activity log if needed.

According to SN documentation

  • 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.
  • A agent always have roles sn_customerservice_agent and sn_esm_agent assigned and they are who assists customers and partners with questions, issues, and problems. This user creates cases, views and edits cases, and works with customers and subject matter experts to resolve cases. An agent typically supports a specific set of products across one or more communication channels. An agent can belong to one or more agent groups.

If you have customers that need to create cases they should be "external" and considered as contacts. The roles I would suggest are sn_esm_user, sn_customerservice.customer and snc_external with class "contact.

I need to find more about the role "snc_internal" because its a little bit unknown for me at the moment, never found a situation in demo data when it's been used to be honest.

Thanks,
Raf

Community Alums
Not applicable

Hi Kavita,

Thank you for your time and assistance. I really appreciate the information and advice you have shared (valuable insights and guidance!!). Ok, I will try to get the most into this article accordingly. Initially I found it a bit unclear who should have what in terms of classes (how user class is intended to work) and what permissions they should have to access Service Portal, backend, etc. If there was a diagram somewhere (architecture or individual modules) it would help to get the best of customer service experience. If you would like to contact me further, my email is my profile or rafael.cardoso@teamultra.net.

Many thanks,
Rafael

Kavita Waldia
ServiceNow Employee
ServiceNow Employee

Hi Rafael,

Glad you found the information useful. I think the KB article KB0639072 will give you the details you are looking for with the diagrams.  

Regards,

Kavita

Andy Dubey
Tera Expert

Hi Kavita,

 

How we can give access to all the user (external and internal) access to the customer portal? We have a requirement to expose the porta for both external and internal users. OOB ServiceNow only allows the external user access to the Customer portal.

Any recommendation to allow Internal users (with snc_internal role) Customer portal without impacting licensing issues? I have already tried to explain to the user that it's not possible OOB. Customer is ready for customization.

 

 

 

Drew Carpenter
Tera Expert

Commenting on an old thread, I know, but we're encountering these same issues/questions. 
We need to have our internal users (internal employees who are having issues with the product that the CSM service desk supports, but who also need to open and work Incidents, Problems, Requests as part of their own duties) chosen as 'Contacts' on cases.
With Paris, out of box, our experience is that after converting all internal users to Contacts (customer_contact) these same "ITIL" users lose the ability to choose other internal users as Callers or Assignees on Incidents, etc.
We have found that the sn_customerservice.customer_data_viewer role is needed for all internal employees who need to be Contacts on Cases, but who also need to be able to choose internal users as Callers or Assignees in ITSM.

Drew Carpenter
Tera Expert

Commenting on an old thread, I know, but we're encountering these same issues/questions. 
We need to have our internal users (internal employees who are having issues with the product that the CSM service desk supports, but who also need to open and work Incidents, Problems, Requests as part of their own duties) chosen as 'Contacts' on Cases.
With Paris, out of box, our experience is that after converting all internal users to Contacts (customer_contact) these same "ITIL" users lose the ability to choose other internal users as Callers or Assignees on Incidents, etc.
We have found that the sn_customerservice.customer_data_viewer role is needed for all internal employees who need to be Contacts on Cases, but who also need to be able to choose internal users as Callers or Assignees in ITSM.

To your example regarding CS0000005 - in our use case, we have "Company X."
Company X includes several different service desks, with all employees (internal users) accessing the same Servicenow instance. George Warren is an employee of Company X and a member of the IT Service Desk. He contacts the "Product Z Service Desk" via email because he is having trouble logging into Product Z. According to the OOB behavior of CSM, he must be in the Contacts (customer_contact) table, not sys_user, in order to be chosen as the Contact on the CSM Case, because the Contact field on the OOB Case form is a reference to customer_contact.
However, his duties on the IT Service Desk require him to be able to choose other employees of Company X on the Incidents that he opens and works.
So far, it appears that the solution is to give him snc_internal and sn_customerservice.customer_data_viewer roles.

Version history
Last update:
‎01-07-2019 10:17 AM
Updated by:
Community Alums