See our Salesforce integration logic and fields

An overview of how our Salesforce integration was built, specifically designed for the Nonprofit Success Pack.

Examples

No items found.

Before You Get Started

IMPORTANT: When the integration is connected, all previous donations and event purchases made on your Give Lively fundraising pages will automatically sync to Salesforce. New donations and event purchases will sync within an hour of being marked as “paid.” New Campaign, Contact and Opportunity records will be created during this same hour window.

Ensure that the authenticating user has the following permissions:

  • "Read, Create and Edit" on Account, Contacts, Campaigns, Opportunities, Payments
  • "Read and Edit" access to ALL FIELDS on the objects that Give Lively writes to or uses in matching (see below)
  • Access to the appropriate Record Types on the aforementioned objects
  • "Read/Write" access to any Account and Contact record that should be considered for matching and which is associated with a gift synced from Give Lively
  • "Read/Write" access to all Opportunity records created by the integration (in case Owner is subsequently changed)
  • "Read/Write" access to all Campaign records created by the integration (in case Owner is subsequently changed)
  • API Enabled via Profile or Permission set
  • Marketing User = TRUE on own User Record 

Other essential considerations:

  • The email address of the System Administrator User will be the authenticating user and ideally should not have a password that expires. Make note that the user email should be evergreen, i.e. integrations@nonprofit.org. Here is an excellent article by Salesforce about creating a Dedicated Salesforce Integration User.
  • The Give Lively integration is not currently compatible with NPSP’s native “State and Country Picklists” feature. If you have State and Country Picklist enabled, you must disable this feature prior to establishing the integration.
  • Our integration attempts to match a Give Lively donor to an existing Contact in your Salesforce organization based on the email in the standard Email field. (This will be the value in the email field marked as preferred in NPSP.) If an exact match is not found, a new Contact is created. Currently this is the only option for Contact matching.
  • At this time, a peer-to-peer fundraiser’s details do not sync to Salesforce. Peer-to-peer donations are synced with the parent campaign as their primary campaign source, and P2P donations will not soft credit the fundraiser. These gifts are not specifically distinguished from other gifts in the current sync behavior.
  • At this time, dedication (in honor/memory of) information is not labeled as such and is not specifically distinguished from other gifts in the current sync behavior.
  • ACH/bank account donations will not sync or be recorded in the sync logs until the transaction has successfully been processed by the donor’s bank.

Video Overview

Text Walkthrough

Sync Donations

  1. Get a list of all donations generated in the GL platform for Nonprofit.
  2. Check to see whether sf_opportunity_id already exists on the GL platform for given donation. If so, skip. If not, do the following:
  3. Query SF API to get a list of all SF “Opportunity” object fields for given Nonprofit SF Instance.
  4. Check whether npsp__Acknowledgment_Date__c is one of the object keys. If so, assume the SF instance has NPSP installed.
  5. Parse out donor email address.
  6. Query Nonprofit SF Instance to check whether email is already in Nonprofit SF Instance.
    1. If so, get SF Contact ID.
    2. If not, create a new Contact with the following fields:
      1. Email
      2. FirstName
      3. LastName
      4. Phone (if donation was made via Text-to-Donate)
      5. LeadSource: "Give Lively"
      6. MailingPostalCode
      7. MailingCountry
      8. MailingAddress (if provided by donor)
  7. Assumes “Account” is automatically created, regardless of whether NPSP installed
  8. Create Opportunity record with the following fields:
    1. AccountId
    2. Account
    3. Name: <donor_name> - $<donation_amount> - <recurring_or_one_time> <product_type>
    4. CloseDate
    5. StageName:"Posted"
    6. Probability: 100
    7. LeadSource: "Give Lively"
    8. Type: <"Recurring" or "One Time">
      1. this data can be mapped to a picklist field of your choosing
    9. If NPSP is installed, also sync:
      1. npsp__Acknowledgment_Date__c
      2. npsp__Acknowledgment_Status__c: "Acknowledged"
    10. CampaignId: sf_campaign_id or null
      1. If Donation was made through a GL Campaign, and the GL Campaign was already synced to Salesforce, then we retrieve the SF Campaign Id of the synced Campaign and insert it here.
  9. If there is a sf_campaign_id and a sf_contact_id, then create CampaignMember with the following fields:
    1. ContactID
    2. CampaignID
  10. If NPSP is installed, check to see whether Payment object was automatically created by querying Nonprofit SF Instance (using "npe01__OppPayment__c") and npe01__opportunity__c = sf_opportunity_id
    1. Find the first payment, ignore any others
    2. Update the payment (npe01__OppPayment__c) with the following fields:
      1. Id: sf_payment_id
      2. npe01__Paid__c:1
      3. npe01__Payment_Date__c
      4. npsp__Payment_Acknowledged_Date__
      5. npsp__Payment_Acknowledgment_Status__c:'Acknowledged'
      6. npe01__Check_Reference_Number__c
  11. If NPSP is installed, skip creation of OpportunityContactRole. If not, create OpportunityContactRole with the following fields:
    1. ContactID
    2. OpportunityID
  12. Save SF record using REST API and save sf_opportunity_id in GL Platform record.


