Skip to main content

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

 

tXu6_Oed8OYeF7LrdMZMWJnUqgR4xETmstQp8uza4lZNFwd5wC-Mwil9US1WD-4mer68nGuY1XOXxz7jQl7Ki4AXC4hTlVswzKT5M2DW7SC8v5FlBq8A0IotLPXQwloiZM-VW490=s1600


 

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

 

yNltxbEPh8DlXqgmCqohs7B7Y1F0pgGW_NeyI0NIxVBQWp4GZ_HqH8SJEGYNdLte7wg4u_tzjnt1OF-PUiUdVTekD1zgPQh0A3t41BTwPH_ASw_4o4tPo7Ep9RnsaFjAmHDVjS0O=s1600

 

Selecting the User Assignment Object we created above:


 

sFUe2YNUOe46RbBzNC-ub3euLQXAC--QeRl4zZCaM1pbGEwp9B3_kXt15RUa83_Fh8zD3XWDA2-CIxw1GJOfk6I0Dr8tgmmQ8xRR8rPnxYVmRM8ByYv9yKeXXBSkU3H7IG9Dv4dS=s1600

 

We Populate the object with the following Fields:


 

VCT5yvT5VVHM0QAeXAIJqmPLeTXkpg0NyYQswwWAk7OhBqQ7Pd2mHjZp3L_9XOZ7nNXVHy9OPvJOd2DjNfW6NkkGvfNhVXqAxvSy0F25UeZnGcvY4thHfGn6roTMCmx2w-k4AXeT=s1600

 

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

 

zDleUCay9Sc9TzibB9zLBYAVWX32cwO9WFG9WbtB2WH5WsoNNdRrQXWzgCfiUa5d7-hoqHE4Cr75BeqForLIWtMJuJeEAWYXVmHcdrDmAEphT_AAIVDYvs87iRjK3Yl5a2gPD_dK=s1600

 

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



 

qEhFkihwv5rlxCy90PGmJ3DCNmb5cI117z_hbP5OXIFScOh98llqYgP-XoGKf44BWr-9TzcNW8jSKYvN4kYAZXz-2CtRKAMFIFP4biJ4zIRLb2C9DR5ttio-_KxVZRqzhtwMZ458=s1600

 

Step 2.2

 

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

 

L8IuXHbhmcXbtokwnuzFblZ2HrdpgeDQJjPeAy5LY6OS3ZjPqKiyZ2VUuk-MDWImlosVMqAcLvauQeSD_IvMOcPzdCLSmMQ-JzKKS8HpWyX07wNG05ajLjJD5zERzcJxL7ptGfP3=s1600

 

Step 2.3

 

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

 

-SqVNj0PeIrpd5MrQG6hOqMiJgig4gv1tS7qW0C_K5-0drZkzVJM-S0O1Nfkw56c_pL5pcF70xgNkcKv4CldJQzBF1pfKdpveaue8945y55uRxTRUPIiX08sH3hv07s1Uw0Mw-IU=s1600

 

Step 2.4

 

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

 

Merge 1 

 

We do the following Merge:

 

ZwX-FH9NtBlI4l-_pIjKDj1O5fMJvLaAhHKaxQJL9sntba-H6Uv4RSTTWmTEqjkLwep2el2g8QCzgbOag9Ua6OzOtPa85ung0zD9-m7vb9C5JlVqieb0l4XXN23EYLP53yLfhYnN=s1600

 

And Take the Following Fields:

 

tb_09Kg56QwQ8qvzx1p7zMCRJGXyMX23Z3gXs-IIcCyupmh4zpgPk7f2G7S_IjbjNeCx3oradLVyJB6arlN0mDqUu9cFbtwzWfG1j6dR50c15_dcGEaTc9a5ABtZGuwqB_bpmGwO=s1600

 

Step 2.5

 

Now for the second Merge:

 

ykgvxdYPHvwwVUbEket8QYCFjLoqY7QBucuepn28qoEiTUiGC0QyZouR4--3IOGr4pokJCZjNR9F-2rLTbh8ipJqB2aH5r9U2-4sKfdsTqUH6e1Pzh1wkE6cDTN5pYL5FBoDSEzT=s1600

 

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

 

VNF2z9qa3oH6ar5J1QoC3QhssFlPwdmq2W0S8AN35re6cmQuP9N9I50PQrtZwsp1npv3RdldF20grVBi2PdHtmfdA_xiIk3MDQK8yMFZnqnAKZppNFsEdoekzIETLM-NMoZLV9iV=s1600

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
 

Hello @mark_deegan, thank you for posting here!


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?


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

 

Mark


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


Reply