This guide will take you through the steps to setup the GoFundraise Salesforce Connector Managed Package Solution:
- Setup Process
- Retrieve Record Type IDs
- Retrieve Security Token
- User Permissions Set
- Add credentials to GoFundraise
-
Data / Fields Synced
-
Event Campaign
- Salesforce Campaign Object
-
Fundraising Page
- Salesforce Contact Object
- Salesforce Campaign Object
-
Payment Item
- Salesforce Contact Object
- Salesforce Opportunity Object
- Salesforce Contact Role
-
Event Campaign
-
Update NPSP Settings
- Update Soft Credit Contact Roles
-
Deduplication
- Contact Deduplication
- Error Handling
Setup Process
- Install the GoFundraise Salesforce Connector.
Installation URL: https://login.salesforce.com/packaging/installPackage.apexp?p0=04t2w000009MhEC
Version Number: 1.7 (Released)
Download latest Install Package - Proceed to the GoFundraise App Screen and Select “GoFundraise Settings”
- Click “Configure Sync”
- Your Salesforce instance now has the Managed Package setup. This will just install all the fields and permission set required by the GoFundraise Salesforce Connector.
Retrieve Record Type Ids
GoFundraise will provide a list of the Record Types that we require to configure the sync map. You will need to retrieve the Record Type Identifiers for the record types.
See How to get record type identifier in Salesforce
(https://help.salesforce.com/s/articleView?id=000384487&type=1).
To get the Record Type IDs needed manually, from the top right corner go to Setup > Object Manager (use the Quick Find search bar on the left once in Setup)
For each Object Type below, we need the Record Type ID for the Record Types listed. GF will provide any additional ones if they are required.
OBJECT TYPE | RECORD TYPE | |
Campaign | Fundraising Page | |
Event | ||
Opportunity | Recurring Donation | |
Product | ||
Shipping | ||
Adjustment | ||
Deposit | ||
Registration | ||
Ticket | ||
Donation | ||
Other | ||
Account | Organization | |
- Search for the Object Type using the Quick Find search bar
- Click the object label to view Object details screen
- Click Record Type from left hand side menu
- For the Record Types we need, open in new tab. If more than one Record Type Label matches, view each and select the one where ‘Installed Package’ = GoFundraise Salesforce Connector.
- For example, the Record Type ID is in the URL of the Record Type details page e.g. 0120k000000YOq6AAG is the record type id for https://charityname--thirdparty.sandbox.lightning.force.com/lightning/setup/ObjectManager/Campaign/RecordTypes/0120k000000YOq6AAG/view
Retrieve Security Token
1. Go to Profile > Settings > Reset Security Token
2. Click ‘Reset Security Token’ button which will send token to user email
You will need this later.
User Permissions Set
As part of the managed package installation 2 permission sets will be created: “GoFundraise User” and “GoFundraise API User”.
“GoFundraise User” was created to ensure the users have applicable permissions to view the objects, fields, layouts and views created by the GoFundraise managed package within Salesforce.
“GoFundraise API User” was created to ensure the user account who connects the GoFundraise sync into Salesforce has the appropriate permissions. This permission set should be applied to the user for whom the GoFundraise sync will utilize. This user will also need to have the “Marketing User” option selected on their account.
Marketing User Selection:
Permission Set Assignment on an individual user basis: https://help.salesforce.com/articleView?id=perm_sets_assigning.htm&type=5
Or through the manage assignments function within the permission set
Add Credentials to GoFundraise
- Login to the GoFundraise Admin area (user must be a GoFundraise Admin user)
- From the dashboard click the ‘Return to Old View’ button
Wait a few minutes for the screen to load the old dashboard view (with blue left hand side menu)
- Click the ‘Profile’ icon from the left-hand side menu
- Click ‘Integration Status’ tab
- Scroll down and click the Salesforce icon (this is the Prod integration). Don’t click ‘Salesforce Test’ - this is for any Sandbox Connection.
- Once you select the icon, please complete the information request with the new credentials:
Username: Email address of the Salesforce User account
Password: SF Password for this same user
Security Token: SF token for this user - Please note, if the password for the user is changed in Salesforce, the new credentials will also need to updated in this section for the integration to work. Anyone setup as a GoFundraise Admin User for the beneficiary can access this area.
Data / Fields Synced
Event Campaign
> Salesforce Campaign Object
FIELD NAME | FIELD DESCRIPTION |
RecordTypeId | Event |
Parent | Parent Event Deduplication Id |
Status | Planned = N / In Progress = A / Completed = C |
IsActive | Status A + Total > 0 |
Type | Campaign |
Name | [Start Year] Event Name |
StartDate | Event Start Date |
EndDate | Event End Date |
Description | Event Description |
GoFundraise__rid__c | GoFundraise Id |
GoFundraise__id__c | Deduplication Id |
Fundraising Page
> Salesforce Contact Object
FIELD NAME | FIELD DESCRIPTION |
User Email | |
FirstName | User FirstName |
LastName | User LastName |
Salutation | User Title |
MailingCity | User Suburb |
MailingState | User State |
MailingCountry | User Country |
MailingPostalCode | User Postcode |
MailingStreet | User AddressLine1 |
MobilePhone | User MobileNumber |
HomePhone | User ContactNumber |
LeadSource | GoFundraise |
Birthdate | User Date of Birth |
GoFundraise__gender__c | User Gender |
GoFundraise__id__c | Deduplication Id |
> Salesforce Campaign Object
FIELD NAME | FIELD DESCRIPTION |
RecordTypeId | Fundraising Page |
Parent | Event Deduplication Id / Team Deduplication Id |
Status | Planned = N / In Progress = A / Completed = C |
Type | Team / Individual |
Name | [Create Date] Page Title – User Name (Page Type) |
IsActive | Status A + Total > 0 |
StartDate | Create Date |
EndDate | Expiry Date |
ExpectedRevenue | RaiseTarget |
Description | Page Title |
GoFundraise__customformdata1__c | |
GoFundraise__customformdata2__c | |
GoFundraise__customformdata3__c | |
GoFundraise__customformdata4__c | |
GoFundraise__customformdata5__c | |
GoFundraise__url__c | Page URL |
GoFundraise__minimumexpectedrevenue__c | MinimumRaiseTarget |
GoFundraise__rid__c | GoFundraise Id |
GoFundraise__id__c | Deduplication Id |
GoFundraise__fundraiser__r | Contact Deduplication Id |
Payment Item
> Salesforce Contact Object
FIELD NAME | FIELD DESCRIPTION |
Billing EmailAddress | |
FirstName | Billing FirstName |
LastName | Billing LastName |
Salutation | Billing Title |
MailingCity | Billing Suburb |
MailingState | Billing State |
MailingCountry | Billing Country |
MailingPostalCode | Billing PostCode |
MailingStreet | Billing AddressLine1 |
MobilePhone | Billing MobileNumber |
HomePhone | Billing ContactNumber |
LeadSource | GoFundraise |
GoFundraise__gender__c | Billing Gender |
GoFundraise__id__c | Deduplication Id |
> Salesforce Opportunity Object
FIELD NAME
|
FIELD DESCRIPTION |
Campaign
|
Page / Event Deduplication Id |
Name
|
FirstName LastName ProductType TranasctionDate |
LeadSource
|
GoFundraise |
RecordTypeId
|
ProductType / Recurring Donation / Default |
Type
|
Product type |
StageName
|
Closed Won = ‘A’ / Failed = ‘F’ / Refunded = ‘R’ / Pending = ‘N’ |
CloseDate
|
TransactionDate |
Amount
|
Item Amount |
Description
|
Item Description |
GoFundraise__optin__c
|
ReceiveNewsletter |
GoFundraise__fundraiser__r
|
Fundraising Contact Deduplication Id |
GoFundraise__contact__r
|
Billing contact Deduplication Id |
GoFundraise__unitprice__c
|
Item UnitPrice |
GoFundraise__quantity__c
|
Item UnitQuantity |
GoFundraise__id__c
|
Deduplication Id |
GoFundraise__pid__c
|
GoFundraise Payment Id |
GoFundraise__piid__c
|
GoFundraise Payment Item Id |
> Salesforce Contact role
FIELD VALUE | VALUE DESCRIPTION |
Fundraiser | |
Donor | |
Solicitor | |
Registrant | |
Ticket Holder | |
Other |
Contact Related List
A New Contact Related List is available to add to the default contact layout OR a user groups default layout can be changed to the GoFundraise managed layout to take advantage of this related list field.
Update NPSP Settings
Update Soft Credit Contact Roles
By Default the NPSP has it’s inbuilt roles assigned to Soft Credits. If you wish to apply soft credits to Fundraisers then you will need to add the “Fundraiser” contact role to the list of Soft Credit Roles. This can be done through NPSP Settings -> Contact Roles Setting Section.
CTRL+ Click to add the Fundraiser as an additional Selection (if you only click then you will remove the existing roles from the list).
Once saved you can run the Rollup Batch for all previously synced data to now have these soft credits assigned. To do this go to NPSP Settings -> Bulk Data Processes -> Rollup Donations Batch.
Deduplication
Campaign and Opportunity Deduplication is performed using a unique deduplication Id generated by the GoFundraise Salesforce connector. There is no deduplication performed on existing campaigns or opportunities which have been manually imported. Manually imported data will need to be merged with the data synced by the GoFundraise Salesforce connector.
Contact Deduplication
When upserting data we instruct the Salesforce API to use the External Id Field “GoFundraise__id__c” as the unique identifier of the object. This means that if the sync has inserted data previously, Salesforce will know to use the existing object to UPDATE. If there is no existing object with a matching “GoFundraise__id__c” field then Salesforce will attempt to INSERT the data.
The “GoFundraise__id__c” content is generated by a SHA1 hash of all lowercased and concatenated without spaces of the following:
• First 3 Letters of the First Name
• First 3 Letters of the Last Name
• Email Address
When Salesforce attempts to INSERT a new record
Contact deduplication happens in Salesforce following any active Matching Rules and Duplicate Rules within the Salesforce instance.
If Matching Rules and Duplicate Rules are deactivated within the Salesforce instance, or if a Duplicate Rule is set to ‘ALLOW’ or ‘WARN’, instead of BLOCK, then the Salesforce Bulk API will INSERT duplicate objects.
The sync relies on Matching Rules to identify potential duplicates, and on a Duplicate Rule to BLOCK our upsert if there is existing data within Salesforce that our platform doesn’t know about. After receiving the BLOCK error (response of “DUPLICATES_DETECTED” or “FIELD_CUSTOM_VALIDATION_EXCEPTION”), that triggers additional queries from our platform to search for existing contacts with the same Email (exact), FirstName (exact), and LastName (exact) and upsert the data into those existing contacts. This data also includes the GoFundraise deduplication Id and as such won't need to trigger these additional API calls for further syncs.
Error Handling
Salesforce instance performance can be severely impacted by additional triggers within Salesforce that are generally added to opportunity upsert actions. Further, some packages such as the NPSP, contain known bugs / limitations which cause error scenarios when importing large amounts of data. The GoFundraise Salesforce Connector will retry syncing data if an error response to some of these error scenarios:
Opportunity Upsert
“CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY”
“UNABLE_TO_LOCK_ROW”
Contact Upsert
“DUPLICATES_DETECTED”
“FIELD_CUSTOM_VALIDATION_EXCEPTION”
“CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY”
“UNABLE_TO_LOCK_ROW”
Campaign Upsert
““CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY”
“UNABLE_TO_LOCK_ROW”