Skip to content

This reference documents the custom metadata entries (movedata__Movedata_Pipeline__mdt) that configure the Donation Pipeline for NPSP Fundraising & Donations implementations. Each entry controls a specific aspect of how MoveData processes donation notifications into Salesforce records using the Nonprofit Success Pack (NPSP) data model.

Extension configuration#

Extension registration#

The NPSP Fundraising & Donations Extension is registered through a single core metadata entry that identifies the extension namespace.

Extension namespace#

Metadata entry: EXTENSION_DONATION_NAMESPACE

Field Value
Label EXTENSION_DONATION_NAMESPACE
Handler md_npsp_pack
Order 5
Type Config

Purpose: Identifies the package namespace for all NPSP Extension components. This namespace prefix (md_npsp_pack) is used throughout the configuration to reference flows, fieldsets, and other extension resources.

No extension mode entry required

Unlike the Nonprofit Cloud Extension, the NPSP Extension does not require a separate mode entry (such as EXTENSION_DONATION_NPC). The NPSP data model (Opportunity, Contact, npe03__Recurring_Donation__c) is the default processing model for the Donation Pipeline, so no mode switch is necessary.

Pipeline schema registration#

Donation schema#

Metadata entry: movedata__Movedata_Schema_Map__mdt.donation

Field Value
MasterLabel donation
Handler MoveDataDonationPipeline
Version 1
Type Apex

Purpose: Registers the Donation Pipeline to process notifications using the donation schema. This is the primary entry point that routes donation notifications to the multi-stage processing engine. When a donation notification arrives, MoveData queries this metadata to identify and instantiate the MoveDataDonationPipeline class.

Donation pipeline only

The NPSP Extension registers the Donation Pipeline only. It does not include a Commerce Pipeline. If you need commerce processing alongside NPSP, install the Commerce Extension separately.


Donation pipeline configuration#

The Donation Pipeline processes notifications through five sequential stages. Each stage handles a specific Salesforce object type, and each stage is configured through metadata entries that control its behaviour.

Stage 1: Account processing#

The Account stage creates or updates Account records for organisational donors, matched gift companies, and fundraising organisations. In NPSP implementations, accounts follow the standard Salesforce account model with household accounts managed by the Nonprofit Success Pack.

Account disable#

Metadata entry: DONATION_ACCOUNT_DISABLE

Field Value
Label PIPELINE_DONATION_ACCOUNT_DISABLE
Handler false
Order 5
Type Config

Purpose: Controls whether account processing is enabled. Set to false by default, meaning account processing is active. Change to true to bypass account creation and updates entirely.

Account fieldset#

Metadata entry: DONATION_ACCOUNT_FIELDSET_001

Field Value
Label PIPELINE_DONATION_ACCOUNT_FIELDSET
Handler md_npsp_pack__MoveData_Donation_Account_Fieldset
Type Fieldset

Purpose: Specifies the fieldset that defines which Account fields should be loaded when existing account records are located during duplicate matching. This ensures all necessary fields are available for mapping and comparison operations. If you reference a field in a flow or decision and depend on its data, you need to ensure it has been preloaded through this fieldset.

Account platform key#

Metadata entry: DONATION_ACCOUNT_PLATFORM_KEY_001

Field Value
Label PIPELINE_DONATION_ACCOUNT_PLATFORM_KEY
Handler md_npsp_pack.MoveData_Donation_Account_Key
Order 5
Type Flow

Purpose: Lightning Flow that generates the unique platform identifier used to track account records across systems. This key enables reliable duplicate detection and maintains data lineage from fundraising platforms.

Flow: md_npsp_pack.MoveData_Donation_Account_Key

Account duplicate detection#

Metadata entry: DONATION_ACCOUNT_DUPLICATE_001

Field Value
Label PIPELINE_DONATION_ACCOUNT_DUPLICATE
Handler md_npsp_pack.MoveData_Donation_Account_Duplicate
Order 5
Type Flow

Purpose: Lightning Flow that implements duplicate matching logic to locate existing account records before creating new ones. Prevents duplicate account creation by checking platform keys, external IDs, and other matching criteria. If no match is found through this flow, MoveData can then execute Salesforce Duplicate Rules (if configured).

Flow: md_npsp_pack.MoveData_Donation_Account_Duplicate

Account field mapping#

