Iā€™m proud to announce Release 2.3 of my open source project Mass Action Scheduler! Declaratively schedule Process Builder, Flows, Quick Actions, Email Alerts, Workflow Rules, and Apex to process records from Reports, List Views, SOQL queries, and Apex iterables.

This release delivers community-requested enhancements, improved SOQL query support, near real-time monitoring of batch jobs, fixes an intermittent timeout error, and more. This release truly is a great combination of the power of clicks and code.

In this blog post, I”ll cover the most exciting features introduced in the 2.3 and 2.2 releases. For details on all the changes and bug fixes, check out the release notes on the wiki.

Release 2.3 Highlights

Get Greater Insight to Job Runs with Real-Time Mass Action Logs

In prior versions of the app, the Mass Action Logs object only contained records that represented when a batch job failed. Aside from monitoring the Apex Jobs page in Setup, there was no insight into a Mass Action Configuration’s progress, success rate, and detailed information about the source records that were processed or failed.

In this version of the app, Mass Action Logs has received a significant overhaul to provide you more actionable information, including the job scope–a JSON serialization of the source records for an execution so you can see which records were processed or failed.

Mass Action Logs now have two record types: Child Log and Parent Log. A parent log is created when a Mass Action Configuration runs, either on demand or on a schedule. Exactly one parent log record should exist per batch job id. Status updates as the job runs, such as when the job starts, finishes, and whether each batch execution processed successfully or not, are logged as child logs related to the parent log.

Because the logs are created asynchronously, their autonumber names and create dates are not reliable for sorting logs chronologically of when they actually occurred. Sort the “Related Logs” related list of a parent log by the Timestamp field to sort child logs chronologically.

Read the release notes for more important details on how existing log data is upgraded to the new data model.

Know When Jobs Complete with Real-Time Notifications

In addition to improved logging, this version of the app provides a process named MAS: Mass Action Configuration that is active by default. When a configuration’s “Last Run” field values change, the process publishes a custom notification to let the configuration record’s owner know. To not receive these notifications, simply deactivate the process.

Query More Data with SOQL Query Sources

For SOQL source type, you can now select fields from lookup and master-detail relationship fields in SOQL queries and map them as inputs to target actions without the need of custom formula fields.

For example, a Contact query can include fields from its parent account and created by user, and then those fields can be mapped as inputs to the chosen action:

SELECT
  Id, FirstName, LastName, Email,
  Account.Name, Account.Type,
  CreatedBy.Alias
FROM Contact
ORDER BY Id

Choose List Views More Efficiently

For List View source type, prior versions of the app listed all objects in the org regardless if an object had a SOQL-compliant list view eligible for selection. This would lead to users choosing an object then unable to choose a list view. It also made the page load a bit slower and the user needed to scroll through many, many options.

In this version of the app, only objects that have SOQL-compliant list views are shown in the Object picklist, making it much easier for admins to choose the object and list view to use for their data source.

Release 2.2 Highlights

New Apex Action: Anonymous Block

In prior releases, your target actions had to be something that you had already created in your org. Such as a process, a flow, a workflow rule, a quick action, an email alert, or an invocable apex class. Since release 2.2, you can now execute anonymous apex — run your own logic without having to pre-create the action to execute in your org.

To use Apex actions, ensure the “Target Type” picklist of the “Mass Action Configuration” object has a picklist option with label and value of “Apex”.

  1. From Setup, click Object Manager then click Mass Action Configuration.
  2. Click Fields & Relationships then click Target Type.
  3. In the Values section, if Apex is not an option then click New, type Apex, then click Save.

Learn more about all the supported Actions in the wiki.

Get Notified When New Releases Are Available

The Mass Action Configuration page now checks to see if there is a newer version of the app available. If yes, then you see a message that says, “A new version is available. You’re on version X. Upgrade to version Y.”

To be immediately notified of new releases by email, set your GitHub “Watching” preference for the project repository to either Releases Only or Watching. The Release Only option will send you an email when I publish a new release on GitHub. The Watching option notifies you of activity on issues, such as bug reports and enhancement requests, too.

Next Steps

  • Install the Mass Action Scheduler app in your org (always test in a sandbox first).
  • Join the Mass Action Scheduler group on the Trailblazer Community.
  • Let me know in the comments, community group, or on Twitter (@DouglasCAyers) what you like (or don’t) about the app and how you’re using Mass Action Scheduler to automate business processes at your company.

Thank you all for your feedback and enthusiasm for this project, it means a lot to me!