A Salesforce selective sync is a solution to integrating a HubSpot account that restricts access to specific segments of a Salesforce database. This sync can be used for a variety of different use cases. One example is if multiple organizations within a single Salesforce instance sync to separate HubSpot accounts or limit the contact sync to HubSpot based on a specific contact type.
This process can be complex and involve adjusting user permissions in Salesforce. Before setting up, you must confirm which specific objects need to be selectively synced and determine how you will sync them.
Pro Tip: If you need to limit which records sync to Salesforce, use your HubSpot Inclusion List.
Setting Up the Integration User
The integration user is what facilitates the connection between HubSpot and Salesforce. This user will help expose specific records from the Salesforce Org. It is essential to understand the sharing settings for the user and which records you want to “expose” to the integration user. This could require some trial and error, and it is recommended to test the selective sync in a HubSpot Sandbox, if possible, to avoid any issues in a working HubSpot instance.
Create a New Salesforce Profile
The first step to creating the integration user is to create a new Salesforce Profile. To navigate, go to Setup > Users > Profiles.
Clone the System Administrator profile to ensure you have all the necessary permissions. After cloning, edit the profile’s standard object permissions by unchecking the “view all” and "modify all” under the “Data Administration” permissions for each object that you are selectively syncing.
Example: If you are selectively syncing contacts, accounts, leads, and opportunities, make sure to uncheck the boxes for each of these. If left checked, the integration user will be able to see all the records regardless of the sharing rules that will be set up.
Also, keep in mind any associations between objects. If an object links two objects together, it could show records outside of the sync you are setting up. If this is the case, you will also want to uncheck the “View All” checkbox from those records. “Modify All” can remain checked.
Within the profile set up under the “Administrative Permissions,” make sure to uncheck the boxes that state “Modify All Data” and “View All Data” if they have not been automatically unchecked after adjusting the object settings. Leaving these checked will override any rule sets.
Create a New Role
Next, create a new role for the integration user: Setup > Users > Roles > Setup Roles.
Click on the ‘Add Role’ link where you would like to place your role in the hierarchy. It is essential to understand the permission dependencies tied to the organization’s structure because the placement of the role may impact access and override the sharing rule sets. Before setting this up, it is best to consult your Salesforce Administrator.
Pro Tip: In the simplest approach, it is suggested to create the new role at the highest level of the Role Hierarchy, so the new role is outside any existing hierarchical permission schemes. To do so, click "Add Role” above the Administrator role.
Don’t worry about the contact access settings for the role, as the sharing rules will override them.
Create the New User
Next, in User Settings, click on Users > New User. Create the new user in Salesforce and assign them the role and the profile you previously created.
Assign Permissions to the Integration User
Go to the Salesforce Org Permission Sets under User Settings > Permission Sets and assign the newly created user to the HubSpot Integration Permission set. This will only appear as an option if you have installed the HubSpot Package into the Salesforce Org when connecting Salesforce and HubSpot.
Configure the Sharing Settings
When configuring the sharing settings, it is vitally important to double-check everything. To set these up, go to Setup > Security > Sharing Settings.
- Private Settings
First, make sure the Organizational Wide Default Sharing Setting for each object is set to private. This will typically be the case for multiple companies sharing a Salesforce Org, but it is crucial to ensure. If it is public, each profile must be individually edited.
- Define Sharing Rules
Next, create new sharing rules for how the integration user will interact between HubSpot and Salesforce. There is a wide variety of sharing rules which will be dependent on the business. One standard practice is to use “Record Types.” Many businesses operating inside of one Org already differentiate their accounts, leads, contacts, and opportunities by Record Types. So, if your client is unsure where to start, this is a valuable recommendation.
In the example above, we are using the record type as criteria for the sharing rule for accounts. So for our "HSQ Selective Sync" Role, any account with a record type of "HSQ Employer, HSQ Health System, HSQ Customer, HSQ Health Plan," the integration user will have access to read and write those records. Anything that does not meet that criteria cannot be seen by the integration user. Make sure to do this for every object you are syncing.
It is also necessary to look at the sharing overrides section at the bottom. Make sure that the integration user profile name does not appear there. If it does, that means the object "view all" and "modify all" setting was not unchecked, and you need to go back and uncheck it under the Profile settings.
QA & Troubleshooting
Once all the sharing rules are in place, log into the newly created Salesforce user. If you can see all records, not just the ones you limited the user to, something is likely wrong, and you should double-check the role hierarchy and the sharing settings.
When connecting HubSpot with a selective sync, only those that meet the sharing rules will sync over. To test this, make sure you set up a HubSpot sandbox and connect it with the new user. Then, sync the records to ensure only the desired ones are syncing. Adversely create records in both HubSpot and Salesforce to test different objects to confirm the sync is working correctly.
Our expert team at Revenue River has solved complex problems like these for our clients worldwide. This is something we're extremely proud of, considering the complexities of this process.