Sync Campaigns 

  1. Find all campaigns for given Nonprofit on the GL platform.
  2. Check if sf_campaign_id already exists on the GL platform for the campaign record. If so, skip. If not, do the following:
  3. Create Campaign object in SF with the following fields:
    1. Name: (truncated to 80 characters)
    2. IsActive:1
    3. Type: "Give Lively"
    4. Status: "In Progress"
    5. ExpectedRevenue:
      1. If Campaign has a Goal in the GL Platform, insert goal amount here.
    6. Description
      1. Inserts JSON representation of key value pairs we pass to Campaign.
      2. Includes page_url and text_code key value pairs, which are otherwise not represented in standard SF Campaign objects.
  4. Save SF record using REST API and save sf_campaign_id in GL Platform record.


Sync Events

Event ticket tiers currently do not flow into Salesforce.

  1. Find all events for given Nonprofit on the GL platform.
  2. Check if sf_campaign_id already exists on the GL platform for the event. If so, skip. If not, do the following:
  3. Create Campaign object in SF with the following fields:
    1. Name: <Event - event_name>
    2. IsActive:1
    3. ParentId: <sf_campaign_id for campaign this event rolls up to in the GL Platform>
    4. Type: "Give Lively"
    5. Status:"In Progress"
    6. Description
      1. Inserts JSON representation of key value pairs we pass to Campaign.
      2. Includes page_url key value pair, which is otherwise not represented in standard SF Campaign objects.
  4. Save SF record using REST API and save sf_campaign_id in GL Platform record.


Sync P2P Donations

At this time, fundraiser details do not sync to Salesforce. P2P donations will roll up to the parent campaign (primary campaign source field). At this time, P2P donations will not soft credit the fundraiser.

Within the Nonprofit Admin Portal

Integrations > Sync Logs, members will have the opportunity to:

  1. Control Data Mapping Settings for the Core Profile
    1. Allow members to select a default campaign for all general fund (Core Profile) donations.
  2. Control Data Mapping Settings for Donations
    1. Select a ClosedLost stage name.
    2. Select a ClosedWon stage name.
    3. Select a default campaign for all general fund (Core Profile) donations.
    4. Select a record type for Opportunity and Account records.
    5. Select the Salesforce Opportunity field to store the “One Time”/“Monthly Recurring” designation.

* At this time, our integration maps donations to a unique Salesforce campaign generated by our integration. We don't currently allow changing this mapping (for example, to another campaign in your SF instance), but we plan on this for a future release.


Downloads

No items found.

Related Articles

Integrate our platform with Salesforce

Give Lively offers a Salesforce integration specifically designed for the Nonprofit Success Pack. Here's how to trigger it.
No items found.