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.
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:
Email
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
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.
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: <"One-Time", "Recurring", or "Event Purchase">
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.