Introduction to FinDock for Fundraising

The FinDock for Fundraising package enables end-to-end payments management for Fundraising features available with Salesforce Nonprofit Cloud (and other cloud offerings).

When you enable Fundraising, several objects related to gift management are enabled in the Salesforce CRM. These objects become the primary source of payment data in your org, so FinDock uses a connector to sync the payment data captured by FinDock with the Fundraising objects.

FinDock components for Fundraising

Fundraising features and capabilities

Gift collection and reconciliation processes employ the standard handling mechanisms built into the FinDock platform and payment processor-specific extensions. The table below gives you the basic comparison of the main objects involved with each scenario with NPS compared to Fundraising.

ActionNPSP + FinDockFundraising + FinDock
One-time donationsOpportunity + InstallmentGift Transaction + Installment
Recurring donationsRecurring Donation + Opportunity + InstallmentGift Commitment + Gift Commitment Schedule + Gift Transaction + Installment
Bulk giftsGift Entry + Opportunity + InstallmentGift Entry + Gift Transaction + Installment

Current status of development

FinDock for Fundraising is in a pilot phase, reflecting the ongoing development of our support for new Salesforce core capability. We aim to expand our support of Salesforce Fundraising as quickly as possible:

  • Salesforce Fundraising features not included:
    • Full and partial refunds through the Gift Refund object
    • Creation of Gift Refund records from incoming notifications or instructions

FinDock for Fundraising data model

In the Fundraising model, the central donation object is Gift Transaction. This has a one-to-one relationship with the FinDock Installment object and represents a single gift. Recurring gifts are managed with a combination of a Gift Commitment record and one or more Gift Commitment Schedule records. Gift transactions are created based on gift commitment schedules.

The gift commitment objects are indirectly related to FinDock objects through the Person Account. Standard Account and Contact objects, however, still play a vital role in payments management as you can see in the simplified ERD below.

FinDock for Fundraising data model ERD

Modifications to Fundraising objects To record information about payment processing, FinDock adds fields to Fundraising objects as shown in the following tables. A detailed overview of the mapping can be found in the FinDock for Fundraising setup.

FinDock fields on Gift Commitment Schedule

Field labelField nameField description
Bank Statement Descriptionfdff__Bank_Statement_Description__cThe description provided to the bank or PSP for use on the bank statement for the payer. Ideally the value includes the name of the entity that receives the payment.
Custom Payment Referencefdff__Custom_Payment_Reference__cOptional alternative payment reference to the generated payment reference.
Final Payment Referencefdff__Final_Payment_Reference__cThe payment reference used in practice to collect the installment.
Generated Payment Referencefdff__Generated_Payment_Reference__cAutomatically generated payment reference
Mandatefdff__Mandate__cThe mandate used to collect a gift transaction.
Payment Methodfdff__Payment_Method__cThe payment method used to collect a gift transaction.
Payment Processorfdff__Payment_Processor__cThe payment processor that handled collecting a gift transaction.
Payment Profilefdff__Payment_Profile__cThe associated payment profile for a gift transaction.
Payment QRfdff__Payment_QR__cThe QR code that can be used to collect a gift transaction.
Payment URLfdff__Payment_Url__cThe URL link that can be used to collect a gift transaction.
Targetfdff__Target__cThe target bank account that receives a gift transaction payment.

FinDock fields on Gift Transaction

Field labelField nameField description
Bank Statement Descriptionfdff__Bank_Statement_Description__cThe description provided to the bank or PSP for use on the bank statement for the payer. Ideally the value includes the name of the entity that receives the payment.
Custom Payment Referencefdff__Custom_Payment_Reference__cOptional alternative payment reference to the generated payment reference.
Final Payment Referencefdff__Final_Payment_Reference__cThe payment reference used in practice to collect the gift transaction.
Generated Payment QRfdff__Generated_Payment_QR__cAuto-generated QR code that can be used to collect the gift transaction.
Generated Payment Referencefdff__Generated_Payment_Reference__cAuto-generated payment reference
Generated Payment URLfdff__Generated_Payment_Url__cAuto-generated URL link that can be used to collect the gift transaction.
Mandatefdff__Mandate__cThe mandate used to collect the gift transaction.
Payment Methodfdff__Payment_Method__cThe payment method used to collect the gift transaction.
Payment Processorfdff__Payment_Processor__cThe payment processor that handled collecting the gift transaction.
Payment Profilefdff__Payment_Profile__cThe associated payment profile for the gift transaction.
Recurring Payment QRfdff__Recurring_Payment_QR__cQR code that can be used to collect each payment of a recurring gift.
Recurring Payment Referencefdff__Recurring_Payment_Reference__cPayment reference that can be reused for each payment of a recurring gift.
Recurring Payment URLfdff__Recurring_Payment_Url__cURL link that can be used to collect each payment of a recurring gift.
Targetfdff__Target__cThe target bank account that receives the gift transaction payment.

Fundraising fields on FinDock Installment

ObjectField nameField description
Installmentfdff__GiftTransaction__cThe Gift Transaction record that represents the Installment record.

Data syncing between Fundraising and FinDock

Apart from running payment and mandate schedules (if these are not set up to be fully automated), FinDock remains mostly in the background with day-to-day activities of Fundraising. New gifts can come in through a FinDock Payment API integration, Giving Pages (and PayLinks).

Payment collection and mandate management happen through payment and mandate schedules (which can be fully automated). Otherwise, once FinDock is configured, there is little if any regular user interaction with FinDock. Fundraising operations are carried out through the various Fundraising components and flows.

The data integration between FinDock and Salesforce Fundraising is primarily through the Gift Transaction and Installment relationship. For every Gift Transaction record, FinDock creates an Installment record to represent the donation in FinDock payment orchestration.

From that point forward, the gift transaction and installment are kept in sync as payment collection and reconciliation processes are carried out. All donation frequencies based on the Gift Commitment and Gift Comment Schedule are supported. One-time gifts are naturally also supported.

Payment actions that originate from FinDock, such as calls to the FinDock Payment API, bank file imports, and so forth are automatically synchronized to related Fundraising records. New records are created as needed.

If an installment is created for a one-time payment first in FinDock, for example, FinDock automatically creates a corresponding gift transaction for that installment. If the Payment API receives a payment intent call to set up a new recurring donation, FinDock creates a gift commitment with a gift commitment schedule and other records accordingly.

Field and status mapping

FinDock maintains payment data on Fundraising objects through mappings between Installment and Gift Transaction. There are out-of-the-box field mappings managed by FinDock, as well as the option to add your own custom field mappings.

The Status field has its own mapping and is managed by FinDock. The mapping table is available for reference in the FinDock for Fundraising settings, but otherwise, the status mappings cannot be modified. This ensures that the status updates on Installment always adhere to the allowed status update paths for Gift Transaction.

FinDock and person accounts

FinDock supports the recommended use of Contact, Account and Person Account for Fundraising:

  • Person Account (a combination of Account and Contact) for individual donors
  • Account and Contact for business donors

    Gift Transaction and Gift Commitment require an Account relation, so Contact alone cannot represent a donor using Salesforce Fundraising and FinDock.

When creating new donors, the Account record type has a central role defining the donor type. Make sure to create accounts of the right type by setting the record type Person Account for individual donors.

To use person accounts, you need to enable the feature and make adjustments to your org configuration. Detailed instructions are available from Salesforce Help. For information on how to use Person Account with the FinDock Payment API, please visit the API Reference.

Was this page helpful?