Metadata entry: DONATION_ACCOUNT_MAPPING_001

Field Value
Label PIPELINE_DONATION_ACCOUNT_MAPPING
Handler md_npsp_pack.MoveData_Donation_Account_Mapping
Order 5
Type Flow

Purpose: Primary Lightning Flow that maps notification data to Account fields. Handles standard field mappings including organisation name, address information, phone, website, and account type classifications. Includes name protection logic to prevent overwriting existing account names when the movedata__Protect_Name__c flag is set.

Flow: md_npsp_pack.MoveData_Donation_Account_Mapping

Account post-processing#

Metadata entry: DONATION_ACCOUNT_POST_001

Field Value
Label PIPELINE_DONATION_ACCOUNT_POST
Handler md_npsp_pack.MoveData_Donation_Account_Post
Order 5
Type Flow

Purpose: Lightning Flow that executes after account records are created or updated. Handles post-upsert operations such as relationship creation, platform key persistence, and additional record updates.

Flow: md_npsp_pack.MoveData_Donation_Account_Post

Stage 2: Contact processing#

The Contact stage creates or updates Contact records for individual donors, fundraisers, and tribute contacts. In NPSP implementations, this stage processes standard Salesforce Contact records. NPSP manages the relationship between Contacts and their household Accounts automatically.

No SObject override

Unlike the Nonprofit Cloud Extension, the NPSP Extension does not override the Contact SObject. Contacts remain as standard Contact records, and NPSP handles household account association through its own automation.

Contact disable#

Metadata entry: DONATION_CONTACT_DISABLE

Field Value
Label PIPELINE_DONATION_CONTACT_DISABLE
Handler false
Order 5
Type Config

Purpose: Controls whether contact processing is enabled. Set to false by default for active processing.

Contact fieldset#

Metadata entry: DONATION_CONTACT_FIELDSET_001

Field Value
Label PIPELINE_DONATION_CONTACT_FIELDSET
Handler md_npsp_pack__MoveData_Donation_Contact_Fieldset
Type Fieldset

Purpose: Defines which Contact fields should be loaded when existing contact records are located during duplicate matching. Includes standard Contact fields such as name, email, phone, and address fields, as well as NPSP-specific fields needed for processing.

Contact platform key#

Metadata entry: DONATION_CONTACT_PLATFORM_KEY_001

Field Value
Label PIPELINE_DONATION_CONTACT_PLATFORM_KEY
Handler md_npsp_pack.MoveData_Donation_Contact_Key
Order 5
Type Flow

Purpose: Generates unique platform identifiers for contact records to enable cross-system tracking and duplicate prevention. The generated key is stored on the movedata__Contact_Platform_Key__c object and uses the format Platform:Key.

Flow: md_npsp_pack.MoveData_Donation_Contact_Key

Contact duplicate detection#

Metadata entry: DONATION_CONTACT_DUPLICATE_001

Field Value
Label PIPELINE_DONATION_CONTACT_DUPLICATE
Handler md_npsp_pack.MoveData_Donation_Contact_Duplicate
Order 5
Type Flow

Purpose: Implements duplicate matching logic for contacts using platform keys and Salesforce record IDs. Checks the movedata__Contact_Platform_Key__c.movedata__Platform_Key__c field for matches. If no match is found, MoveData can then execute Salesforce Duplicate Rules (if configured).

Flow: md_npsp_pack.MoveData_Donation_Contact_Duplicate

Contact field mapping#

Metadata entry: DONATION_CONTACT_MAPPING_001

Field Value
Label PIPELINE_DONATION_CONTACT_MAPPING
Handler md_npsp_pack.MoveData_Donation_Contact_Mapping
Order 5
Type Flow

Purpose: Maps notification data to Contact fields including names, email, phone, address, and donor classifications. Supports configurable name casing, address field selection (mailing or shipping), name protection, and do-not-contact preferences.

Flow: md_npsp_pack.MoveData_Donation_Contact_Mapping

Contact post-processing#

Metadata entry: DONATION_CONTACT_POST_001

Field Value
Label PIPELINE_DONATION_CONTACT_POST
Handler md_npsp_pack.MoveData_Donation_Contact_Post
Order 5
Type Flow

Purpose: Executes post-upsert operations for contact records. Handles platform key persistence, contact-account affiliations, and any additional post-processing logic.

