CSM Round Robin Assignment

  • 23 October 2021
  • 4 replies

Userlevel 1
Badge +6

There’s been a bit of back and forth on this topic for a number of years now - Heres a potential solution 


What’s changed recently within Gainsight is the release of Real Time Rules which is made this a little bit easier


The below logic allows us to allocate CSMs to a Company Object based on the Oldest CSM Assignment


First things first, We need to create a High Volume Object to Store the CSM Assignments


In this example, we are going to assume that there are two types of CSM, 


Customer Success Managers

Senior Customer Success Managers


We are also going to assume that there are three possible regions






We are looking to assign CSMs in the same region as a customer in a round robin fashion based on the CSM Region matching the Customer Region and The CSM role matching the Managed By Field in the Company Object


Creating the User Assignment Table


The Only New Table that we will need for this is a CSM Assignment Table 


The CSM Assignment table will have the following fields:


CSM GSID (GSID) - Lookup to User

Company GSID (GSID) - Lookup to Company 

Role (Dropdown List)

Region (Dropdown List)


User Profile Level Fields


Inside the User Profile within Gainsight we will need two fields


Role and Region


Company Level Fields


Inside the Company Object we will also need two fields,


Managed By (Dropdown List)

Region (Dropdown List)


The Managed By Field should be filled by some other rule earlier in the data flow


Step 1 - Populating the CSM Assignment Table


To Create Records in the CSM Assignment Table, we are going to delve into the Real Time Rules Engine we are using the Company Object as the Event Topic and the Event will be Custom Update


We are then setting the following filter: New CSM is not null




We are then setting the following Action: Load to Gainsight Object




Selecting the User Assignment Object we created above:




We Populate the object with the following Fields:




Once we are happy with the rule we can push it live and move onto step 2


Note - For any CSM to be included in the round robin, they must first be manually assigned to a customer, after that, the logic below will run just fine


Step 2 - Assigning CSMs in a Round Robin Fashion


There’s a few tasks that we need to pull together to make this work




Step 2.1 - So we are going to create a taskthat pulls all customers who have no CSM and are Managed By Either Customer Success Manager or Senior Customer Success Manager




Step 2.2


We are then going to Fetch All CSM Assignments with the below fields - note the GS Modified Date here is key.




Step 2.3


We are then going to get the Oldest CSM Assignment for Each Region, Role Combination




Step 2.4


We are then going to do the first of two merges: 


Merge 1 


We do the following Merge:




And Take the Following Fields:




Step 2.5


Now for the second Merge:




We will take the following fields - and create the final data set



Final Step:


Now all that’s left is to assign the CSM to the Company Record using the Load to Company Action




Ive simplified this somewhat from my customers requirements, but when implementing a similar feature, be sure to only include active CSMs in the logic


Hope this helps

4 replies

Userlevel 6
Badge +1

Hello @mark_deegan, thank you for posting here!

Userlevel 2
Badge +3

Thank you. This is amazing @mark_deegan. Questions Have you had to make any significant updates to this processes or found any issues after deployment that we should avoid?


@ayates Can we meet with this customer to better understand current state?

Userlevel 1
Badge +6

Hey Darshana - no significant updates needed (at least last time i checked) their assignment logic was quite complex so wouldnt have been my preferred option to trial this with. 


If you want we can have a quick catch up on this and see how it could apply to you - let me know :)


Kind Regards



Userlevel 1
Badge +6

It should actually be a little easier to implement now with Horizon rules actually