Opportunity-Installment Field Mapper

The Field Mapper enables detailed customization of how the FinDock Installment and NPSP Opportunity records are synced at field level. The mapping eliminates the need for custom triggers or process builders to keep installments and opportunities synced. For example, if you have a custom field on Opportunity for “in memoriam” donations that needs to be copied to installments, you can define a mapping for that field rather than build custom automation.

   FinDock cannot guarantee that every possible mapping works in practice due to all the configurations and customizations an org may have. We have seen, for instance, issues arise with custom @future methods and the execution order of triggers. Thoroughly test mapping before using it in production.

Create custom mappings

You can create custom mappings for any field except formula fields and fields managed by FinDock (see below).

   The mappings only apply to installments with record type Receivable. Other installment record types (Payable and Gift Aid) are excluded.

Before you start, carefully consider the sync direction for each mapping. Two-way syncing requires more processing power. Using many two-way sync mappings can have a noticeable impact on performance. Use one-way syncing whenever possible.

To add a custom Installment - Opportunity mapping:

  1. Launch the FinDock app, and on the Setup tab, scroll down to the Source Connectors section and click on PaymentHub-for-NPSP.
  2. Click the Opportunity Installment Field Mapping tab.
    Field mapping
  3. Click Add record to add a custom mapping.
  4. Select an Opportunity field to map from the list of available fields.
  5. Select the sync direction:
    ←: Only sync when the field changes on Installment
    →: Only sync when the field changes on Opportunity
    ⇆: Sync when the field changes on either Installment or Opportunity
  6. Select the Installment field to map to the selected Opportunity field.
  7. Select the type:
    Always: Sync both on inserts and updates. Only On Insert: Sync only on insert actions.
  8. Click Save to save the new custom mapping.
  9. Use the Delete button to delete a custom mapping if needed.

   The existing Bank Statement Description mapping is added by FinDock to support certain direct debit transactions. We recommend leaving this mapping as-is in your configuration.

Mapping Opportunity Record Type

You can also create a mapping for Opportunity Record Type (Record Type Id) that can be used when opportunities are created from installments. For instance, you may have a specific record type for online donations. This could be handled by mapping an Installment text field to that record type so all installments created through your online donation form are automatically classified with the desired type.

If you have a special-purpose mapping requirement for this field, please keep in mind that:

  • The mapping direction can only be from Installment to Opportunity.
  • The syncing type can be Only On Insert.
  • The selected Installment field must be a text field.
  • If you also want the Record Type Id on Installment, it needs to be added manually or via automation to the text field on Installment.

Mappings managed by FinDock

Some fields are managed by FinDock, meaning these mappings are included in the FinDock solution and cannot be further customized.

   Opportunity Stage and Installment Status are defined by the Status Mapping configuration.

Opportunity FieldInstallment FieldDirectionType
AccountIdAccount (cpm__Account__c)Always
AmountAmount (cpm__Amount__c)Always
Bank Statement Description (npsp4hub__Bank_Statement_Description__c)Bank Statement Description (cpm__Bank_Statement_Description__c)Always
CampaignIdOriginating Campaign cpm__Originating_Campaign__cAlways
CloseDateDue Date (cpm__Due_Date__c)Always
CloseDateOriginal Due Date (cpm__Original_Due_Date__c)Only On Insert
CloseDateIf installment is collected, then Last Collection Date. Otherwise Due DateOther
Custom Payment Reference (npsp4hub__Custom_Payment_Reference__c)Custom Payment Reference (cpm__Custom_Payment_Reference__c)Always
Generated Payment QR (npsp4hub__Generated_Payment_QR__c)Payment QR (cpm__Payment_QR__c)Always
Generated Payment Reference (npsp4hub__Generated_Payment_Reference__c)cpm__Generated_Payment_Reference__cAlways
Generated Payment URL (npsp4hub__Generated_Payment_Url__c)Pay URL (cpm__Pay_Url__c)Always
IdOpportunity (npsp4hub__Opportunity__c)Only On Insert
Mandate (npsp4hub__Mandate__c)Mandate (cpm__Mandate__c)Always
NameIf Installment is collected then ‘Donation ’ + Installment Last Collection Date, otherwise ‘Donation ‘ + Installment Due Date. (Opportunity Name is only set on creation). If NPSP Opportunity naming is enabled, that functionality defines the Opportunity name.Other
Primary Contact (npsp__Primary_Contact__c)Contact (cpm__Contact__c)Always
Payment Method (npsp4hub__Payment_Method__c)Payment Method (cpm__Payment_Method__c )Always
Payment Profile (npsp4hub__Payment_Profile__c)Payment Profile (cpm__Payment_Profile__c)Always
Payment Processor (npsp4hub__Payment_Processor__c)Payment Processor (cpm__Payment_Processor__c)Always
Recurring Payment QR (npsp4hub__Recurring_Payment_QR__c)Recurring Payment QR (cpm__Recurring_Payment_QR__c)Always
Recurring Payment Reference (npsp4hub__Recurring_Payment_Reference__c)Recurring Payment Reference (cpm__Recurring_Payment_Reference__c)Always
Recurring Payment URL (npsp4hub__Recurring_Payment_Url__c)Recurring Pay URL (cpm__Recurring_Pay_Url__c)Always
StageNameIf the installment is created with status Collected, then the NPSP default closed status is used. For all other installment status options, NPSP status Pledged is used. With installment update changes, the FinDock status mapping is used.Other
Target (npsp4hub__Target__c)TargetAlways
+ Always PaymentHub-for-NPSPSourceOther
+ Always ReceivableRecordTypeIdOther
+ When an installment is created from an opportunity and the opportunity is closed, then the mapping between Installment Status and Opportunity Stage is used. Otherwise, the status is New. With opportunity updates, FinDock Status Mapping is used.StatusOther

Was this page helpful?