|SharpSpring seamlessly syncs with Salesforce. This enables easy data transfer.
This article details the more important aspects of synchronizing SharpSpring and Salesforce.
Note: This article provides a description of the synchronization logic process and does not provide procedures to synchronize campaigns.
Relationships and Directions
The following table shows the relationship type and sync direction between Salesforce and SharpSpring.
Pull from Salesforce
Pull from Salesforce
Push to Salesforce
Push to Salesforce
The differences between push, pull, and two-way directions while mapping fields are as follows:
If a field is set to Push to Salesforce, the Salesforce field will
If Pull from Salesforce is selected, Salesforce will override
Push-and-Pull is a smart override sync that will change fields
Understanding Campaign Synchronization
Campaign synchronization is a two-way process. The logic for the synchronization is as follows:
- Query campaigns edited on SalesForce since the last sync.
- Obtain a list of all SharpSpring campaigns, indexed by Salesforce ID.
- For every campaign in the Salesforce list, attempt to find a campaign in SharpSpring with the given Salesforce ID.
- If the campaign does not exist in SharpSpring, insert the campaign.
- If the campaign exists in SharpSpring, do one of the following:
• If the campaign was more recently modified in Salesforce, update it in SharpSpring.
• If the campaign was more recently modified in SharpSpring, update it in Salesforce.
- Obtain a list of campaigns modified in SharpSpring since the last sync.
- For every campaign in the SharpSpring list, if the campaign is active and does not have a CRM Campaign ID, push it to Salesforce.
Understanding Opportunity Synchronization
Opportunity synchronization pulls from Salesforce. The logic for the synchronization is as follows:
- Obtain all opportunities modified in Salesforce since the last sync.
- For every opportunity in the Salesforce list, do the following:
• Obtain the campaign attached to the Salesforce opportunity in SharpSpring.
• Obtain the account attached to the Salesforce opportunity in SharpSpring.
• Obtain the deal stage in SharpSpring for the Salesforce opportunity if the stage
does not exist.
- If an opportunity exists in SharpSpring with the given SalesForce ID, do the following:
• Update account, campaign, and deal stage association for the opportunity.
• Update the opportunity name with the Salesforce name.
- If the opportunity does not exist in SharpSpring, create a new opportunity in SharpSpring.
Understanding Lead Synchronization
Lead synchronization is a two-way process. The logic for the synchronization is as follows:
- Obtain all leads modified in Salesforce since the last sync.
- For every lead in the Salesforce list, attempt to find the lead in SharpSpring by CRM ID or email address.
- If the lead exists, resolve field conflicts in every lead field in favor of pushing to Salesforce or pulling from Salesforce.
- If the lead doesn't exist, create the lead in SharpSpring.
- If the lead is associated with the given opportunity in Salesforce, associate the lead with the given opportunity in SharpSpring.
- Find all leads in SharpSpring modified since the last sync.
- Find all leads in the SharpSpring list that were not just pulled by Salesforce.
- For each lead, do the following:
• If the lead is a contact, do not push it.
• If the lead already has a CRM ID, do not push it.
• If Last Name, Company, and Email are set, push it.
Understanding Event Synchronization
Event synchronization pushes to Salesforce. The logic for the synchronization is as follows:
- Pull down all SharpSpring events that have happened since the last sync.
- For every event, if the event’s referenced lead has a Salesforce ID, do the following:
• Grab the what object from the event.
• Create a description of the event, based on the object of the event.
• Push that event to Salesforce.