Integrations

Native Salesforce Integration

Zack Shepherd
Zack Shepherd
  • Updated

SPOTIO’s Native Salesforce Integration allows admin users to seamlessly sync data between SPOTIO and Salesforce.  This data can include information specific to objects in SPOTIO, as well as information specific to activities logged in SPOTIO.  The SPOTIO native SF integration is a real time 2 way sync.

Overview:

  • Makes data in your Salesforce account more valuable by keeping it up to date and synced in real time with what your reps activities in the field.
  • Saves you time by minimizing double entry and the need to enter objects and activities directly into your Salesforce account.
  • Provides better visibility into data from your salesforce account within SPOTIO, preventing the need to navigate between 2 separate apps in the field

Best Practices:

  • Start by syncing your Salesforce sandbox account with your SPOTIO account to test the integration prior to syncing it to a live Salesforce account.
  • Use SPOTIO’s “Selective Sync” feature to filter what data passed to and from Salesforce.  This ensures that neither your SPOTIO or SF account get overloaded with unnecessary records.
  • After configuring the integration manually run some tests to ensure that it is working as expected.
  • After testing, check the integration “Logs” to see if there are any compatibility errors between SPOTIO and Salesfoce.

Connecting Salesforce Account

Step 1:  Authentication

The first step in setting up a salesforce integration is to login as an admin user on the Web version of SPOTIO and navigate to Settings > Integrations > Salesforce.

image5_bordered.png

From this menu users can select to either connect SPOTIO to a Salesforce Sandbox account by checking the check box for this, or they can connect to a production Salesforce account by selecting the yellow “Log In to Salesforce” button.

 

image24_bordered.png

Selecting either of these options will result in the user being prompted to input the Salesforce login credentials for the account (or sandbox) they are wanting to connect to.

 

image1_bordered.png

After successfully connecting to a Salesforce account users will see the email address of the account they connected to in the top right corner of the integration setup screen next to the word “Connection”.  Clicking on this will allow the user to either remove or connect to another salesforce account.



Step 2: Navigating the Setup Menu

Next you can set up your Objects and Users syncs within the setup menu.

image34_bordered.png

Selecting “Sync Objects” will allow you to define object and field mapping between SPOTIO and Salesforce, as well as the direction and conditions under which data will sync from either side. 

 

Selecting “Sync Users” will allow you to selectively sync users into SPOTIO by role. With the Users sync, you can create users in SPOTIO from your Salesforce Account, with their Salesforce User ID mapped to SPOTIO’s External User ID field. This creates a connection between the user in SPOTIO and the user in Salesforce.



Syncing Users

When users are synced from SFDC, a connection is established between the SPOTIO user and the Salesforce user. This will create records/activities in their name in Salesforce when created in SPOTIO and will allow you to assign records from Salesforce to have those assignments appear in SPOTIO. 

image23_bordered.png

About Read Only users in SPOTIO - 

When users are created through the Users Sync, they are created as Read Only users. ReadOnly users do not count towards your licenses or billing. 

When a ReadOnly user needs to have access to SPOTIO, they can be invited from the Users & Teams Page within Settings and have a mobile number added to their User profile to grant them access to SPOTIO. 

Step 1:  Selecting User Role

image33_bordered.png

SPOTIO has 3 user roles – Admin, Manager, and Sales. Each has different permissions within the app. You can map selected groups or individuals to specific SPOTIO roles by enabling a Users sync for each role. 

 

Step 2:  Selecting Users and Enabling Sync

Toggle the Radio button at the top of the page to “Selected Users” You can select from individual users, or particular groups of users within the selective sync criteria. Once enabled, only users that have the selected attributes or individually selected users will be mapped to SPOTIO users. 

 

image20_bordered.png

Step 3:  Advanced Options

image26_bordered.png

Use Email instead of User Name - you can select if the email value from Salesforce is from the User name or User email field. 

Automatically create users in SPOTIO when created in Salesforce - When a user is created in Salesforce matching selective sync criteria configured in SPOTIO User Sync, that user will be created in SPOTIO as a ReadOnly user

Automatically delete users when deleted in Salesforce – When a user in Salesforce matching selective sync criteria configured in SPOTIO User Sync is removed from Salesforce, that user will be suspended in SPOTIO.



Step 4: Sync Data Now

image22_bordered.png

After enabling the sync, any users in SF that match your sync criteria are created in SPOTIO mapped to the user role specified in the Users sync configuration page once updated from Salesforce.

 

