This is a carryover from https://community.gainsight.com/cs-ideas-21/rule-results-different-from-preview-data-30237 which is related, but not exactly the same. Felt this warranted its own post (and I couldn’t find one already out there)
When comparing a source SFDC picklist to an GS dropdown list in Rules Engine filters, equivalency is not correctly established because the SFDC picklist renders as the actual value but the GS dropdown renders as the GSID. This results in erroneous filtering.
One (of several) use case: since Gainsight doesn’t have a native way of keeping Contacts in sync with Person records (in the reverse direction) we have a rule that pulls changes to Person records and syncs them back to Salesforce. And I only want them to update the Contact if the values on the Person record differ from the Contact record.
We have 5 picklists on the SF object - 2 of them map to Dropdown lists in GS and the other 3 map to strings - that we need to keep in sync. Trying to compare the values between the 5 fields in both locations isn’t possible in either dataset filters or action filters.
The suggestion (from the previously referenced post) was to create a pseudo-string field using the Case Expression formula in the Transformation task. While this (mostly) works, it’s very cumbersome.
For my example, I end up having to create SEVEN virtual fields (4 for the SF Picklist → GS Dropdown fields - because BOTH sides have to be a string - and 3 for the SF Picklist -> GSString fields - because the target fields are already strings)
While this would work, the Case Expression is limited to 10 fields, and one of my picklist has 14 options - so I’m kinda screwed on that one.
Some folks may say “Just have the CSMs update the Contact record” - but we have security restrictions on the Contact record - also it kind of defeats the purpose of having Gainsight be the one-stop shop.
This is a sizeable gap that causes frustrating administrative pains - hoping it can get prioritized.