Salesforce Integration Mappings
Salesforce integration includes Donor & Donation, Guest, and Volunteer sync options.
Donor and Donation Sync Process Details
When a user starts a donation sync from the Salesforce integration page, the process unfolds as follows:
Identify and handle donor information
Initial step when syncing a donation is to locate or create the <contact> record in Salesforce that corresponds to the donor record in BetterUnite.
If the donor is already sync'ed with Salesforce previously, then the Salesforce contact id that's stored on the donor record is retrieved.
- If the donor was not sync'ed previously or the donor id could not be retrieved any longer from Salesforce, then the system tries to match to an existing contact in Salesforce.
- Integration looks up the contact by email address.
- If a single match is found, it will map to this contact
- If multiple matches are found, it will suggest the list of matching contacts and allow the user to pick one or indicate that they want to create a new one instead
- If no matches were found, then it will create a new contact record in Salesforce
- First Name, Last Name, and Email (Primary Email) fields will be mapped to Salesforce <contact> FirstName, LastName and Email fields, and tags*.
- Integration looks up the contact by email address.
- If Salesforce contact record was retrieved, the donation will be mapped to this contact record in Salesforce
- If the setting to auto-update existing donor is turned on, then the matching donor will be updated with the latest data from the BetterUnite contact record
- *Tags: tags correspond to "topics" in Salesforce. You may need to turn on the topics feature for contact entity in your Salesforce instance for this information to be available during sync. Refer to the Salesforce Connection Setup instructions for more information on how to turn on this feature in Salesforce.
Create donation for the contact above
After the contact record is obtained or created, a Salesforce "donation" record can be established. The Salesforce nonprofit add-on transforms the standard <opportunity> entity into a donation entity. Consequently, BetterUnite will align with the "opportunity" entity in Salesforce (which will appear as a donation in Salesforce). Salesforce categorizes donations as "closed won" opportunities, so the integration stage will automatically default to this status.
Below opportunity fields are updated during donation creation:
- Name: [Contact Name] Donation [Donation Date]
- Description:
- If donation has line items, they will be summarized into text as such: [item name] (quantity)
- If donation has a note, the note will also be appended to the description
- StageName: "Closed Won"
- Amount: Based on integration settings, can be intended amount, gross, net or paid amount to organization
- CloseDate: Donation Date
- CampaignId: Salesforce campaign id set on the mapping page
- AccountId: If the matched contact has an account association, it will be used here to associate the opportunity with the account
Once the donation "opportunity" record is established in Salesforce, the integration will update the primary contact on the opportunity to the specified contact. This linkage is accomplished by creating an <OpportunityContactRole> entity in Salesforce.
If the integration settings are configured to itemize donations, the donation integration steps will be repeated for each donation component, including each gift line item, fees, and miscellaneous donation amounts, which will be integrated as separate donations.
Guest or Volunteer Sync
On the integration page you will see separate tabs for Guest and Volunteer sync options. Each tab will display the relevant campaign types, namely events or volunteer sign up pages.
Within each tab, you can sync all participants for the mapped campaigns. The behavior of both guests and volunteers sync methods are identical.
The sync process will create "Campaign Member" records in Salesforce campaign for your guests.
Here are some highlights of the integration:
- Only participants (guests or volunteers) with a contact record will be synced (i.e. if the participant has an email address associated)
- You can run the sync as many times as you need
- Participants with changed contacts will be reconciled so that the new campaign member with the updated contact record will be created, as a result, any campaign member that was previously created for a different contact record will be removed.
- Salesforce has default Campaign Member Statuses as: Sent, and Responded.
- Campaign Member statuses will be mapped as follows:
- RSVPed => "RESPONDED",
- CheckedIn => "RESPONDED",
- CheckedOut => "RESPONDED",
- Registered => "SENT",
- NotAttending => "SENT",
- Invited => "SENT",
Additional Donation Sync Notes
Contact matching and contact requirements
BetterUnite matches donors to Salesforce Contacts primarily by email address.
If multiple Salesforce contacts match the same email, the sync will prompt you to choose the correct contact or create a new one.
A Last Name is required to create a new Salesforce Contact. If missing, that transaction cannot create a new contact until the donor profile is updated.
Donation stage behavior
Synced donations are created as Salesforce Opportunities (Donation records in NPSP).
Stage is typically set to Closed Won.
If your Salesforce org has a Posted stage configured for Opportunity, BetterUnite can use Posted for final synced donations.
Fair Market Value (FMV) mapping
If your Salesforce org has the NPSP FMV field (npsp__Fair_Market_Value__c), BetterUnite will populate Fair Market Value for applicable gift-related transactions.
If that field is not available in your org, FMV is skipped.
Pledge Handling Details
When a BetterUnite payment is associated with a pledge, sync behavior differs from one-time donations:
BetterUnite attempts to locate and update the existing open pledge Opportunity rather than creating unrelated standalone opportunities.
Opportunity Amount reflects the total pledged amount.
Payment activity updates pledge progress and includes payment context in Opportunity details.
If your Salesforce org supports NPSP Payment records (npe01__Payment__c):
BetterUnite also creates a linked Payment record per pledge payment installment. Otherwise, pledge payments are synced as regular donation records.
Have more questions or need help setting up your integration?