How to check off records on a list view and pass them all to a Flow (button)

Submit multiple records to a flow: https://bigassforce.com/flow-list-buttons

Within the flow, 'Get' the records with ids in the collection variable: https://unofficialsf.com/easy-in-filters-in-flow-with-the-filter-query-flow-action/

I just tried this out for the first time. It works great, the one caveat I found is that the flow does not launch in a modal, instead, it replaces the list view you are looking at. This means that you will need to manually set your flow's finish location or it will loop back to the beginning of the flow when done.

You can set the flow return url via retUrl in your custom button (to hardcode a specific URL), or via a Flow Action (to navigate to a record/url/related list). Unofficialsf.com has a few installable actions that do this nicely.

If anyone figures out how to set the retUrl to be the list view the user was on, PLEASE let @Solo Admin know how!

Here is a screenshot of a basic flow set up with this method. This flow updates the Owner of the selected Contacts. 

Change-Owner-flow.png

Note that your input var must be called 'ids' (case sensitive) and should be a Text Collection variable. The Get Records element gets ALL the records of your object, and then the Apex Action (see the unofficialsf link above) will input that collection and output a new collection which contains just the records that were selected, by setting 'targetValuesStringCollection' to {!ids}

The Loop goes through that second Collection, updates the ownerId on the record, and then adds the current record to a third Collection, which is used to Update Records at the end.