How to categorize records in Salesforce

Ok, categorize is probably not the best word, but what else is it? Almost every client wants me to separate/categorize/tag their records, especially accounts and contacts, based on their type (at least).

  • companies: partner, supplier, potential client, existing client, churned client;
  • non-profits: donor, volunteer, patient, major donor.

And the question is always – how to do it? There are plenty of ways and each has something on its own and I’m always hesitant to say which one is the best. So let’s cover them all.

Record types to your rescue

I start with this one as I want to get it out of the table as soon as possible, as it isn’t the right approach to me. Samantha already wrote a great blog post why it is a wrong idea.

Why not to use them:

  • not possible to have record in multiple of them and you can bet, there will be a lot of records who are donor & volunteer & patient or partner & client and so on;
  • the inline view editing sudently become a pain.

(Multi) picklist field

This one is pretty easy to achieve, even though there are people who really hate multi picklist fields. Admin will control the values people can use (which might be taken as positive and negative thing as well) and potentially you can add an automation, which will be setting the statuses automatically.

Sometimes I have customer who wants to have it in multiple levels – for volunteers they want to track what they are able to do – writing, photography, video, … and that’s not possible with multi picklist fields as a controlling field.

It is easy to report on specific category, but you cannot create one report showing you counts of all categories.


Similar to previous, instead of one picklist field you create a checkbox for every value.

Obviously it works only when there is just a few of them, unless you want to have your page layout full of checkboxes. They are easier for the automation to set/reset them and when reporting you can easily get sums for each category.

Still needs to be set by admin, who controls the values.


They have been missing in Lightning for a long time, but just last year (I believe) finally became useful again.

Topic in Salesforce

You enable them for object, add a component on Lighting Page (see on the picture on the right) and good to go. Start typing in and it will whisper you all the relevant topics, users can add a new one and when you click on specific topic you will see all the records with the same topic across all objects plus you are able to add a description of the tag.

You can also use them when filtering records in reports or list views.

Two main downsides to me:

  • you cannot control adding new topics (so users easily add a topic with typo);
  • you cannot see all the topics and select from them, meaning you might forgot some crucial one or just invent a new one with slightly different name.


As Topics weren’t really useful in Lightning for a long time, I falled back to campaigns a lot of times (when we needed the categorization for contacts).

They are so flexible, you can put them in hierarchy, you can see them on the record, users can create a new one and you can still check which are in the system.

Downside might be that they are showing next to other campaigns in the related list, but with proper naming or utilizing the new Dynamic Related Lists it is easy to separate them into multiple related lists as well.

Do you need any of those?

Actually I should start with this question.

I understand that it is great to see immediately who the account/contact is, what are their status/relation to our company/organization.

At the same time I really hate when non-profit organization tell me „when a new transaction arrive we need to mark the contact as donor“, because then donor who will be anyone who donated even a long time ago. And that is not what you should want to achieve, your communication should be really (laser) focused on relevant people and sending the same emails to someone who donated a long time ago and had no interested in your organization anymore is not the best idea.

So when I’m creating automation I usually propose to reset the flags as well after some time and when doing segmentation for campaign don’t build them on these „helping“ flags but go with more relevant data such as opportunities.

And skipping automation all together and hope that people will set them manually – not really, it might work for values which cannot really be taken from anything else (such as „volunteer“) but if people feel it should be derived from something they won’t be setting them up anyway.

So which one?

I don’t have the answer, each approach has its benefit and downside and it all depends on your specific usecase.

What do you use and how it works? Will you share with me?

Leave a Reply