Is this article for you? It covers services only available to Give Lively member nonprofits.
- Nonprofits that are not Give Lively members but receive donations through Charity Navigator’s Giving Basket should visit the Giving Basket FAQs.
- Nonprofits interested in Give Lively membership should visit our Membership page.
- Fundraisers and donors should click through to their relevant FAQ.
Is this article for you? It covers Salesforce integration services only available to Give Lively member nonprofits.
- Nonprofits that are not Give Lively members but receive donations through Charity Navigator’s Giving Basket should visit the Giving Basket FAQs.
- Nonprofits interested in Give Lively membership should visit our Membership page.
- Fundraisers or donors should visit the Donor resources and tools FAQs.
See our Salesforce integration logic and fields
An overview of how our updated Salesforce integration is built.
No items found.
Before You Get Started
This information applies to the updated version of our integration app.
If needed, here are instructions on how to install the app and update settings for the new version.
Video Overview
Video Transcript
Walkthrough
Sync donations
- Get a list of all donations associated with the nonprofit in the Give Lively platform.
- For each donation, check whether a Salesforce ID has already been recorded. If so, skip. If not, perform the following actions:
- Query the Salesforce API to get a list of all Salesforce “Opportunity” object fields for the given nonprofit Salesforce org.
- Check for the presence of the Opportunity-level npsp__Acknowledgment_Date__c field, to determine whether the org has NPSP (Nonprofit Success Pack) installed.
- Parse out donor email addresses.
- Query the nonprofit Salesforce org to check whether each given email address is already present in the org.
- If NPSP is not installed, attempt to match against Contact Email only.
- If NPSP is installed, match against Contact Email, Personal Email, Work Email, and Alternate Email.
- If multiple matches are found, choose the match with the higher Total Number of Gifts value.
- If there is a tie, then choose the contact with a populated mailing address.
- If there is another tie, then choose the most recently updated contact record.
- If a match is found, retrieve the Salesforce Contact ID to associate the donation(s).
- If no match is found, then create a new Contact with the following fields:
- FirstName
- LastName
- Phone (if donation was made via Text-to-Donate or Event Ticketing)
- LeadSource: "Give Lively"
- MailingPostalCode
- MailingCountry
- MailingAddress (if provided by donor)
- MailingStreet
- MailingCity
- MailingState
- give_lively__User_ID__c
- Create an Opportunity record with the following fields:
- Account
- Name: <donor_name> - $<donation_amount> - <recurring_or_one_time> <product_type>
- CloseDate
- StageName:"Posted"
- Probability: 100
- LeadSource: "Give Lively"
- Type: <"Recurring" or "One-Time">
- this data can be mapped to a picklist field of your choosing
- If NPSP is installed, also sync:
- npsp__Acknowledgment_Date__c
- npsp__Acknowledgment_Status__c: "Acknowledged"
- CampaignId: sf_campaign_id or null
- 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.
- give_lively__Donation_Id__c
- give_lively__Net_Amount__c
- give_lively__Payment_Platform_Transaction_Fee__c
- give_lively__Referrer_Url__c
- give_lively__Text_Code_Used__c
- give_lively__Widget_Type__c
- give_lively__Wideget_Url__c
- give_lively__Page_Type__c
- give_lively__Page_Url__c
- give_lively__Page_Slug__c
- give_lively__Utm_Source__c
- give_lively__Client_Application_Name__c
- give_lively__Event_Id__c
- give_lively__Campaign_Id__c
- give_lively__Anonymous_to_Public__c
- give_lively__Transaction_Fee_Covered_By_Donor__c
- npsp__Notification_Preference__c
- npsp__Honoree_Name__c
- npsp__Tribute_Type__c
- If there is a sf_campaign_id and a sf_contact_id, then create CampaignMember with the following fields:
- ContactID
- CampaignID
- 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
- Find the first payment, ignore any others
- Update the payment (npe01__OppPayment__c) with the following fields:
- Id: sf_payment_id
- npe01__Paid__c:1
- npe01__Payment_Date__c
- npsp__Payment_Acknowledged_Date__
- npsp__Payment_Acknowledgment_Status__c:'Acknowledged'
- npe01__Check_Reference_Number__c
- npe01__Payment_Method__c
- If NPSP is installed, skip creation of OpportunityContactRole. If not, create OpportunityContactRole with the following fields:
- ContactID
- OpportunityID
- Save SF record using REST API and save sf_opportunity_id in GL Platform record.
Sync campaigns
- Find all campaigns for the given nonprofit on the Give Lively platform.
- Check if sf_campaign_id already exists on the Give Lively platform for the campaign record. If so, skip. If not, do the following:
- Create a Campaign record in Salesforce with the following fields:
- Name: (truncated to 80 characters)
- give_lively__Campaign_Id__c
- IsActive: True
- Type: "Give Lively"
- Status: "In Progress"
- ExpectedRevenue:
- If Campaign has a Goal in the GL Platform, insert goal amount here.
- Description
- give_lively__Campaign_Url__c
- give_lively__Text_Code__c
- 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.
- Find all events for the given nonprofit on the Give Lively platform.
- Check if sf_campaign_id already exists on the Give Lively platform for the event. If so, skip. If not, do the following:
- Create a Campaign record in Salesforce with the following fields:
- Name: <Event - event_name>
- IsActive:1
- ParentId: <sf_campaign_id for campaign this event rolls up to in the Give Lively Platform>
- give_lively__Event_Id__c
- Type: "Give Lively"
- Status:"In Progress"
- Description
- give_lively__Campaign_Url__c
- Ticket Tier:
- give_lively__Amount_Tax_Deductible__c
- give_lively__Campaign__c
- give_lively__Description__c
- give_lively__Start_Availability__c
- give_lively__End_Availability__c
- give_lively__Price__c
- give_lively__Product_Type__c
- give_lively__Seats_per_Ticket__c
- give_lively__Tier_Title__c
- give_lively__Total_Available_Tickets__c
- Name
- Ticket Purchase:
- give_lively__Date_of_Purchase__c
- give_lively__Opportunity__c
- give_lively__Price__c
- give_lively__Ticket_Tier__c
- Name
- Save Salesforce record using REST API and save sf_campaign_id in Give Lively Platform record.
Downloads
Get Inspired
No items found.
RELATED ARTICLES