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
US
EMEA
APAC
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
CAVEATS
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