To sync your users into SPOTIO manually, choose the “Sync Data Now” option on the User Sync. Select the date range you want to sync data from and select “Apply”, this will sync data based on your date range. This is a bulk process, it may take some time for you to see updates come across from Salesforce. 

 

Syncing Objects

Make sure your SPOTIO account is configured for your Salesforce setup before you begin setting up the Object Sync. Some important notes about the structure of your SPOTIO account are below: 

About: Object Relationships

image3_bordered.png

SPOTIO’s record types, called dataObjects, can be related in a Parent/Child hierarchy. See more below: 

  • dataObjects can be related in a Parent/Child hierarchy in SPOTIO
  • Each dataObject is either a Parent or a Child
  • A Child dataObject can be related to a Parent, but can also exist without a related Parent
  • Multiple child dataObject types can be related to a single Parent

About: Custom Fields 

You can create custom fields within your custom objects for specific data you want to capture/display. 

image13_bordered.png

Pro Tip: When mapping SPOTIO and Salesforce fields, input types must align with one another. It is important to keep this in mind when building out your SPOTIO account to house your Salesforce data, or want to push data into Salesforce fields.

See below a list of input types with the type of field they map to in Salesforce in parentheses: 

  • Text (Text)
  • MultiLine (Text Area) 
  • Date (Date)
  • DateTime (DateTime) 
  • SingleChoice (Picklist) 
  • MultiChoice (Multi-Select)
  • Number (Number)
  • Currency (Currency)
  • Email (Email) 
  • Phone (Phone) 

About: Required Fields

image2_bordered.png

Fields in SPOTIO can be required on Stage updates, ensuring that critical information is captured at key moments in the sales process. 

Pro Tip: All required fields must be mapped in the Field Mapping step of the configuration. If a field is required in either Salesforce or SPOTIO, it must be mapped to a corresponding field.

 

For more information on configuring your SPOTIO account to align with Salesforce for your integration, see our article here

 

Configuring Object Sync

Step 1:  Object Selection

image25_bordered.png

Select SPOTIO Object, Select the SF object to connect it with from the list of options that appear. You can search for a Salesforce object by name to connect to your SPOTIO object.

 

Step 2:  Sync Direction

image27_bordered.png

You can choose to sync one direction from Salesforce to SPOTIO, from SPOTIO to Salesforce, or create a bi-directional sync. 

Use the toggles to turn each direction “On” or “Off” 

Choose if you would like to sync Past & Future data or Future data only for Salesforce > SPOTIO connection. 

Pro Tip: When first connecting and testing your integration, select Future Data Only to prevent syncing unnecessary historical records from Salesforce into your SPOTIO account

 

Step 3:  Selective Sync

Use selective sync criteria to ensure that records are synced to Salesforce or SPOTIO when records have certain defined attributes. This prevents unnecessary records from syncing into either your Salesforce or SPOTIO instance. You can set selective sync for both the SPOTIO > Salesforce and Salesforce > SPOTIO sides of the integration. 

Selective sync criteria are the defined attributes that records must have in order to sync updates or trigger record creation in the other system. 

image7_bordered.png

To turn on Selective sync, choose the “Only When” option under the Sync. This opens the gray section below to allow you to select what attributes records should have in order to sync with Salesforce. 

 

SPOTIO to Salesforce

Select what criteria you would like to apply on the dropdown to the left side of the screen. On the SPOTIO to Salesforce selective sync, data will sync from SPOTIO to Salesforce under these conditions.

  • Available Criteria - Last Visit Result, Stage, SingleChoice fields

You can select multiples for each option - for example having multiple “Stages” in your selective sync will allow for record creation/updates in Salesforce when the record in SPOTIO is in any of the selected stages. image31_bordered.png

You can combine multiple conditions by using the +AND operator in the selective sync configuration. 

For example if I choose Stage = Qualified AND “Last Visit Result” = Appointment Set, data will only be passed to Salesforce if the SPOTIO record is in the “Qualified” stage and the result of the last visit logged on the record was “Appointment Set”.


Salesforce to SPOTIO 

The selective sync does the same thing on the Salesforce to SPOTIO side – allowing you to define the attributes of records that are allowed to sync data back to SPOTIO. 

Updates sync from Salesforce to SPOTIO under these conditions

  • Available Criteria - Picklist Fields

Other Settings - Selective Sync

Salesforce Default Owner

image36_bordered.png

