Limitations of Multi-Select Picklists in Salesforce

Salesforce’s multi-select picklist (MSP) seems like a great field type. Sometimes it seems like the Best Option to choose as Data type since Users can select multiple options. But recently in a project, while implementing the same, I have found that there are lots of limitations:

  1. Reports & Dashboards:

Multi-select picklists create reporting headaches.

i. Filtering Picklist values:

The first challenge is if we want to pull a report or filter using a multi-select picklist value, we must be aware of the difference between using the operator “equals” which will pull up records with only that single MSP value and using “contains” or “includes” as the operator which will pull all records which contain the value regardless if there are additional values included in the field.

ii. Data Grouping:

Another reporting challenge is by the nature, MSPs don’t lend themselves to group the data by values.

For Example, If you’ve selected X, Y and Z values in one record, Y and W in another, and Z in a third, you will get 3 different groupings, i.e. one for XYZ, one for YW and the other for Z. It is difficult to find how many records have the value Y.

iii. Dashboard Representation:

Since there are challenges in Data Grouping, we can’t use most of the dashboard components to represent the data. It is a complicated mess to get real meaning out of the data.

2. Dependent Picklist:

We also cannot use MSPs as controlling fields for dependent picklist fields. They can only be used as the dependent field.

3. Workflow Field Update:

We can’t update a value in the MSP using a workflow field update.

4. Formula Field:

There are very limited scopes of formulae, we can use MSPs. However this post outlines how you can do it but it sure isn’t pretty or fun.

5. Data Merging:

Multi-select picklists also pose challenges while merging records in Salesforce. If we merge records with MSP fields using the standard Salesforce merge tool, the MSP values in the master record are the only ones retained unless we are using a specialized data merge tool such as DemandTools,  where we can specify that the values from the non-master records should be merged with those from the master.

If we want to merge the data into a document,  we to have to do a lot of reformatting to get it to look right because the values will come out separated by a “;”.

6. Data Importing

Importing data to update records with MSPs also is tricky. If we update records with MSPs with a standard data tool, it will simply overwrite all existing values in the MSP with the new value(s) being brought in. With a tool like DemandTools we can specify that we would like to merge the values being imported with those already existing in the system.

Alternate Solution:

Checkbox fields can be a good alternative for this, which can also be Controlling Field in case of Field Dependency. Checkbox fields unfortunately have drawbacks as well. If there are lots of choices, users have to scroll so much to get through them. Also checkboxes have limitations for reporting since they don’t allow us to group all choices into one category to report on.

Have you ever faced any other limitations while working on MSP? Did you find any alternate solution? Please feel free to comment below. I would like to hear from you.

Delete or Deactivate Record Types via URL Hacking

Have you ever encountered this Error while deleting or deactivating a Record Type?


While Creating or Assigning Record Types, sometimes the Salesforce Administrators set that as Default Record Type for some profiles which actually don’t have access to that Object.

Record Type Assignment

Certain Profiles like the Chatter Only User, Chatter Free User etc can be assigned Record Types but cannot be removed by clicking an edit link in the Record Type Section of the Profile. This prevents Record Types from being deleted. In order to remove the record type from the Profile, a URL Hack must be performed.
 Solution Steps:
1. First of all, the Enable Enhanced Profile User Interface checkbox in the User Interface must be deselected:
Setup> Customize> User Interface> Setup Section> Deselect  Enable Enhanced Profile User Interface> Save

2. Now, Go to Setup> Manage Users> Profiles> System Administrator> Navigate to Record Types> Click the Edit Link on the Object (whose Record Type you want to Deactivate/Delete)

3. Copy the URL from the address bar on your browser and paste it into Notepad. It will be something like this:
4. Go to Setup> Manage Users> Profiles> Chatter Free User (the Profile on which it is set as Default Record Type)
Copy the 15 digit Salesforce Id from the URL in the Address bar of your Browser:
5. Now you have to replace the id in the Edit Record Type Settings Account Page ( the first id number right after the “jsp?id=” in the URL ) with the Id from the Chatter Free User.
Should now look like this:
Basically xxxxxxxxxxxxxxx is replaced with yyyyyyyyyyyyyyy.
6. Now take the modified URL and place it in the Address bar of your browser and hit enter.
7. You will now be able to remove the value by highlighting it and selecting remove. Switch the Default record type to whatever you like and hit save.
8. Repeat the above steps for other Profiles in which it is necessary (if there is any). Then you will be able to Deactivate and Delete the Record Types.
Let me know in the comments below if you have accomplished this in a different manner.

