Search
  • Lauren O'Brien

Say Farewell to Multi-Select Picklists and Hello to Custom Objects

If you worked with Salesforce, in an administrative capacity, for any length of time then you have probably realized that multi-select picklist fields are the absolute worst. Seriously. The worst. If you have been lucky enough to never encounter the horrors of a multi-select picklist field, here are a few, short, reasons why they are terrible -

  • Reporting is a pain as you often have to rely on "contains" versus "equal to" which is the standard

  • Several, crucial, limitations when trying to use or reference in formulas

  • Difficult to mass update as you can wipe out existing value(s) when trying to add another selection

If you want a more detailed breakdown of the limitations, and struggles, around multi-select picklist fields in Salesforce would recommend this blog post from Sourav Dutta.


When replacing simple multi-select picklist fields, my recommendation would be to create a checkbox field per option in the picklist but in this blog want to focus on the cases where more information.


Let's say you have a multi-select picklist field on the Account object that indicates what service(s) they have purchased. You could create checkbox fields for each service but if we create a custom object for products we can now add more fields and track data such as purchase date, status (has it been implemented or not), and cancellation date. Creating a custom object for this purpose is fairly straight forward so the basics include -

  • Go into Setup -> Object Manager -> Create -> Custom Object

  • Enter the basics for your custom object (Label, Object Name, etc.) and create the custom object

  • Create a Lookup Relationship or Master-Detail Relationship field on the custom object that looks up to the object where the multi-select picklist existed

  • Add other fields as needed

  • Navigate to the original object -> Page Layouts and ensure that for each applicable layout you have added the Related List for the newly created custom object

If we followed these steps for the use case described above, the Account object would now have a related list labeled "Services" where a user could see all the applicable service(s) for the Account and also access additional information such as the purchase date and if the service is live for the Account or not.


As an admin, you are now able to create Validation Rules, Workflow Rules, and formula fields that are fully capable and not limited by certain functions not supporting multi-select picklist fields. You can also create reports using standard filters (though, keep in mind, you may have to use a report type of "Accounts with Services" instead of the standard Account report type) and stack values in charts and dashboard components. You can also use tools like DataLoader to mass create and/or update your custom objects without worrying about wiping out values when trying to add additional.


What are your multi-select picklist horror stories?

891 views0 comments