Assign CTAs to a CSM Pool or Queue

Related products: CS Cockpit & Playbooks

Many companies are mixing digital touch and low touch as a way to more effectively manage the long tail of their customers. Through low touch, they need a way to easily manage a large amount of customers with very few CSMs. In this world, it’s not uncommon to see 1000 customers being managed by one CSM. This can often be quite challenging to manage for a CSM and it can often lead to an unbalanced workload across the team. 

The solve this, companies want to use Pooled CSM teams that work across the entire customer segment and aren’t assigned to a specific portfolio. Each CSM is dedicated to all accounts in the segment and would be assigned CTAs on a round-robin sequence based on their availability. This idea is similar to how support queues work in ticketing systems. There is no dedicated rep so the system identifies which person the ticket should next be assigned to. 

 

Current Workaround

I have previously implemented workarounds to solve for this use case but they aren’t very scalable. Here’s what we did:

  • We created a new user called CS Pool. We set up the email as a distribution list so that it would notify everyone in the pool whenever Gainsight sent a notification. 
  • We assigned all low touch accounts to this CSM Pool user.
  • All CTAs are automatically assigned to the CSM Pool user and we used reports, dashboards, and the Cockpit for CSMs to see when a new CTA was created. 
  • Once the CTA is created, it was up to the CSMs to pick it up and assign it to themselves. Managers were also able to triage the queue and assign CTAs to CSMs if needed.

For this solution, CSMs were self-assigned. If a CTA was still assigned to the CSM Pool user, it meant a CSM wasn’t working on it yet. We used this CSM assignment as the first step for the team to know if something was being worked on or not which helped us to better manage the queue. 

 

Improved Solution

The workaround above has many gaps. It is completely dependent on CSMs self-assigning themselves to tickets. This works ok for small teams but quickly becomes ineffective for teams of 5 or more CSMs. It also enables CSMs who want to grab all the CTAs and those who want to just sit on the side lines. 

 

An improved solution would be to have a similar concept of Salesforce’s Support Queues. Ideally, it would be great if we could create queues in Gainsight and assign CSMs to the queue. And then, ideally, we could use the rules engine to create assignment rules or order similar to how Salesforce uses assignment rules. 

In Salesforce’s assignment rule, you can define the following. I know it will likely be quite a bit of work to build this in GS but it would be helpful if we could at the very least be able to define the Order, Criteria, and User.

 

FIELD DESCRIPTION
Order

Sets the order in which the entry is processed in the rule, for example, 1, 2, 3.

Salesforce evaluates each entry in order and tries to match the criteria for the entry. When a match is found, Salesforce assigns the item and stops evaluating the rule entries for that item. If no match is found, the item is reassigned to either the default Web-to-Lead owner, the administrator doing a lead import, or the default case owner.

Criteria

Specifies conditions that the lead or case must match for it to be assigned.

Enter your rule criteria.

  • Choose criteria are met and select the filter criteria that a record must meet to trigger the rule.For example, set a case filter to Priority equals High if you want case records with the Priority field marked High to trigger the rule.

    If your organization uses multiple languages, enter filter values in your organization’s default language. You can add up to 25 filter criteria of up to 255 characters each.

    When you use picklists to specify filter criteria, the selected values are stored in the organization's default language. If you edit or clone existing filter criteria, first set the Default Language on the Company Information page to the same language that was used to set the original filter criteria. Otherwise, the filter criteria may not be evaluated as expected.

  • Choose formula evaluates to true and enter a formula that returns a value of “True” or “False.” Salesforce triggers the rule if the formula returns “True.” For example, the formula AND(ISCHANGED( Priority ), ISPICKVAL (Priority, "High") ) triggers a rule that changes the owner of a case when the Priority field is changed to High.

If your condition uses a custom field, the rule entry is deleted automatically if the custom field is deleted.

User

Specifies the user or queue that the lead or case is assigned to. Users specified here cannot be marked “inactive”, and they must have “Read” permission on leads or cases.

Note

NOTE You can't revoke the “Read” permission on leads or cases for users assigned to a rule.

If your organization uses divisions, leads are assigned to the default division of the user or queue specified in this field. Cases inherit the division of the contact to which they are related. If no contact is specified, cases are assigned to the default global division.

Do Not Reassign Owner Specifies that the current owner on a lead or case will not be reassigned to the lead or case when it is updated.
Email Template Specifies the email template to use for the notification email that is automatically sent to the new owner. If you don’t specify an email template, then Salesforce doesn’t send a notification email. When a lead or case is assigned to a queue, the notification email is sent to the Queue Email address specified for the queue and all queue members.
Predefined Case Teams

Specifies the predefined case teams to add to a case. A case team is a group of people that work together to solve cases.

To select a predefined case team to add to the assignment rule, click the Lookup icon (Lookup icon). To add more predefined case teams, click Add Row to add a row in which you can specify a predefined case team.

Replace any existing predefined case teams on the case When a case matches the condition, any existing predefined ca

FYI @Jon_Wong @aileen.weiss 


@jean.nairon This is a great suggestion.  I too have used the workaround option that you describe above.   The only difference is that we had a leader that would assign out the CTAs ensuring that everyone got an equal number, and they were all assigned daily.  Incidentally, I’ve also used SF queues for the same purpose, and found it to be equally not perfect.  

Definitely worth solving for in some way I would say.  


Thank you @jean.nairon - we are just starting to discuss this concept and this may be helpful so we don’t have to reinvent the wheel here! 

 

 


You’re welcome @cnichols! Hope the workaround works for you. Please reach out if you have any questions about it.

Thanks for the additional insights @heather_hansen. I have seen manager assign things manually as well but there has to be a better way than having managers do it. 


@jean.nairon Thanks for posting this suggestion! Would be extremely beneficial to have something like a “support queue” implemented. 


Many companies are mixing digital touch and low touch as a way to more effectively manage the long tail of their customers. Through low touch, they need a way to easily manage a large amount of customers with very few CSMs. In this world, it’s not uncommon to see 1000 customers being managed by one CSM. This can often be quite challenging to manage for a CSM and it can often lead to an unbalanced workload across the team. 

The solve this, companies want to use Pooled CSM teams that work across the entire customer segment and aren’t assigned to a specific portfolio. Each CSM is dedicated to all accounts in the segment and would be assigned CTAs on a round-robin sequence based on their availability. This idea is similar to how support queues work in ticketing systems. There is no dedicated rep so the system identifies which person the ticket should next be assigned to. 

 

Current Workaround

I have previously implemented workarounds to solve for this use case but they aren’t very scalable. Here’s what we did:

  • We created a new user called CS Pool. We set up the email as a distribution list so that it would notify everyone in the pool whenever Gainsight sent a notification. 
  • We assigned all low touch accounts to this CSM Pool user.
  • All CTAs are automatically assigned to the CSM Pool user and we used reports, dashboards, and the Cockpit for CSMs to see when a new CTA was created. 
  • Once the CTA is created, it was up to the CSMs to pick it up and assign it to themselves. Managers were also able to triage the queue and assign CTAs to CSMs if needed.

For this solution, CSMs were self-assigned. If a CTA was still assigned to the CSM Pool user, it meant a CSM wasn’t working on it yet. We used this CSM assignment as the first step for the team to know if something was being worked on or not which helped us to better manage the queue. 

 

Improved Solution

The workaround above has many gaps. It is completely dependent on CSMs self-assigning themselves to tickets. This works ok for small teams but quickly becomes ineffective for teams of 5 or more CSMs. It also enables CSMs who want to grab all the CTAs and those who want to just sit on the side lines. 

 

An improved solution would be to have a similar concept of Salesforce’s Support Queues. Ideally, it would be great if we could create queues in Gainsight and assign CSMs to the queue. And then, ideally, we could use the rules engine to create assignment rules or order similar to how Salesforce uses assignment rules. 

In Salesforce’s assignment rule, you can define the following. I know it will likely be quite a bit of work to build this in GS but it would be helpful if we could at the very least be able to define the Order, Criteria, and User.

 

FIELD DESCRIPTION
Order

Sets the order in which the entry is processed in the rule, for example, 1, 2, 3.

Salesforce evaluates each entry in order and tries to match the criteria for the entry. When a match is found, Salesforce assigns the item and stops evaluating the rule entries for that item. If no match is found, the item is reassigned to either the default Web-to-Lead owner, the administrator doing a lead import, or the default case owner.

Criteria

Specifies conditions that the lead or case must match for it to be assigned.

Enter your rule criteria.

  • Choose criteria are met and select the filter criteria that a record must meet to trigger the rule.For example, set a case filter to Priority equals High if you want case records with the Priority field marked High to trigger the rule.

    If your organization uses multiple languages, enter filter values in your organization’s default language. You can add up to 25 filter criteria of up to 255 characters each.

    When you use picklists to specify filter criteria, the selected values are stored in the organization's default language. If you edit or clone existing filter criteria, first set the Default Language on the Company Information page to the same language that was used to set the original filter criteria. Otherwise, the filter criteria may not be evaluated as expected.

  • Choose formula evaluates to true and enter a formula that returns a value of “True” or “False.” Salesforce triggers the rule if the formula returns “True.” For example, the formula AND(ISCHANGED( Priority ), ISPICKVAL (Priority, "High") ) triggers a rule that changes the owner of a case when the Priority field is changed to High.

