Dear Vibhor Goel (Parse Multi Select Picklist)

Dear Vibhor Goel,

Thank you for being you, and specifically thank you for creating and sharing the Parse Multi Select Picklist action for Salesforce Flows.

Let me be honest with you straight from the top - I have not read much most ok basically all of the page that you wrote that I’m sure has excellent instructions and context and I can see from scrolling includes screenshots with additional notation written on them. What more could a person ask for in an internet resource?!?!?! THANK YOU for all of that, even if I didn’t use any of it.

But that is a compliment, a huge compliment to the action that you created. I installed it directly into my Production org and was able to use it without any instruction because it is a simple, straightforward, incredibly powerful tool.

Use Case: I mean, how can I pick just one?! I’ve used this action a few times now. My recent need for this was that I wanted my users to be able to create a list of contacts that met certain criteria, because users are choosing contacts for whom, in the following steps in the process, we will create new related records.

Solution: Use a screenflow screen that allows users to define the criteria using multi-select checkboxes, then be able to use those answers in order to filter which contact records we want in a collection.

Context: As explained on your page (ok, I went back to do a quick glance through the page for this, and it is there!), when a multi-select picklist or checkbox is used, the results come back as

[Choice 1; Choice 2; Choice 3]

When I am creating my GET records filters, I can use a wonderful little operator called “IN” - meaning filter for records where the field value IS IN - or, is equal to one of the values in - a collection of values. However, the result of the multi-select picklist or checkboxes as written above is not a collection of values, even if it looks suspiciously like is it. Nope! It is sort of like one value, as if you had written “Choice 1; Choice 2; Choice 3” all as one string of text. When we move on to our GET RECORDS action, we can’t write a filter that says only bring back the records where the value in field x IS IN one of these values.

However, if we could somehow, someway, by some miracle of coding, separate out each of these semi-colon-separated values into comma-separated values and add each of them individually to a collection variable (the kind of variable that can have multiple values in it), then we could use the “IN” operator.

It isn’t magic, is it really? I mean, you shared your actual source code (THANK YOU AGAIN) and it is less than 15 lines. 15 lines!! But those 15 lines made all the difference to me when you packaged them up into something that I could add to my Salesforce instance, and use in my flow as an ACTION step.

The Step-By-Step:

  1. Created a screen in my screenflow with 3 multi-select checkbox choice

2. Use 3 actions that are your wonderful Parse Multi-Select Choices action, one for each of the checkbox groups. These actions take in the results of the user choices in the checkboxes [Choice 1;Choice2;Choice3] and turned them into 3 separate values in a collection variable, so more like:

[Choice 1,

Choice 2,

Choice 3]

And look! All I had to do was choose the “Input Values” - which are the selections from the Checkbox choices on my screen from the previous step.

Side note: The word “choice” now looks ridiculous to me from using it over and over, and rhymes with “noice” and now I’m stuck on that.

3. I’m getting better at naming things in my flows, and each of these action steps got a name that I would understand when looking at them in other places ("ParseProgram”, “ParseSite” and “ParseGrade”), which is helpful because the next step is to do my GET RECORDS action, and use the results of the Parsed values as filters.

Note: I didn’t know going into this that I would want my field value on a record to be IN something called the “Text Collection from ParseProgram” - I just searched for the word Program when I was typing in the value for the filter, and it popped up as the most logical choice:

And that’s it!

In my next step I use a datatable to show all the records that were found based on the filters from the user and display them back to the user, so they can select from them which should get additional records created. That’s a whole other cool obsession that I hope to write about more at length.

I shudder to think of the workarounds I would have needed to use on my screens and in my flow actions had your code and Action not been available. But YOU my friend made it available and now we ALL benefit from it. So THANK YOU for being you, and especially for sharing this with the world. I will strive to follow in your example and share all that I make and know for others to use.

Peace,

Emily

Previous
Previous

Tech Loops of Despair (and how to exit them)

Next
Next

When Things Look The Same, But Are Different