Branch formula on selected table rows

I am working on a Skuid page to replace the SalesForce Add Campaign Members page. There is a search function on Contacts that returns results in a table component. One of the table model fields is a UI-only field with a list of available Campaign Member status values based on the Campaign record type, with a None option. When a user selects one or more Contacts (rows) in the table to add, I want to enforce that they also select status for each row (ie., it’s not blank/ none). How do I enforce that they have selected a value for just the rows that are checked when they click the Mass Action? Branch logic runs on every record that’s returned in the table and I want to run an action just on the selected rows for the Mass Action.

I appreciate any suggestions on how to do this.

My fallback option is to set a default value and not do a check.


  • Meredith

You are correct about the Branch action not working as expected on Mass Actions. I’ll get that into our improvement backlog.

You could do this as single row actions (instead of selecting mass action checkbox - they select the row action). Here the branching would work. This row action could also add the row to a holding model, where other values could be “mass updated” after all the contact selections are completed.

It’s a bit extra, but another option could be something like:

  1. In mass update action, update a ui-only field in the model called isSelected to true so you know which are selected
  2. Have a ui-only formula called needsStatus that says IF({{isSelected}} && ISBLANK({{Status}}),true,false)

Now, when the field is selected and status is blank, there’ll be a true value in the ui-only formula for those records. If you want to use it via a branch, you can use a MODELLOOKUP() to see if any records in the model are true. If they are, then you would want to stop and tell the user to update the Status for selected records.

The other trick is you’ll need to make sure to set isSelected back to false at the end of your Mass Action.

@Rob_Hatch @Matt_Davis These are interesting workarounds. I think I’ll stick with setting a default value for now since that’s the way SalesForce works and they’re used to it (and it’s less code for me to maintain). Thanks!

Less code to maintain is not a bad thing!!!

Let us know how it works out. We would love to see your final solution.

Right now, it looks like this. Really simple interface allowing a user to search by the most common fields (we have 3 email fields and I search all of them). So much easier to use than the SalesForce page. I just default the member status = Member to avoid the validation code. It’s the way SalesForce works, so no loss in functionality and users are used to it.
I also just created a new document view to replace the standard related list for attachments (which we still use primarily over Files). Again, the ability to do a simple text search and filtering are big wins. We love Skuid here at AEI!