Skip to main content

FinDock for NPSP data model

To enable payment processing based on NPSP, FinDock provides a source connector to NPSP for seamless integration between FinDock and NPSP. This article details how the Salesforce and FinDock data model is modified in the NPSP setup.

Integration between NPSP and FinDock

The following entity relationship diagram (ERD) is a simplified illustration of the FinDock data model with NPSP integration. This illustration includes Gift Aid objects which are only relevant for UK charities.

InstallmentMandatePayment ProfileInbound ReportTransactionTransaction SetPayment ScheduleMandate ScheduleRecurring Mandate Sc...Recurring Payment Sc...Payment
Contact
Contact
Account
Account
Mandate HistoryGift Aid Declara...Gift Aid Distrib...
Opportunity
Opportunity
Payment
Payment
FinDock
FinDock
NPSP
NPSP
Standard
Standard
Recurring Donation
Recurring Donati...

Modifications to NPSP objects

To record information about payment processing, FinDock adds fields to the Recurring Donation, Opportunity and NPSP Payment objects as shown in the following tables.

Recurring Donation changes

Field LabelField NameData Type
Bank Statement Descriptionnpsp4hub__Bank_Statement_Description__cText(255)
Custom Payment Referencenpsp4hub__Custom_Payment_Reference__cText(255)
Final Payment Referencenpsp4hub__Final_Payment_Reference__cFormula (Text)
Generated Payment Referencenpsp4hub__Generated_Payment_Reference__cText(255)
Mandatenpsp4hub__Mandate__cLookup(Mandate)
Payment Methodnpsp4hub__Payment_Method__cPicklist
Payment Processornpsp4hub__Payment_Processor__cPicklist
Payment Profilenpsp4hub__Payment_Profile__cLookup(Payment Profile)
Payment QRnpsp4hub__Payment_QR__cLong Text Area(131072)
Payment Urlnpsp4hub__Payment_Url__cURL(255)
Targetnpsp4hub__Target__cPicklist
note

These fields are also added to the Recurring Donation Custom Field Mappings of NPSP settings. This assures that when a recurring donation is created, the fields are automatically populated in the related opportunities.

Opportunity

Field LabelField NameData Type
Bank Statement Descriptionnpsp4hub__Bank_Statement_Description__cText(255)
Custom Payment Referencenpsp4hub__Custom_Payment_Reference__cText(255)
Final Payment Referencenpsp4hub__Final_Payment_Reference__cFormula (Text)
Generated Payment QRnpsp4hub__Generated_Payment_QR__cLong Text Area(131072)
Generated Payment Referencenpsp4hub__Generated_Payment_Reference__cText(255)
Generated Payment Urlnpsp4hub__Generated_Payment_Url__cURL(255)
Mandatenpsp4hub__Mandate__cLookup(Mandate)
Payment Methodnpsp4hub__Payment_Method__cPicklist
Payment Processornpsp4hub__Payment_Processor__cPicklist
Payment Profilenpsp4hub__Payment_Profile__cLookup(Payment Profile)
Recurring Payment QRnpsp4hub__Recurring_Payment_QR__cLong Text Area(131072)
Recurring Payment Referencenpsp4hub__Recurring_Payment_Reference__cText(255) (External ID)
Recurring Payment Urlnpsp4hub__Recurring_Payment_Url__cURL(255)
Targetnpsp4hub__Target__cPicklist

Opportunity Payment

Field LabelField NameData Type
Collected Throughnpsp4hub__Collected_Through__cLookup(Installment)
Mandatenpsp4hub__Mandate__cLookup(Mandate)
Payment Processornpsp4hub__Payment_Processor__cPicklist
Payment Profilenpsp4hub__Payment_Profile__cLookup(Payment Profile)
Targetnpsp4hub__Target__cPicklist

Modifications to FinDock objects

To establish the link between an Installment and its parent Opportunity record, a lookup field is added to the Installment object to define this relationship.

Installment

Field LabelField NameData Type
Opportunitynpsp4hub__Opportunity__cLookup(Opportunity)
Paymentnpsp4hub__Payment__cLookup(Payment)

Data syncing between NPSP and FinDock

The integration between FinDock and NPSP is mainly on the level of the Opportunity object. For every Opportunity record created that does not have an excluded Record Type, FinDock creates an Installment record to represent the opportunity in FinDock.

From that point forward, the opportunity and installment are kept in sync. Because the integration is based on the Opportunity object, all donation frequencies on the Recurring Donation object are supported, including custom frequencies. The same is true for individually created opportunities (without a parent recurring donation).

Actions that originate from FinDock, such as Payment API requests, bank statement imports, and so forth are synchronized to NPSP. NPSP objects are created based on FinDock objects or API requests. If an installment is created for a one-time payment in FinDock, for example, FinDock automatically creates an opportunity to match that installment. If the Payment API receives a recurring payment message, FinDock creates a matching recurring donation.

NPSP Payment vs. FinDock Payment

Both FinDock and NPSP have Payment objects. The Opportunity Payment (npe01__OppPayment__c) plays an important role in the NPSP package if you are using General Account Units (GAUs) and/or Account Subledger (ASL). However, if you are not using these, we suggest turning off the Automatic Payment Creation option in your NPSP Settings (under Donations > Payments).

The FinDock Payment (cpm__Payment_c) plays an essential role in payment data management. FinDock payments represent actual monetary transactions and are used to update installments.

When installments are closed, FinDock updates the related opportunities and also creates a corresponding opportunity payment for the full amount of the installment. The Collected Through field on Opportunity Payment is a lookup that links the payment to this installment.

If an opportunity payment already exists, FinDock marks it as paid when the installment is closed (collected). If the installment amount is more than the existing payment, FinDock creates an additional paid opportunity payment for the remaining installment amount.

note

If you have scheduled multiple payments using the schedule payment button on a single opportunity, these payments are not linked to the installment. FinDock creates a new closed payment when an installment is closed. The existing scheduled opportunity payments remain open.