Flow: md_npsp_pack.MoveData_Donation_Contact_Post

Stage 3: Campaign processing#

The Campaign stage creates or updates Campaign records representing fundraising initiatives, peer-to-peer campaigns, and campaign hierarchies. MoveData creates a hierarchical set of campaign records depending on the data contained within a notification: Campaign, Team, and Fundraiser levels.

Campaign disable#

Metadata entry: DONATION_CAMPAIGN_DISABLE

Field Value
Label PIPELINE_DONATION_CAMPAIGN_DISABLE
Handler false
Order 5
Type Config

Purpose: Controls campaign processing. Set to false for active processing.

Campaign fieldset#

Metadata entry: DONATION_CAMPAIGN_FIELDSET_001

Field Value
Label PIPELINE_DONATION_CAMPAIGN_FIELDSET
Handler md_npsp_pack__MoveData_Donation_Campaign_Fieldset
Type Fieldset

Purpose: Defines Campaign fields to load during duplicate matching and processing.

Campaign platform key#

Metadata entry: DONATION_CAMPAIGN_PLATFORM_KEY_001

Field Value
Label PIPELINE_DONATION_CAMPAIGN_PLATFORM_KEY
Handler md_npsp_pack.MoveData_Donation_Campaign_Key
Order 5
Type Flow

Purpose: Generates unique platform identifiers for campaign records.

Flow: md_npsp_pack.MoveData_Donation_Campaign_Key

Campaign name generation#

Metadata entry: DONATION_CAMPAIGN_NAME_001

Field Value
Label PIPELINE_DONATION_CAMPAIGN_NAME
Handler md_npsp_pack.MoveData_Donation_Campaign_Name
Order 5
Type Flow

Purpose: Custom campaign name generation logic that constructs campaign names based on notification data, hierarchies, and naming conventions. You can suppress this behaviour using the Config_IgnoreCampaignName setting if you set campaign names through other means such as Apex triggers.

Flow: md_npsp_pack.MoveData_Donation_Campaign_Name

Campaign duplicate detection#

Metadata entry: DONATION_CAMPAIGN_DUPLICATE_001

Field Value
Label PIPELINE_DONATION_CAMPAIGN_DUPLICATE
Handler md_npsp_pack.MoveData_Donation_Campaign_Duplicate
Order 5
Type Flow

Purpose: Locates existing campaign records using platform keys and name matching to prevent duplicates.

Flow: md_npsp_pack.MoveData_Donation_Campaign_Duplicate

Campaign field mapping#

Metadata entry: DONATION_CAMPAIGN_MAPPING_001

Field Value
Label PIPELINE_DONATION_CAMPAIGN_MAPPING
Handler md_npsp_pack.MoveData_Donation_Campaign_Mapping
Order 5
Type Flow

Purpose: Maps notification data to Campaign fields including campaign type, status, dates, and hierarchy relationships.

Flow: md_npsp_pack.MoveData_Donation_Campaign_Mapping

Campaign post-processing#

Metadata entry: DONATION_CAMPAIGN_POST_001

Field Value
Label PIPELINE_DONATION_CAMPAIGN_POST
Handler md_npsp_pack.MoveData_Donation_Campaign_Post
Order 5
Type Flow

Purpose: Handles post-upsert operations for campaigns including parent-child campaign linking and campaign member creation. Campaign member statuses are initialised through the NPSP Extension's campaign member status component.

Flow: md_npsp_pack.MoveData_Donation_Campaign_Post

Stage 4: Recurring donation processing#

The Recurring Donation stage creates or updates recurring gift records. In NPSP implementations, this stage processes npe03__Recurring_Donation__c records, which represent ongoing, scheduled giving arrangements. NPSP uses these records to generate pledged Opportunity instalments that are updated to "Closed Won" as payments are processed.

No SObject override

Unlike the Nonprofit Cloud Extension (which overrides the recurring SObject to GiftCommitment), the NPSP Extension uses the standard NPSP object npe03__Recurring_Donation__c directly. No SObject override metadata entry is required.

Recurring disable#

Metadata entry: DONATION_RECURRING_DISABLE

Field Value
Label PIPELINE_DONATION_RECURRING_DISABLE
Handler false
Order 5
Type Config