You must choose who should be the default owner of a record in Salesforce when the SPOTIO user does not match a user in Salesforce. When a user creates a record in SPOTIO or updates an existing record and that user does not exist in Salesforce, the resulting record created or updated in Salesforce is assigned to this default owner. 

SPOTIO Default Owner

image10_bordered.png

You must choose who should be the default owner of a record in SPOTIO when the Salesforce user who creates or updates a record does not match a user in SPOTIO. When a user creates a record in Salesforce or updates an existing record and that user does not exist in SPOTIO, the resulting record created or updated in SPOTIO is assigned to this default owner. 

Don’t override with default owner on update

image15_bordered.png

You have the option to disable passing the default owner’s information when updates come back from Salesforce, allowing SPOTIO users to retain ownership of their records even if they are updated from Salesforce. 

 

Step 4:  Field Mapping

Within the field mapping step, you can map the fields in your SPOTIO object to corresponding fields in your Salesforce object. For each field, you can choose what Salesforce field it maps to and define a Sync Rule or set it to “Do Not Sync”. 

image8_bordered.png

At the top of the screen you will see how many fields can be mapped, as well as any required fields that must be matched before you can proceed. All required fields on both sides of the integration must be mapped to a corresponding field. 

Select “Auto-Map” to automatically map your SPOTIO fields to commonly used matching fields in Salesforce. 

“Do Not Sync” - fields and choice options selected as “Do Not Sync” will not sync to SF from SPOTIO or to SPOTIO from Salesforce

 

Address Field Mapping

Address Components - You can map the components of an Address from Salesforce such as House Number, Street, City, State, Zip, Country, Latitude and Longitude.

Skip Geocoding - SPOTIO uses Google Maps API to fill in incomplete address information and to create Pins on the map through the geocoding process. Address information may be updated once created in SPOTIO and those updates can overwrite the address in Salesforce if the sync rule is “Two-way”, providing you with the most up-to-date information for that location. If you do not wish for SPOTIO to change your addresses from Salesforce, enable the “skip geocoding” checkbox to disable geocoding and maintain your original Salesforce address.

 

Mapping Choice Options

For fields mapped to Picklist fields in Salesforce, you can map individual choice options for SingleChoice/Picklist type fields using the slider icon. 

image32_bordered.png

For each field you can choose what option in SPOTIO aligns with what option in Salesforce from the dropdown or choose “Do Not Sync”.

image29_bordered.png

Sync Rules 

Sync Rules allow you to define which system will take precedence when updates occur in mapped fields. 

image16_bordered.png

You can choose Sync Rules on individual fields to prefer Salesforce values only, Salesforce values unless blank, or the most recent value from either system (two-way) 

You can define different Sync Rules per field to have fine-grained control over what data syncs to/from each system at an individual field level. 

 

dataObject Relationships - Parent Field 

image6_bordered.png

This is a field available on Child objects in SPOTIO used to denote a Salesforce relationship. Child objects in SPOTIO can be related to Parent objects. The Salesforce object you would like to relate another Salesforce object to should be the Parent object in SPOTIO within your workflow configuration. 

image14_bordered.png

For example, to relate Contacts to Accounts, you would set your workflow in SPOTIO with Accounts parenting Contacts and map the Salesforce Account ID to the Parent Field on the SPOTIO Contact in the Contact Object Sync. This will relate Contacts to their Accounts in SPOTIO, allowing a user to click into the Account object and view associated Contacts. 



Syncing Activities

SPOTIO’s activities can be mapped to either Tasks or Events within Salesforce. To learn more about Activity Types in SPOTIO, see our article on how to customize your Activities in SPOTIO.

 

The Activity Sync can be set up for each object you would like to sync activities to in Salesforce. You can sync the same activity to multiple objects, so whether that activity is captured on the Account or Contact level in SPOTIO you can sync it to the appropriate Salesforce Object. 

 

Important note: SPOTIO's Activity sync supports a one way push of Activities to Tasks or Events and bi-directional updates on Tasks synced to Salesforce from SPOTIO only. 

 

Step 1:  Activity Selection

Select the activity you would like to sync on your Salesforce object. The activity sync is the last step in configuring the integration for your selected objects.image28_bordered.png

You can choose to map SPOTIO activities to either Tasks or Events in Salesforce. 

 

Step 2:  Field Mapping

Map the fields from your SPOTIO activity to your Salesforce Tasks/Events. You can create additional fields in your Activity object in Salesforce to capture any additional data from SPOTIO Activities you may want to store there. 

 

