Context
In certain scenarios you may want to run Campaign and/or Donation Post Flows asynchronously. Doing so moves these Flows (and associated Extension Flows) out of the MoveData execution and into their own separate thread, which can provide SOQL relief in the form of:
MoveData Campaign Post and Donation Post Flows are not subject to the SOQL limits of the core transaction
Non-MoveData triggers which run against records created or updated by these flows are not subject to the SOQL limits of the core transaction
In a practical sense, this can provide SOQL relief where your processes are creating or updating records on the basis of Campaign, Campaign Member, or Opportunity records being created or updated.
Related Article
Disadvantages
We advise implementing asynchronous only when strictly necessary. This is because:
Asynchronous errors are unsupported by MoveData
Because triggers which fire on create / update are moved out of the MoveData execution, MoveData will not receive an error should one of these processes fail. This means your desired functions may not complete due to said error, and MoveData will not be able to alert you to this.
βLog information unavailable in MoveData Notification
For the same reason, you are unable to report on the outcome of asynchronous processes via the MoveData Execution Logs, which can make debugging and troubleshooting more difficult
βNo Dependencies
For the same reason, a subsequent MoveData Flow cannot depend on a change which is made in the Flow which has been set to Asynchronous, for that change will not have been made during the MoveData execution
Implementation
Create Configuration Flow
Create a new Autolaunched Flow
We will use a Flow Label of
[MoveData-Extension] Donation: Configuration
and Flow API Name ofMoveData_Donation_Configuration_Ext
Configure Configuration Flow
From the Toolbox, create the following resources:
Resource Type | Variable |
API Name | Keys |
Data Type | Text |
Allow multiple values (collection) | True |
Available for input | False |
Available for output | True |
Resource Type | Variable |
API Name | CampaignPostUpsertAsync |
Data Type | Boolean |
Allow multiple values (collection) | False |
Available for input | False |
Available for output | True |
Resource Type | Variable |
API Name | DonationPostUpsertAsync |
Data Type | Boolean |
Allow multiple values (collection) | False |
Available for input | False |
Available for output | True |
If you wish to set Campaign Post to asynchronous, perform the following assignment:
If you wish to set Donation Post to asynchronous, perform the following assignment:
Save and Activate your Flow
Register Configuration Flow in MetaData
Open the MoveData Pipeline Setting from Setup β Custom Metadata Types and click "Manage Records"
Click "New" to add a new entry
Register your Configuration Flow by adding the following information:
MoveData Pipeline Setting Name | DONATION_CONFIGURATION_EXT |
Label | PIPELINE_DONATION_CONFIGURATION |
Type | Flow |
Handler | MoveData_Donation_Configuration_Ext |
Order | 1 |
Disabled | False |
Review
Your Campaign and Donation Post Flows will now run asynchronously. You can now reprocess a failed notification to observe if doing so has bypassed your SOQL issue.