Out-of-the-Box Alternatives for Creating Multi-Select Picklists
One question that is often asked at the beginning of a CRM Online implementation is how to create a multi-select picklist - an picklist attribute on a form in which you can select more than one value. Unfortunately, multi-select picklists are not available in CRM 4.0 but there are still ways to configure your org to represent this feature. In this post I'll present two options for multi-select picklists that you can create out-of-the-box, no programming required.
Scenario: You need to track one or many hobbies for various contacts.
Option 1:
Create custom attributes for each hobby type: Cooking, Baseball, Soccer, Knitting, etc. Make these attributes a bit type. Settings -> Customization -> Customize Entities -> Contact -> Attributes -> New
Next, open up the contact form and create a new section for your hobbies, and add the fields to this section. Settings -> Customization -> Customize Entities -> Contact -> Forms and Views -> Form. In this example I grouped Hobbies into its own tab:
At this point you can change the bit type to a checkbox or list - whatever you like. Do this by selecting the field on the form -> Change Properties -> Formatting tab.
Advantages of Option 1: This allows your users to easily click through to select various hobbies. It's also very easy to configure. Finally, it's easy to report on these attributes.
Disadvantages of Option 1: If you have a lot of values, this may take up too much screen real estate and actually make it more difficult for your users to navigate. Another consideration to make is how many changes or additions you'll need to make to this list.
Option 2:
Create a custom entity called Hobbies and create a relationship to the Contact. Settings -> Customization - Customize Entities -> New. The form will be simple - just include the name of the hobby and any other details you need to track. In my example I changed the primary attribute of the hobby from "Name" to "Hobby Name". Save all changes.
Next, create the relationship to Contacts as a N:N Relationship. Save, and then publish your changes to the Hobby entity.
Next, set the security roles so that users are only able to add new Hobbies to the Contact, not create new ones. (by default, all privileges for new custom entities are set to "none")This is assuming that you are limiting the create privilege to admins only. (Settings -> Administration -> Security Roles)
Next, create some hobbies.
Now these hobbies are available to users on the Contact form. Alternately you can add multiple contacts to any one hobby at a time.
You can take this one step further by adding the Hobby entity to an IFrame within the Contact form. Eric Boocock posted excellent Instructions for doing this.
Advantages of Option 2: This gives you the greatest flexibility to add new values and track the data rolling up to one Hobby table. It also gives your users some screen real estate back if you have many different types of hobbies. Querying the data is straightforward.
Disadvantages of Option 2: If you've gone through these steps just now you know that this is a more time-consuming process. You should also take caution when changing any of the records in this entity as it will change your data.
Bottom Line: If you have a lot of values in your multi-select picklist you are best served by creating a custom entity and a relationship to its parent record. However, if ease of configuration and ease of use is your cup of tea, you can always create a few different bit entities to add to your form.
Comments
Anonymous
January 09, 2009
The comment has been removedAnonymous
January 09, 2009
One question that is often asked at the beginning of a CRM Online implementation is how to create a multiAnonymous
May 16, 2011
Hi, I am wondering if this is possible in Dynamics CRM 2011 or not. Can you elaborate a lil bit more how to to implement this in CRM 2011. Thanks.Anonymous
October 13, 2013
How do you then import into this new hobby entity the contacts and what hobbies they have assigned?Anonymous
July 21, 2015
My company's client is using option 2 to implement several multi-select fields as part of leads in their CRM (Dynamics 2013). My company has designed the client's website and is responsible for integrating the website with the CRM using the Dynamics API. During testing it was discovered that leads sent from the website to the CRM via the API are causing duplicate options to be created. So if use the example you have provided to illustrate the issue - every time a lead is sent from the website new hobbies with the same names are being added to Dynamics. The client says it does not happen when they manually create a lead however there is one big difference in how they set the multi-select fields; the client first creates the lead and fills out everything but the multi-select fields (which are not available for setting at the time), the client then saves the lead, re-opens it and then sets the multi-select fields. This issue seems like some kind of security/configuration issue with the account used to send leads from the website. Has this problem been reported in the past and what is the solution?