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.
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.
Action | NPSP + FinDock | Fundraising + FinDock |
---|---|---|
One-time donations | Opportunity + Installment | Gift Transaction + Installment |
Recurring donations | Recurring Donation + Opportunity + Installment | Gift Commitment + Gift Commitment Schedule + Gift Transaction + Installment |
Bulk gifts | Gift Entry + Opportunity + Installment | Gift 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.
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 label | Field name | Field description |
---|---|---|
Bank Statement Description | Bank_Statement_Description__c | The 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 Reference | Custom_Payment_Reference__c | Optional alternative payment reference to the generated payment reference. |
Final Payment Reference | Final_Payment_Reference__c | The payment reference used in practice to collect the installment. |
Generated Payment Reference | Generated_Payment_Reference__c | Automatically generated payment reference |
Mandate | Mandate__c | The mandate used to collect a gift transaction. |
Payment Method | Payment_Method__c | The payment method used to collect a gift transaction. |
Payment Processor | Payment_Processor__c | The payment processor that handled collecting a gift transaction. |
Payment Profile | Payment_Profile__c | The associated payment profile for a gift transaction. |
Payment QR | Payment_QR__c | The QR code that can be used to collect a gift transaction. |
Payment URL | Payment_Url__c | The URL link that can be used to collect a gift transaction. |
Target | Target__c | The target bank account that receives a gift transaction payment. |
FinDock fields on Gift Transaction
Field label | Field name | Field description |
---|---|---|
Bank Statement Description | Bank_Statement_Description__c | The 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 Reference | Custom_Payment_Reference__c | Optional alternative payment reference to the generated payment reference. |
Final Payment Reference | Final_Payment_Reference__c | The payment reference used in practice to collect the gift transaction. |
Generated Payment QR | Generated_Payment_QR__c | Auto-generated QR code that can be used to collect the gift transaction. |
Generated Payment Reference | Generated_Payment_Reference__c | Auto-generated payment reference |
Generated Payment URL | Generated_Payment_Url__c | Auto-generated URL link that can be used to collect the gift transaction. |
Mandate | Mandate__c | The mandate used to collect the gift transaction. |
Payment Method | Payment_Method__c | The payment method used to collect the gift transaction. |
Payment Processor | Payment_Processor__c | The payment processor that handled collecting the gift transaction. |
Payment Profile | Payment_Profile__c | The associated payment profile for the gift transaction. |
Recurring Payment QR | Recurring_Payment_QR__c | QR code that can be used to collect each payment of a recurring gift. |
Recurring Payment Reference | Recurring_Payment_Reference__c | Payment reference that can be reused for each payment of a recurring gift. |
Recurring Payment URL | Recurring_Payment_Url__c | URL link that can be used to collect each payment of a recurring gift. |
Target | Target__c | The target bank account that receives the gift transaction payment. |
Fundraising fields on FinDock Installment
Object | Field name | Field description |
---|---|---|
Installment | GiftTransaction__c | The 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.