If your condition uses a custom field, the rule entry is deleted automatically if the custom field is deleted.

User

Specifies the user or queue that the lead or case is assigned to. Users specified here cannot be marked “inactive”, and they must have “Read” permission on leads or cases.

Note

NOTE You can't revoke the “Read” permission on leads or cases for users assigned to a rule.

If your organization uses divisions, leads are assigned to the default division of the user or queue specified in this field. Cases inherit the division of the contact to which they are related. If no contact is specified, cases are assigned to the default global division.

Do Not Reassign Owner Specifies that the current owner on a lead or case will not be reassigned to the lead or case when it is updated.
Email Template Specifies the email template to use for the notification email that is automatically sent to the new owner. If you don’t specify an email template, then Salesforce doesn’t send a notification email. When a lead or case is assigned to a queue, the notification email is sent to the Queue Email address specified for the queue and all queue members.
Predefined Case Teams

Specifies the predefined case teams to add to a case. A case team is a group of people that work together to solve cases.

To select a predefined case team to add to the assignment rule, click the Lookup icon (Lookup icon). To add more predefined case teams, click Add Row to add a row in which you can specify a predefined case team.

Replace any existing predefined case teams on the case When a case matches the condition, any existing predefined ca

@jean.nairon Thanks for your valuable time here. Its a great explanation. 


This will be big for us in 2021. We can handle the process via reports and a dashboard but to automate it would ensure scalability.


@jgalvan - feel free to reach out if you run into any challenges or aren’t show about some of the specifics for delivering this solution. 


This is amazing - and can be achieved in Salesforce.

 

I did a similar setup using Excel - I’ve used numbering for CTAs and the CSMs. 

Each CTA is assigned a number and CSMs are numbered from 0 to n.

Formula used,

“Number of the CTA mod Number of CSMs” → gives a value from 0 to n 

Based on the remainder obtained - CTAs are assigned to the respective numbered CSM.

Later I’ve used excel pivot for better visualization.

Even if the number of CTAs keeps increasing it’s handled automatically.

 

Downside:

If an existing CSM leaves the organization or a new CSM is added to the system, then the ordering and numbering would be changed. 

*Mathematically, it’s still feasible to handle the above case.

 

If a productized solution is developed with a robust algorithm, the tech-touch model could be easily scaled up.

 


Pooled CSM model is something we are looking to build in the next couple of quarters. We will reach out once we have completed our research and want to discuss our findings. Thank you.


This would be of great importance for us towards Q1 2022, as our CSM teams are about to take ownership over all active subscriptions instead of just the top tier. From my perspective, it is nearly the only way to cater to the perfect combination of low- & tech touch and I was surprised not to find such functionality. Thanks for putting in the time to sculpt the desired solution Jean. Hopefully, once acknowledged, it will also be made available for NXT instances and not only for SFDC Edition!

 


Under ConsiderationIN DEVELOPMENT

IN DEVELOPMENTImplemented

@mpatra  Perhaps linking to the release notes/documentation here would be helpful? This thread continue to show up first in search while documentation doesn’t.


Good point Alizee. We need to work to tie the 2 resources together.

Release announcements are published under > Product News > 

and >

https://support.gainsight.com/Gainsight_NXT/Release_Notes/2022/07_Gainsight_NXT_Release_Notes_6.34_October_2022#Pooled_Work_Assignment


Is this not available for CTAs triggered from JO Programs?


Hi @duncan.young ,

Pooled Work Assignment for CTAs created from JO was not a part of the MVP release. It is in our short-term roadmap.

Thanks,

Monica Patra


The pooled work assignment solves for the use case of having a a queue and pooled user - the way Salesforce has had for a long time. But it doesn’t actually round robin to a user automatically based on next in line. Does using @jean.nairon’s solution to round robin still work with the new user groups?


You’ve got me curious @Elana Cipin, how does it assign if it doesn’t assign round robin? I haven’t implemented the new CSM Pool feature yet.  


Hi @Elana Cipin ,

I am a bit curious about this statement. Would you be able to elaborate on how it doesn’t Round Robin automatically to the next user?

Thanks,

Monica Patra


Just a user error/learning curve on the new feature. When assigning through rules engine or mass edit of CTA, it does in fact round robin within the group 😅.

The main limitation for this feature release for me is the inability to assign to user group through JO.