Salesforce Integration Details
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",
Have more questions or need help setting up your integration?