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”.
- From Setup, click Object Manager then click Mass Action Configuration.
- Click Fields & Relationships then click Target Type.
- In the Values section, if
Apex
is not an option then click New, typeApex
, 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!
Doug,
Is it possible to use your product to launch a Salesforce batch class? If so, what are the configurations steps?
Regards,
Dave
LikeLiked by 1 person
Hi David, Mass Action Schedulerβs intent is to abstract batch code from users so that they can focus on the actions they want to happen.
You could refactor a current batch solution to use Mass Action Scheduler by scheduling what processes or flows or other updates you want to happen on source records.
Another option is to use the Anonymous Apex action to enqueue an Queueable job.
https://github.com/douglascayers-org/sfdx-mass-action-scheduler/wiki/Anonymous-Apex-Actions
https://salesforce.stackexchange.com/questions/57367/can-queueable-solve-future-method-cannot-be-called-from-a-future-or-batch-metho/57393#57393
LikeLike
Hi Doug!
Thanks so much for this wonderful tool. I’m hoping you might help me. I’m trying to use your tool. I’ve built a report that is a list of customers we want to contact. I’ve then configured a mass action process to invoke a process builder flow.
This flow uses the Twilio for Salesforce plugin to send SMS’s to the customers in my report.
Here’s the question. I’m not sure what “batch size” is in this instance and how to handle it. The report routinely has ~800 customers in it. I’m looking to schedule this mass action to occur once weekly. What does batch limit have to do with contact these (dynamic) ~800 customers on average in my report.
If it’s only contacting the first 200 (as seems to be the maximum batch size), how can I “work around” this?
Thanks so much in advance. This tool seems to be wonderful!
LikeLike