See our Salesforce integration logic and fields, app versions 1.3 and later

An overview of how our updated Salesforce integration (version 1.3) is built.

No items found.

Before You Get Started

This information applies to the updated version of our integration app. For the integration logic and fields of our older integration, go here.

If needed, here are instructions on how to install the app and update settings for the new version.

Video Overview

Text Walkthrough

Sync donations

  1. Get a list of all donations associated with the nonprofit in the Give Lively platform.
  2. For each donation, check whether a Salesforce ID has already been recorded. If so, skip. If not, perform the following actions:
  3. Query the Salesforce API to get a list of all Salesforce “Opportunity” object fields for the given nonprofit Salesforce org.
  4. Check for the presence of the Opportunity-level npsp__Acknowledgment_Date__c field, to determine whether the org has NPSP (Nonprofit Success Pack) installed.
  5. Parse out donor email addresses.
  6. Query the nonprofit Salesforce org to check whether each given email address is already present in the org.
    1. If so, retrieve the Salesforce Contact ID to associate the donation(s).
    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)
      9. MailingStreet
      10. MailingCity
      11. MailingState
      12. give_lively__User_ID__c
      Note: Give Lively's integration does not create Account records while creating Contact records, as the Nonprofit Success Pack is designed to handle this process automatically.
  7. Create an Opportunity record with the following fields:
    1. Account
    2. Name: <donor_name> - $<donation_amount> - <recurring_or_one_time> <product_type>
    3. CloseDate
    4. StageName:"Posted"
    5. Probability: 100
    6. LeadSource: "Give Lively"
    7. Type: <"Recurring" or "One-Time">
      1. this data can be mapped to a picklist field of your choosing
    8. If NPSP is installed, also sync:
      1. npsp__Acknowledgment_Date__c
      2. npsp__Acknowledgment_Status__c: "Acknowledged"
    9. CampaignId: sf_campaign_id or null
      1. If Donation was made through a Give Lively Campaign, and the Give Lively Campaign was already synced to Salesforce, then we retrieve the SF Campaign Id of the synced Campaign and insert it here.
    10. give_lively__Donation_Id__c
    11. give_lively__Net_Amount__c
    12. give_lively__Payment_Platform_Transaction_Fee__c
    13. give_lively__Referrer_Url__c
    14. give_lively__Text_Code_Used__c
    15. give_lively__Widget_Type__c
    16. give_lively__Wideget_Url__c
    17. give_lively__Page_Type__c
    18. give_lively__Page_Url__c
    19. give_lively__Page_Slug__c
    20. give_lively__Utm_Source__c
    21. give_lively__Client_Application_Name__c
    22. give_lively__Event_Id__c
    23. give_lively__Campaign_Id__c
    24. give_lively__Anonymous_to_Public__c
    25. give_lively__Transaction_Fee_Covered_By_Donor__c
    26. npsp__Notification_Preference__c
    27. npsp__Honoree_Name__c
    28. npsp__Tribute_Type__c
  8. If there is a sf_campaign_id and a sf_contact_id, then create CampaignMember with the following fields:
    1. ContactID
    2. CampaignID
  9. If NPSP is installed, check to see whether Payment record 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
  10. If NPSP is installed, skip creation of OpportunityContactRole. If not, create OpportunityContactRole with the following fields:
    1. ContactID
    2. OpportunityID
  11. Save SF record using REST API and save sf_opportunity_id in GL Platform record.

Sync campaigns 

  1. Find all campaigns for the given nonprofit on the Give Lively platform.
  2. Check if sf_campaign_id already exists on the Give Lively platform for the campaign record. If so, skip. If not, do the following:
  3. Create a Campaign record in Salesforce with the following fields:
    1. Name: (truncated to 80 characters)
    2. give_lively__Campaign_Id__c
    3. IsActive: True
    4. Type: "Give Lively"
    5. Status: "In Progress"
    6. ExpectedRevenue:
      1. If Campaign has a Goal in the GL Platform, insert goal amount here.
    7. Description
    8. give_lively__Campaign_Url__c
    9. give_lively__Text_Code__c
  4. Save Salesforce record using REST API and save sf_campaign_id in Give Lively Platform record.

* At this time, our integration maps donations to unique Salesforce campaigns created via sync. We do not currently allow changing this mapping (for example, to another campaign in your Salesforce instance), but this is planned for a future release.

Sync events

Event ticket tiers do not sync into Salesforce with our legacy 1.1 app version, but do sync with this updated version.

  1. Find all events for the given nonprofit on the Give Lively platform.
  2. Check if sf_campaign_id already exists on the Give Lively platform for the event. If so, skip. If not, do the following:
  3. Create a Campaign record in Salesforce 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 Give Lively Platform>
    4. give_lively__Event_Id__c
    5. Type: "Give Lively"
    6. Status:"In Progress"
    7. Description
    8. give_lively__Campaign_Url__c
  4. Ticket Tier:
    1. give_lively__Amount_Tax_Deductible__c
    2. give_lively__Campaign__c
    3. give_lively__Description__c
    4. give_lively__Start_Availability__c
    5. give_lively__End_Availability__c
    6. give_lively__Price__c
    7. give_lively__Product_Type__c
    8. give_lively__Seats_per_Ticket__c
    9. give_lively__Tier_Title__c
    10. give_lively__Total_Available_Tickets__c
    11. Name
  5. Ticket Purchase:
    1. give_lively__Date_of_Purchase__c
    2. give_lively__Opportunity__c
    3. give_lively__Price__c
    4. give_lively__Ticket_Tier__c
    5. Name
  6. Save Salesforce record using REST API and save sf_campaign_id in Give Lively Platform record.


Downloads

Get Inspired

No items found.

Related Articles