SharpSpring seamlessly syncs with Salesforce enabling easy SharpSpring--Salesforce data transfer. The following table shows the relationship type and sync direction between Salesforce and SharpSpring.
|Accounts||Pull from Salesforce|
|Opportunities(incl. Deal Stage)||Pull from Salesforce|
|Lead Score||Push to Saleforce|
|Events (form submissions, page visits, emails, email opens)||Push to Salesforce|
IMPORTANT! When importing, use a full export from Salesforce not a report. SharpSpring recommends the full 18 character Salesforce CRM ID for the integration, which does not populate with Salesforce report.
Mapping in SharpSpring
If you haven't already, check out the Connecting Salesforce to SharpSpring support article. After you've connected Salesforce you can quickly map fields to SharpSpring.
Push, Pull, Two-way: Keep in mind the differences between push, pull and two-way sync while mapping fields. If a field is set to "Push to Salesforce" the Salesforce field will be updated every time a change is made in SharpSpring. If "Pull from Salesforce" is selected Salesforce will override SharpSpring fields every time a change is made. "Push and Pull (bi-directional)" is a smart override sync that will change fields in both services. When you are finished mapping fields for leads, you can go ahead and map Contacts in the next tab. Check out the shot of the mapping tool below.
The Salesforce Side
When a change is made to a Lead or Contact in Salesforce it will appear in the "Activity History" log on the contact or lead's page.
Bonus Tips for Power Users
After you've finished mapping here are a few tips to keep in mind to get even more value out of Salesforce integration.
- When a lead is deleted in Salesforce it is also deleted in SharpSpring
- Every field defaults to "Push and Pull (bi-directional)" if it is capable
- Lead Status is not automatically synced. You will need to add this using the Lead Score Widget
- Navigate to the "Widgets" tab to add two SharpSpring widgets to Salesforce widgets. Read about these below
SharpSpring--Salesforce Widget descriptions:
- Lead Score Widget: Allow Sales Reps in SalesForce to see a graphical Lead Score
- Contact HyperLink Widget: Directly link to leads and contacts in SharpSpring Contact Manager in Salesforce
Advanced Details (for Salesforce Guru's Only)
Here is a detailed breakdown of how the sync process works. These are not steps but rather a short description of the parts of the syncing process.
Account Sync Process (Two-way Sync)
- Query Accounts edited on Salesforce since last sync.
- Get a list of all SharpSpring accounts, indexed by Salesforce ID
- For every account in Salesforce list:
- Attempt to find an account in SharpSpring with the given Salesforce ID
- If an account exists in SharpSpring, update its name.
- Otherwise, insert the account into SharpSpring
Campaign Sync Process (Two-way Sync)
- Query Campaigns edited on SalesForce since last sync
- Get a list of all SharpSpring Campaigns, indexed by Salesforce ID
- For every Campaign in Salesforce list:
- Attempt to find a campaign in SharpSpring with the given Salesforce ID
- If the Campaign exists in SharpSpring:
- If the Campaign was more recently modified in Salesforce, update in SharpSpring
- If the Campaign was more recently modified in SharpSpring, update in Salesforce
- If the Campaign doesn't exist in SharpSpring:
- Insert the Campaign
- Get a list of Campaigns modified in SharpSpring since last sync
- For every Campaign in the SharpSpring list:
- If the Campaign is active and doesn’t have a CRM Campaign ID, push it to Salesforce.
Opportunity Sync Process (Pull From Salesforce)
- Get all Opportunities modified in Salesforce since last sync
- For every Opportunity in Salesforce list:
- Grab the Campaign attached to the Salesforce Opportunity in SharpSpring
- Grab the Account attached to the Salesforce Opportunity in SharpSpring
- Create the Deal Stage in SharpSpring for the Salesforce Opportunity, if the stage doesn’t exist
- If an Opportunity exists in SharpSpring with the given SalesForce ID
- Update Account, Campaign and Deal Stage association for the opportunity
- Update Opportunity name with Salesforce name
- If the Opportunity does't exist in SharpSpring
- Create new Opportunity in SharpSpring
Lead Sync Process (Two-way Sync)
- Get all Leads modified in Salesforce since last sync
- For every Lead in Salesforce list:
- Attempt to find the lead in SharpSpring by CRM ID or alternatively, email address
- If the lead exists:
- For every lead field:
- Resolve field conflicts 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 last sync
- Find all leads in SharpSpring list that weren’t just pulled by SF
- For each lead:
- If the lead is a contact, don’t push it
- If the lead already has a CRM ID, don’t push it
- If Last name, Company, and Email are set, push it
Event Sync (Push to Salesforce)
- Pull down all SharpSpring events that have happened since the last sync
- For every event:
- If it's a “Form Submit”, “Page Visit”, “Important Page Visit”, “Email Sent” or “Email Opened” event
- If the event’s referenced lead has a Salesforce ID
- Grab the “what” object from the event: email, page URL, etc…
- Create a description of the event based on the object of the event
- Push that event to SalesForce