Skip to content

Note

This flow is self-documenting and should be viewed within Salesforce (Setup > Process Automations > Flows). This document is to support working through a visual flow. The flow commentary in this document was generated with AI assistance.

Overview#

Flow name: MoveData_Donation_Recurring_Post Label: [MoveData] Donation: Recurring - Post-Upsert Type: Auto-Launched Flow Template API version: 60.0 Status: Active

This flow executes post-processing operations following the creation or updating of recurring donation records, with a primary focus on generating campaign member entries for recurring donors connected to campaigns.

Purpose#

The flow performs post-upsert operations that:

  • Create campaign member records for recurring donors
  • Establish campaign member entries with appropriate status hierarchy
  • Support configurable campaign member status labels
  • Maintain status priority to prevent downgrading existing higher-priority statuses

Input variables#

Core recurring donation data#

Variable Type Required Description
Record npe03__Recurring_Donation__c Yes The processed recurring donation record
DonationCampaign Campaign SObject No Associated campaign for the donation
DonorContact Contact SObject No Contact linked to the donation

Campaign member configuration#

Variable Type Default Description
CampaignIdList String Collection - Campaign IDs for member creation
Config_CreateCampaignMembers Boolean true Enables/disables campaign member creation
Config_CampaignMemberDeleteExistingStatuses Boolean false Controls removal of existing statuses
Config_CampaignMemberLabelRecurringDonor String "Recurring Donor" Status label for recurring donors
Config_CampaignMemberLabelTeamLeader String "Team Leader" Status label for campaign leaders
Config_CampaignMemberLabelFundraiser String "Fundraiser" Status label for active fundraisers
Config_CampaignMemberLabelDonor String "Donor" Status label for one-time donors
Config_CampaignMemberLabelProspect String "Prospect" Status label for potential donors

Output variables#

Variable Type Description
Errors String[] Error collection
Logs MoveDataLogEntry[] Processing logs
LogsJSON String JSON representation of logs

Flow logic#

1. Prerequisites validation#

The flow validates essential conditions before proceeding:

  • Valid DonationCampaign with non-null ID
  • Valid DonorContact with non-null ID
  • Config_CreateCampaignMembers enabled

All three conditions must be satisfied; otherwise, processing terminates gracefully.

2. Campaign member status initialisation#

The InitialiseCampaignMemberComponent Apex action prepares the campaign's member status picklist values for assignment.

3. Status hierarchy establishment#

The flow constructs a prioritised status hierarchy (highest to lowest):

Priority Status Description
1 Team Leader Campaign organisers/leaders
2 Fundraiser Active campaign fundraisers
3 Recurring Donor Target status for this flow
4 Donor One-time contributors
5 Prospect Non-donors with donation potential

4. Campaign member record creation#

The CreateCampaignMemberComponentWithLogs Apex action creates campaign member records using intelligent status assignment:

  • Preserves higher-priority statuses (Team Leader, Fundraiser)
  • Upgrades lower-priority statuses (Donor, Prospect) to "Recurring Donor"
  • Assigns "Recurring Donor" status when no existing status exists

Error handling#

The flow implements graceful termination for:

  • Missing campaign association
  • Missing contact association
  • Disabled campaign member feature

Dependencies#

  • InitialiseCampaignMemberComponent (Apex action)
  • CreateCampaignMemberComponentWithLogs (Apex action)
Ask MoveData AI
Ask about setup, configuration, or troubleshooting
How can I help you with MoveData today?