Cleared Salesforce Administrator Certification- Sharing Experience

Today I have cleared Salesforce Administrator Certification (ADM 201).


If you are also planning to do the same, I would suggest you to download the study guide from here and follow the same. Find each and every topic on Salesforce Help and watch salesforce training videos.

Secondly, set up an Admin Playground or a Developer Edition org and try it out.  You will learn how these features work much better that way. You can also learn about Salesforce features using Trailhead.

Thirdly, I would recommend to focus all your effort for the next few days on Relationship types in Salesforce, Workflow Rule considerations and Sharing/Security in Salesforce. These topics will cover almost 50% of the exam questions.

Don’t miss to watch the video series  Who Sees What


  • Read every topics of Study Guide minutely from Salesforce help & training.
  • Follow the study guide, it’s quite enough.
  • If you don’t know the right answer, no worries; search for the wrong one, it will clear off your confusion.
  • Practice these things in Trailhead. It is the best way for preparation of the certification exams. Keep trailing.

Wish you Good Luck!

Global Picklists: New in the Spring ‘16 Salesforce Release

One of the most interesting features in Salesforce Spring’16 Release is Global Picklist, i.e the ability to create a picklist which can be shared across objects and restrict the picklists to only the specified values. This is very useful feature if multiple picklists have same values and need to be in synced all the time.

Why is Global picklist used?

Global picklists allow administrators to create a centrally defined list of values, which can be accessed by any custom picklist fields created on standard as well as custom objects, and with options for adding, replacing or deleting values.  This feature is available in both Lightning Experience and Salesforce Classic.

How do they work?

Suppose in any Salesforce Org, multiple objects are there which are related to Payment. The mode of payment needs to be tracked on Account, Order as well as a Custom object, named Payment. To avoid creating same picklist every time, a Global Picklist is recommended.

It can be created from Set Up> Create> Picklists.

Global Picklist Creation

Click on “New” & Create.

Global Picklist Create

Enter Picklist Values.

Global Picklist Values

Now is the time to reuse this effort.

Now Create a Custom Picklist on some Object, like Order. Select “Use global picklist definition” and select the already created picklist field from the drop-down and add this field to the page layout.

Global Picklist Definition

Now create a new record on Order, wherein we can select any of the picklist values defined for the global picklist created before. This way, the picklist values will always be in sync on multiple objects, and can be controlled from just one place.

Order form

Pros & Cons:

Global picklist is a restricted picklist by default. Only a Salesforce Administrator can add or modify its values; users can’t add unapproved values, even through the API.

As global picklists are always restricted, picklist data stays clean because users can’t add erroneous or redundant values through the API.

Lead vs Opportunity in Salesforce

As a CRM Consultant, I have seen a lot of companies, even their Sales and Marketing Teams are mingled up in the confusion that what exactly is the difference between Lead and Opportunity. There is a thin-line difference between these two, but big enough to explain.

Leads in Salesforce are those people, whom you are interested in working with, but you don’t know if they are interested in working with you.

Leads may come from a purchase list, website enquiry form, some referral from happy customers, through information exchanges with partner companies etc. In either case, you need to communicate with the Lead to find out whether are interested into your product or service.

Lead Source

Salesforce provides lead management and lead tracking system, which uses a lead qualification process to track if your lead  is qualified (could be customer) or unqualified (won’t be a customer).

The default Salesforce lead qualification process is:
Open- Not Contacted (the default lead tracking stage)
Working – Contacted
Closed- Converted
Closed – Not Converted

This information is tracked under the Lead Status field in Lead object.

Lead Status is made “Closed-Not Converted”, when the Lead has no possibility to do business within the period of time you have in mind. Lead Status is made “Closed-Converted”, then you have made the assessment that there is some interest on their part in doing business with you, so you want to start your sales process. You then Convert the Lead.


While it comes to the turn for opportunity, when should you convert the Lead to an opportunity?

First of all, converting the Lead into opportunity mainly depends on the Sales person. You can covert the Lead soon after it raises its hands and shows some interest in doing business.

Secondly, you can convert the Lead just after both sides have agreed for an official meeting.