Purpose: Controls recurring donation processing. Set to true to disable processing of recurring donation records.

Recurring fieldset#

Metadata entry: DONATION_RECURRING_FIELDSET_001

Field Value
Label PIPELINE_DONATION_RECURRING_FIELDSET
Handler md_npsp_pack__MoveData_Donation_Recurring_Fieldset
Type Fieldset

Purpose: Defines npe03__Recurring_Donation__c fields to load during processing. Includes NPSP recurring donation fields such as contact, amount, frequency, instalment period, and status fields.

Recurring platform key#

Metadata entry: DONATION_RECURRING_PLATFORM_KEY_001

Field Value
Label PIPELINE_DONATION_RECURRING_PLATFORM_KEY
Handler md_npsp_pack.MoveData_Donation_Recurring_Key
Order 5
Type Flow

Purpose: Generates unique platform identifiers for recurring donation records. The generated key is stored on the md_npsp_pack__Platform_Key__c field of the npe03__Recurring_Donation__c record.

Flow: md_npsp_pack.MoveData_Donation_Recurring_Key

Recurring duplicate detection#

Metadata entry: DONATION_RECURRING_DUPLICATE_001

Field Value
Label PIPELINE_DONATION_RECURRING_DUPLICATE
Handler md_npsp_pack.MoveData_Donation_Recurring_Duplicate
Order 5
Type Flow

Purpose: Locates existing npe03__Recurring_Donation__c records to prevent duplicate recurring donation creation. Searches by md_npsp_pack__Platform_Key__c to find matching records.

Flow: md_npsp_pack.MoveData_Donation_Recurring_Duplicate

Recurring field mapping#

Metadata entry: DONATION_RECURRING_MAPPING_001

Field Value
Label PIPELINE_DONATION_RECURRING_MAPPING
Handler md_npsp_pack.MoveData_Donation_Recurring_Mapping
Order 5
Type Flow

Purpose: Maps notification data to npe03__Recurring_Donation__c fields including donor contact, amount, frequency, instalment period, status, date established, and next payment date. Supports both legacy and Enhanced Recurring Donations (RD2) configurations.

Flow: md_npsp_pack.MoveData_Donation_Recurring_Mapping

Recurring post-processing#

Metadata entry: DONATION_RECURRING_POST_001

Field Value
Label PIPELINE_DONATION_RECURRING_POST
Handler md_npsp_pack.MoveData_Donation_Recurring_Post
Order 5
Type Flow

Purpose: Executes post-upsert operations for recurring donations including platform key persistence and donor relationship management.

Flow: md_npsp_pack.MoveData_Donation_Recurring_Post

Stage 5: Donation processing#

The Donation stage creates or updates individual donation transaction records. In NPSP implementations, this stage processes Opportunity records, which represent individual monetary gifts. NPSP uses the Opportunity object with specific fields such as npsp__Primary_Contact__c and NPSP payment records (npe01__OppPayment__c) for comprehensive donation management.

Donation disable#

Metadata entry: DONATION_DONATION_DISABLE

Field Value
Label PIPELINE_DONATION_DONATION_DISABLE
Handler false
Order 5
Type Config

Purpose: Controls whether donation processing is enabled. Set to false by default for active processing.

Donation fieldset#

Metadata entry: DONATION_DONATION_FIELDSET_001

Field Value
Label PIPELINE_DONATION_DONATION_FIELDSET
Handler md_npsp_pack__MoveData_Donation_Donation_Fieldset
Type Fieldset

Purpose: Defines Opportunity fields to load during processing. Includes standard Opportunity fields and NPSP-specific fields such as npsp__Primary_Contact__c, matching gift fields, and fee fields.

Donation platform key#

Metadata entry: DONATION_DONATION_PLATFORM_KEY_001

Field Value
Label PIPELINE_DONATION_DONATION_PLATFORM_KEY
Handler md_npsp_pack.MoveData_Donation_Donation_Key
Order 5
Type Flow

Purpose: Generates unique platform identifiers for donation transaction records.

Flow: md_npsp_pack.MoveData_Donation_Donation_Key

Donation duplicate detection#

Metadata entry: DONATION_DONATION_DUPLICATE_001

Field Value
Label PIPELINE_DONATION_DONATION_DUPLICATE
Handler md_npsp_pack.MoveData_Donation_Donation_Duplicate
Order 5
Type Flow