image12_bordered.png

 

Activity Fields - 

Below is a description of the SPOTIO fields that can be mapped for each Activity and the data sent from the SPOTIO side:

  • Status - When activity is done in Spotio then we set “Completed” in SF, otherwise Not Started
  • Activity Date - Mapped SF field is updated with activity date
  • Description - Mapped SF field is updated with activity Notes or text Text property
  • Subject - Mapped SF field is updated with activity title
  • Priority - always send “Normal” (fixed) in a SF field
  • Duration - Mapped SF field is updated with activity duration
  • Duration In Seconds - Mapped SF field is updated with activity duration in seconds
  • OwnerEmail - Activity owner’s email is set in a SF field
  • OwnerUserName - Activity owner’s name is set in a SF field
  • Name* - name of activity (e.g. appointment, visit) is set in a SF field
  • Type - text: “task” or “event” are set in a SF field
  • Category - text: “In Person” or “Virtual” are set in a SF Field
  • Distance - the distance from the record address when the activity is completed in SPOTIO
  • Location Verified - True or False is sent to a SF field
  • Lat/Lng - activity’s latitude and longitude are sent to SF fields
  • VisitResult - activity’s result is sent to a SF field when Activity is completed in SPOTIO
  • CallPhoneNumber - activity’s phone number is set to a SF field
  • CallDirection - inbound or outbound is sent to a SF field
  • CallResult - activity’s result is sent to a SF field when Activity is completed in SPOTIO
  • Email - activity’s email address is set to a SF field
  • EmailSnippet - email body is sent to a SF field 
  • EmailDirection - inbound or outbound is sent to a SF field
  • Text - message body of a Text is set to a SF field
  • TextPhoneNumber - phone number set to a SF field
  • TextDirection - inbound or outbound is sent to a SF field

Monitoring Logs

SPOTIO’s logs within the native Salesforce integration help you ensure records and updates sync successfully, and diagnose and troubleshoot errors.

image17_bordered.png

Step 1:  Accessing and Filtering Logs

View Logs by clicking on the View Logs button in the top left corner of the main page. Use the filter options to isolate specific actions, objects, dates, and sync direction. 

Type - Select the Sync you want to view Logs for. You can choose from object syncs, activities, or users. 

Date Range - select the dates From/To which you would like to view logs

Connection - Incoming/Outgoing - Choose which direction you would like to view logs for

  • Incoming - from Salesforce to SPOTIO
  • Outgoing - from SPOTIO to Salesforce 

HTTP Methods

image9_bordered.png

You can use the HTTP Method filter to narrow down to specific types of actions the integration is performing.

  • GET - Retrieve data from the server
  • POST - Send new data to the server
  • PUT - Update existing data
  • DELETE - Delete existing data

Combine this with the Incoming/Outgoing filter to be able to filter down to what you want to see. A few example filters you may want to use are below: 

  • New Record Created in SPOTIO to SF = "Outgoing", "POST"
  • Record Updated in Salesforce from SPOTIO = "Outgoing", "PUT"
  • Record Updated in SPOTIO from Salesforce = "Incoming", "PUT"

 

Step 2:  Identifying Success and Error Messages

Each entry in the Log will tell you the HTTP Method, Response Code, direction, date and time. 

image35_bordered.png

Clicking into the “Details” will show you the exact data that was sent/updated 

image30_bordered.png

On an unsuccessful attempt you’ll see the reason failure occurred as well, including if any required fields were missing and errors on field validation (such as a phone number with an improper format).

image21_bordered.png

For example, this Account did not sync from SPOTIO to Salesforce because a required field was missing at the time the request was attempted.

 

HTTP Status Codes

image18_bordered.png

200- Data was successfully sent to the server.

400 - Bad request

401/403 - You are not authorized or you don’t have permission

500 - The server had a problem processing the request

 

Conclusion

The Native Salesforce Integration with SPOTIO streamlines data synchronization, providing real-time updates between field reps and your CRM. By configuring object and user syncs, and utilizing selective sync, you ensure only relevant data flows between systems, reducing manual entry and errors. This integration boosts productivity by keeping information up-to-date, enhancing visibility for both field and office teams. With its flexible, two-way sync, SPOTIO helps optimize operations, ensuring your sales force (and your Salesforce.com instance) remains efficient and aligned with business goals.

Was this article helpful?

Have more questions? Submit a request

Comments

0 comments

Please sign in to leave a comment.