If you have been in the Salesforce ecosystem for a while, you are probably well aware of the big debate of this particular field type – to use or not to use multi-select picklists in your Salesforce implementations. Even if you’re a new Salesforce Admin, considerations about out-of-the-box functionality are something you should always pay attention to, and decide after weighing up the pros and cons.
In this article, we’ll explore the limitations that come alongside the multi-select picklists, as well as formatting or quirks you should pay attention to.
Meet the Multi-Select Picklist
Simply put, this field type is a picklist that allows users to select multiple values from a predefined list when completing the field instead of just one. Sounds quite straightforward, doesn’t it?
While in some aspects multi-select picklist fields are very similar to picklists, the intricacies you could get yourself into are quite different, but more about that later on. After making a multi-select picklist field available, the users will be able to choose one or more values from the list and see their selection side by side. Box sizes will differ depending on the number of visible lines you have chosen when creating the field.
The most important thing to know about this type of field is that the selected values will be separated with a semicolon (;) and that is how they will be displayed everywhere, including the UI.
Consider the Limitations
Now that we have gone through what you can do with a multi-select picklist, let’s deep dive into what you can’t achieve with it.
Despite every out-of-the-box functionality having some expected limitations, Salesforce recently started displaying the multi-select limitations when creating a new field of this type by default – this is a great way to warn the Admin of what they’re getting themselves and their end users in to.
1. Reporting
The main concern I always share with users as soon as the idea of a multi-select picklist comes up is the reporting aspect, and how much of a headache it can become. In the same fashion that the data is presented in the UI, respectively with a semicolon separator, that’s exactly how it looks in Reports.
When trying to group by a multi-select picklist, you will notice that only field values that are exactly the same are grouped together – yes, this means the values and the separator are considered the value of the field, which is ultimately correct when multiple values are chosen.
In the example below, you will notice four separate groups, for four individual Accounts, as the selected values are different for each of them, despite some of them coinciding. This is confusing for a scenario where the users may need to see for example how many Accounts have “Value 5” selected.
Since grouping is not a possibility for this scenario, the next best thing is filters. The available options are includes, excludes, equals, and not equal to. The good news is that you can use multiple filters, perhaps even in combination with filter logic, to fine-tune the results.
The drawback on the other side is the fact that, unlike a filter for picklist values, the one for multi-select picklists is free text for you to enter the value, meaning that you have to know the exact values you need.
2. Field History Tracking
Another fan favorite regarding multi-select picklist considerations is its behavior with the field history tracking functionality. Out of the box, you can history track a maximum of 20 fields per object, and when your organization reaches a point where a key object has a couple hundred fields, it’s scarce as it is. If you make the decision to history track a field then, it better be worth it, right?
While you can enable history tracking on a multi-select picklist, and you will know who changed the value and also when the change happened, the Old Value and New Value fields will be blank.
Since this is something that might prove extremely helpful when using a multi-select picklist for critical information, make sure to upvote this idea with the hope that it will be prioritized sooner rather than later.
3. Data Import
Updating Salesforce records through imports is an action that all Salesforce Admins perform quite often, and the volume of data may vary from a few records to millions. While updating a field with one single value is straightforward enough, the challenge that multi-select picklists present in this regard is adding values to existing records.
When performing updates on multi-select picklists, it’s crucial to check the current values selected if any, otherwise data loss might happen. Due to the formatting with the semicolon separator, if a value is already present in the field, the new value should be added using the separator.
For example, if our TestMsp__c field on an Account already has “Value 5” selected, and we would like to also add through Data Loader “Value 2”, the value in the spreadsheet cell should be “Value 5;Value 2”. If the cell only contains “Value 2” then the field value will be overwritten with the contents of the cell, losing the previous value.
4. Formulas and Validations
If you decide to use a multi-select picklist and you’re looking forward to incorporating it in formulas, chances are you might have hit a roadblock along the way depending on the actual requirement. Luckily, these fields can be used in formulas and validation rules, but many functions are not compatible with this field type.
Your best friend in terms of a formula function to be used with multi-select picklists will be INCLUDES(). In a similar way to how ISPICKVAL() works for picklists, INCLUDES() will check if the values selected in a multi-select picklist contain a certain value specified in the formula.
Perhaps the most surprising limitation is that at this time multi-select picklists do not yet work with the TEXT() function like picklists do, resulting in an error when trying it out. While you can use the IF() function workaround, or a Flow Text Template resource to convert to text, it would be so much simpler for this to be done directly with a function.
If you would like to have this available as well, don’t forget to upvote the idea for this enhancement to hopefully be prioritized. Additionally, make sure to take a look at the list of functions both picklists and multi-select picklists can be used.
5. Automations
Last but not least, as you would have guessed, multi-select picklists can also be tricky when building automations, either through Apex or with Salesforce Flows. To effectively make use of them, the values should be parsed based on the semicolon separator.
One example when using multi-select picklists in a Salesforce Flow is that the available operators are a bit different from the ones available in Reports. While in Reports you can filter with includes as well as excludes, within the Flow operators you can only work with Contains. Since “does not Contain” is not an actual option, conditional logic should be used instead.
Summary
Working with multi-select picklists in Salesforce may be challenging, and possibly detrimental to your implementation in the long run due to the limitations we went through. While this field type may still prove useful in a handful of use cases, chances are your company’s requirements will outgrow it sooner rather than later, which is the moment when you might have to start considering a custom object alternative anyway.
Have you encountered any of these limitations or others when working with multi-select picklists in Salesforce? How did you get around them? Let us know in the comments below!
Comments: