UPDATE: A new version has been released.
Iām proud to announce Release 2.1 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 now, Apex iterables.
This release delivers community-requested enhancements, better report field mapping support, and a new Apex source type. This release truly is a great combination of the power of clicks and code. If you already have the app installed in your org, check out Upgrading to Release 2.1.
In this blog post, I’ll cover the most exciting new features of this release.
Query Data The Way You Want With New Apex Source Type
The Apex Source Type supports classes that implement Iterable<Map<String, Object>>
and is an advanced technique that gives you full control over the source data to process.
For example, your Apex class can make multiple SOQL queries, apply complex data filtering, or retrieve data from an external web service with http callouts. Check out the test project that provides read-to-deploy Apex iterable and Flow for the Sync External Data with Apex and Flow example.
Learn more about custom iterators in the Apex Developer Guide.

Use More Powerful Filters In Your SOQL Queries
Craft more powerful queries now that the SOQL Source Type supports equality operators like <
, <=
, >
, >=
, and literal and relative date filters.
For example,
SELECT Id FROM Account WHERE CreatedDate >= 2019-02-01T15:30:00Z
SELECT Id FROM Task WHERE ActivityDate = LAST_N_DAYS:30
SELECT Id FROM Opportunity WHERE CloseDate < YESTERDAY
True is True and False is False when Mapping Fields From Reports
Previously, some people would receive an error if their configuration used a Report Source Type and mapped checkbox, date, or currency fields. For example, an error log would include value not of required type: false
when mapping a checkbox field from a Report to a Flow input variable of type Boolean.
In this release, the correct underlying source values and data types of report columns map to their target fields as expected.
Assign Field Mappings Quicker With Sorted Options
Find and assign field mappings quicker and easier now that the source and target options are sorted alphabetically.

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!
Hi Doug
This cute app has saved me tons of time and provided the power to schedule the job on the fly.
I’ve implemented LiveMessage and need to send SMS text only during business hours. I was searching for an easy way to implement this business requirement.
Using PB, on record change event and criteria, I create a record in a staging object.
Defined a list view to filter the record that still meets the criteria
On scheduled time, using an invocable PB to create a record in the SMS Scheduler object that in turn sends the SMS.
The limitation is that the scheduler relies on the oAuth user time zone, still not clear on how to leverage the business hours associated with the record as this will also help take the holidays into account.
Really appreciate your contribution that really helped me.
LikeLiked by 1 person
Hi Senthil,
Thanks so much for the kind feedback!
When scheduling a configuration, if you use the “Scheduled” or “Custom” options where you pick the days/times or provide a cron expression, then the scheduled job does use time zone of the admin who is scheduling it (or perhaps defaults to the organization’s time zone).
Either way, the built-in scheduling options — as you noted — don’t take into consideration business hours. It’s just regular clock time.
However, you can still take into consideration business hours by implementing your own scheduler. Save your configuration with the “Manual” schedule option and then using your own scheduled/batch apex, invoke the MA_RunConfigInvocable class.
If you’ve installed the managed package (recommended) then you’ll need to include the namespace
dca_mass_action
when referring to the invocable class.Please refer to the wiki page Example: Schedule Mass Actions with Process Builder, Flow, or Apex more details.
Thanks
LikeLike
Hi Doug,
I just installed this application to my Dev org (Lightning), and got the following error messages when I go to MassActionConfiguration and click New. Not sure what the fix would be. Would love to use this application at our nonprofit as it fits a need we have to cover in keeping our employee bi-weekly newsletter list up to date automatically. The errors are
Error Getting Name Credentials
LC_API: Timeout trying to establish connection to iframe
Error Getting Mass Action Configuration
LC_API: Timeout trying to establish connection to iframe
Error Getting Object Describe
LC_API: Timeout trying to establish connection to iframe
LikeLiked by 1 person
Hi Glenn, thanks for using Mass Action Scheduler. Try Allowing IFraming of Visualforce Pages with Clickjack Protection. If you have clickjack protection enabled, then the domains must be whitelisted else the app’s Lightning components are not able to communicate with its iframed VF pages otherwise, leading to the timeouts.
LikeLike
Thanks, Doug! I’ll move forward with your directions. Thanks again, much appreciated.
Glenn
LikeLiked by 1 person
Great tool! Recommended on idea https://success.salesforce.com/ideaView?id=08730000000DfnxAAC
LikeLiked by 1 person
Thank you!
LikeLike