Thirdly, who are absolutely interested in buying or doing business with you and agreed on the pricing. They are the ultimate indicator of interest in this area and are ready to be converted into opportunity.

When a Lead is “Converted”, it means that the Lead becomes a Contact (Person),  an Account (Company) and an Opportunity (Potential Sale) in Salesforce CRM.

Lead Conversion

It is possible for a Lead to become a Contact and an Account without becoming an Opportunity, such as when they become part of your network but you don’t plan to sell to them. But for our example, if we want to generate revenue, a Lead becomes an Opportunity, as well as a Contact and an Account.

Salesforce acts as a Contact Management System and Sales Lead Tracking System, until a lead is Converted into an Opportunity. Once a lead is converted into an Opportunity, then Salesforce becomes a full sales management software solution.

Within the Opportunity object in Salesforce, there is a field ‘Stage’, which stores the concerned phases to close the deal.  When you close the deal and get the business, the opportunity stage becomes “Closed–Won”.

An Overview of Salesforce Wave & The Analytics Cloud

In Dreamforce’14, Salesforce has launched Wave, its analytics cloud, in a move that broadens  its platform for other business use cases and applications designed to make data fun and intuitive for the masses.
Wave, the Salesforce Analytics Cloud, is aimed at the broader subset of business users beyond sales and marketing professionals. Salesforce’s analytics efforts are designed to be mobile first with the ability to pluck data from any source.
 Wave Analytics
The Analytics Cloud is new age cloud BI (Business Intelligence) tool built on the Wave platform. There has been a lot of buzz around this new product since its release, but many of the users are not aware of  how this product fits into the existing Salesforce product suite.

Wave vs Analytics Cloud

You may have heard both of these terms being used interchangeably when people have talked about this new product, but they are actually very different.

The Analytics Cloud is a Salesforce product, like  Sales & Service Cloud, you can buy this product and start using it out of the box. However, Wave is the platform on which the Analytics Cloud is built on. This relationship might seem familiar, and that’s because it’s exactly the same as and

Analytics Cloud vs Reports & Dashboards

One thought may come to our mind that, “Why the Analytics Cloud is needed when Reports & Dashboards provide graphical representations?” Depending on the type of business you work for, this statement may be true,  not all companies have a need for the Analytics Cloud. However, for the ones that do, it will be down to limitations of Salesforce Reports & Dashboards.

Report & Dashboards are excellent for viewing quick real time operational data to get a snapshot of what is happening inside your CRM.  But to determine trends from extremely large sets of data can become problematic to process millions of rows. One of the main attractions of the Analytics Cloud and other BI tools is the speed they can process large amounts of data.
Speed and processing power becomes even more apparent when you realise that Analytics Cloud can process data from external systems as well.  It can grab data from ETL, CSV upload (also from iOS devices) and of course from Salesforce CRM.

Wave Analytics2

Report & Dashboard can only historically report on data over 90 days, and the graphs and visual representations of data is far superior in the Analytics Cloud.
For more information around Analytics Cloud vs Report & Dashboard, please check out this comparison complied by Salesforce.

Wave Analytics Components


A fancy word for folder. An app contains a group of datasets, lenses and dashboards that you can share with other users. By default, you get the following apps:

My Private App
This app is visible to you and only you. You can’t share My Private App with anyone.
Shared App
This app is the complement of My Private App. The Shared App is accessible by anyone who has access to Wave. Although it’s accessible by everyone, you can still ensure stricter security on datasets through row-level security, as you can learn in the Wave Analytics Security Implementation Guide.
Wave Analytics3



      A curated set of charts, metrics, and tables that gives you an interactive view of your business data. The Wave dashboard is a combination of reports (known as “Lenses”) with possible filters.


        This is basically a single report based off a dataset in Analytics Cloud.


The name says it all — a dataset is simply a set of data. For example, it could be a list of campaigns or a list of users. You also might have an augmented dataset, which basically combines two datasets into one (e.g. campaign member and campaign information).

The data used in these datasets can enter Analytics Cloud through any of three channels:

      1. A built-in standard Salesforce connector.
      2. A manually uploaded CSV file.
      3. Custom integrations through a middleware layer, like  Informatica.

Wave Analytics4

Also check here is the limits of Wave Analytics.

Excited to Learn?

To learn Wave Analytics, I would recommend you to go through these trails.

Keep Trailing, Keep Learning.