Purpose: Locates existing Opportunity records to prevent duplicate donation creation using platform keys and transaction identifiers. Also supports matching through recurring donation parent-child relationships when processing instalment payments.

Flow: md_npsp_pack.MoveData_Donation_Donation_Duplicate

Donation field mapping#

Metadata entry: DONATION_DONATION_MAPPING_001

Field Value
Label PIPELINE_DONATION_DONATION_MAPPING
Handler md_npsp_pack.MoveData_Donation_Donation_Mapping
Order 5
Type Flow

Purpose: Maps notification data to Opportunity fields including amount, close date, stage name, payment method, description, and tribute information. Handles multiple donation statuses (success, refund, failed, pledge, offline, static), NPSP matching gift processing, fee calculations, NPSP payment record creation for refunds, and dynamic donation naming using configurable patterns.

Flow: md_npsp_pack.MoveData_Donation_Donation_Mapping

Donation post-processing#

Metadata entry: DONATION_DONATION_POST_001

Field Value
Label PIPELINE_DONATION_DONATION_POST
Handler md_npsp_pack.MoveData_Donation_Donation_Post
Order 5
Type Flow

Purpose: Executes post-upsert operations for donation records including soft credit creation (Opportunity Contact Roles), campaign member updates, GAU allocation processing, and platform key persistence.

Flow: md_npsp_pack.MoveData_Donation_Donation_Post


Metadata entry summary#

The following table provides a quick reference of all metadata entries configured by the NPSP Extension.

Extension configuration#

Metadata entry Label Handler Type
EXTENSION_DONATION_NAMESPACE EXTENSION_DONATION_NAMESPACE md_npsp_pack Config

Pipeline registration#

Metadata entry MasterLabel Handler Type
movedata__Movedata_Schema_Map__mdt.donation donation MoveDataDonationPipeline Apex

Stage metadata entries#

