|SharpSpring seamlessly syncs with Salesforce. This enables easy data transfer.
This article provides a description of the synchronization logic process but it 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 does not 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.
Regarding Personal Accounts
SharpSpring does not support personal accounts. You cannot sync accounts in Salesforce with contacts or leads in SharpSpring. The sync primarily syncs contact objects and lead objects from Salesforce with contacts and leads in SharpSpring. While the sync can pull account name data from Salesforce into SharpSpring, it is only to be associated with a linked contact or lead.
Personal accounts in Salesforce live in their Contacts tab. They are different entities altogether, but are housed on the Contacts dashboard. This can cause confusion when Salesforce users assume they are syncing everything in their Salesforce Contacts and Leads tabs, but all of the entities that occupy that dashboard may not necessarily be contact or lead objects or entities.
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.