Stage Metadata entry Label Handler Type
Account DONATION_ACCOUNT_DISABLE PIPELINE_DONATION_ACCOUNT_DISABLE false Config
Account DONATION_ACCOUNT_FIELDSET_001 PIPELINE_DONATION_ACCOUNT_FIELDSET md_npsp_pack__MoveData_Donation_Account_Fieldset Fieldset
Account DONATION_ACCOUNT_PLATFORM_KEY_001 PIPELINE_DONATION_ACCOUNT_PLATFORM_KEY md_npsp_pack.MoveData_Donation_Account_Key Flow
Account DONATION_ACCOUNT_DUPLICATE_001 PIPELINE_DONATION_ACCOUNT_DUPLICATE md_npsp_pack.MoveData_Donation_Account_Duplicate Flow
Account DONATION_ACCOUNT_MAPPING_001 PIPELINE_DONATION_ACCOUNT_MAPPING md_npsp_pack.MoveData_Donation_Account_Mapping Flow
Account DONATION_ACCOUNT_POST_001 PIPELINE_DONATION_ACCOUNT_POST md_npsp_pack.MoveData_Donation_Account_Post Flow
Contact DONATION_CONTACT_DISABLE PIPELINE_DONATION_CONTACT_DISABLE false Config
Contact DONATION_CONTACT_FIELDSET_001 PIPELINE_DONATION_CONTACT_FIELDSET md_npsp_pack__MoveData_Donation_Contact_Fieldset Fieldset
Contact DONATION_CONTACT_PLATFORM_KEY_001 PIPELINE_DONATION_CONTACT_PLATFORM_KEY md_npsp_pack.MoveData_Donation_Contact_Key Flow
Contact DONATION_CONTACT_DUPLICATE_001 PIPELINE_DONATION_CONTACT_DUPLICATE md_npsp_pack.MoveData_Donation_Contact_Duplicate Flow
Contact DONATION_CONTACT_MAPPING_001 PIPELINE_DONATION_CONTACT_MAPPING md_npsp_pack.MoveData_Donation_Contact_Mapping Flow
Contact DONATION_CONTACT_POST_001 PIPELINE_DONATION_CONTACT_POST md_npsp_pack.MoveData_Donation_Contact_Post Flow
Campaign DONATION_CAMPAIGN_DISABLE PIPELINE_DONATION_CAMPAIGN_DISABLE false Config
Campaign DONATION_CAMPAIGN_FIELDSET_001 PIPELINE_DONATION_CAMPAIGN_FIELDSET md_npsp_pack__MoveData_Donation_Campaign_Fieldset Fieldset
Campaign DONATION_CAMPAIGN_PLATFORM_KEY_001 PIPELINE_DONATION_CAMPAIGN_PLATFORM_KEY md_npsp_pack.MoveData_Donation_Campaign_Key Flow
Campaign DONATION_CAMPAIGN_NAME_001 PIPELINE_DONATION_CAMPAIGN_NAME md_npsp_pack.MoveData_Donation_Campaign_Name Flow
Campaign DONATION_CAMPAIGN_DUPLICATE_001 PIPELINE_DONATION_CAMPAIGN_DUPLICATE md_npsp_pack.MoveData_Donation_Campaign_Duplicate Flow
Campaign DONATION_CAMPAIGN_MAPPING_001 PIPELINE_DONATION_CAMPAIGN_MAPPING md_npsp_pack.MoveData_Donation_Campaign_Mapping Flow
Campaign DONATION_CAMPAIGN_POST_001 PIPELINE_DONATION_CAMPAIGN_POST md_npsp_pack.MoveData_Donation_Campaign_Post Flow
Recurring DONATION_RECURRING_DISABLE PIPELINE_DONATION_RECURRING_DISABLE false Config
Recurring DONATION_RECURRING_FIELDSET_001 PIPELINE_DONATION_RECURRING_FIELDSET md_npsp_pack__MoveData_Donation_Recurring_Fieldset Fieldset
Recurring DONATION_RECURRING_PLATFORM_KEY_001 PIPELINE_DONATION_RECURRING_PLATFORM_KEY md_npsp_pack.MoveData_Donation_Recurring_Key Flow
Recurring DONATION_RECURRING_DUPLICATE_001 PIPELINE_DONATION_RECURRING_DUPLICATE md_npsp_pack.MoveData_Donation_Recurring_Duplicate Flow
Recurring DONATION_RECURRING_MAPPING_001 PIPELINE_DONATION_RECURRING_MAPPING md_npsp_pack.MoveData_Donation_Recurring_Mapping Flow
Recurring DONATION_RECURRING_POST_001 PIPELINE_DONATION_RECURRING_POST md_npsp_pack.MoveData_Donation_Recurring_Post Flow
Donation DONATION_DONATION_DISABLE PIPELINE_DONATION_DONATION_DISABLE false Config
Donation DONATION_DONATION_FIELDSET_001 PIPELINE_DONATION_DONATION_FIELDSET md_npsp_pack__MoveData_Donation_Donation_Fieldset Fieldset
Donation DONATION_DONATION_PLATFORM_KEY_001 PIPELINE_DONATION_DONATION_PLATFORM_KEY md_npsp_pack.MoveData_Donation_Donation_Key Flow
Donation DONATION_DONATION_DUPLICATE_001 PIPELINE_DONATION_DONATION_DUPLICATE md_npsp_pack.MoveData_Donation_Donation_Duplicate Flow
Donation DONATION_DONATION_MAPPING_001 PIPELINE_DONATION_DONATION_MAPPING md_npsp_pack.MoveData_Donation_Donation_Mapping Flow
Donation DONATION_DONATION_POST_001 PIPELINE_DONATION_DONATION_POST md_npsp_pack.MoveData_Donation_Donation_Post Flow

Key differences from Nonprofit Cloud Extension#

If you are comparing this reference with the Nonprofit Cloud extension metadata reference, note these differences:

Aspect NPSP Extension NPC Extension
Namespace md_npsp_pack md_npc_pack
Extension mode entry Not required (NPSP is the default model) EXTENSION_DONATION_NPC required
Contact SObject Standard Contact (no override) Overridden to Account (person accounts)
Recurring SObject npe03__Recurring_Donation__c (no override) Overridden to GiftCommitment
Donation SObject Opportunity (no override) Overridden to GiftTransaction
Commerce Pipeline Not included Included
NPSP payment records Uses npe01__OppPayment__c for refunds Not applicable
Matching gifts Uses npsp__Matching_Gift__c fields Uses NPC gift designation model

Other resources#

Ask MoveData AI
Ask about setup, configuration, or troubleshooting
How can I help you with MoveData today?