Similarly to Clients, in order to sync Contacts between ClientSuccess and HubSpot, you will need to create a Contact level Property within your HubSpot, and then map that Property to ClientSuccess. This "Single Checkbox" type Property will indicate which Contacts you would like to sync, with checked = sync, and unchecked = do not sync.
Here's an example of what that Property might look like:
Once you have this Contact level Property in place, you'll configure your mapping as highlighted below. With the ClientSuccess field mapped to "ID - Force Sync [Adv]", and the HubSpot side mapped to your own HubSpot Property. In this case, the Property is called "Sync w/ClientSuccess Contact":
Keeping Your Contact Sync Updated
Manually checking and unchecking your Contact level sync w/ClientSuccess checkbox can be a chore. Alternatively, we recommend leveraging HubSpot's Workflows to keep this checkbox up to date. If you've configured your Company/Deal setup based on our standard recommendations, then below is a Workflow that may work well to manage your Contact level sync.
***Please note that if you're syncing HubSpot Deals to ClientSuccess Contacts, this workflow will not work due to HubSpot's API limitations.***
Keep in mind that at the end of the day, ClientSuccess will simply look for Contacts that have had their checkbox, checked. How you configure your Workflow, and what criteria you consider when checking/unchecking your Contact sync Property, is 100% up to you.
Contact to Deal Associations
Only those who have mapped their Clients to the HubSpot "Deals" object need to review this section.
Within the HubSpot UI, you can see that HubSpot makes an association between Deals, and Contacts that are associated with them, as seen here:
Unfortunately, at the API level, this association, or relationship between Deals and Contacts is not accessible. This is a limitation on the side of HubSpot, and impacts all 3rd party applications that have built integrations with their API. This means that in order for us to know which Deal a Contact belongs to, we'll need to do that through an additional custom Property, and a very simple HubSpot Workflow.
Here's a video highlighting both how to configure your custom Property, and how to setup your Workflow to populate your Contacts with their Associated Deal ID:
Once you have completed the steps outlined in that video, you'll then want to setup your mapping similarly to below:
While the above configuration does provide an effective workaround, and establishes an API level relationship between Contacts and Deals, there is one critical limitation to be aware of.
Your Associated Deal ID Property can only house a single Deal ID.
- This means that Contacts in ClientSuccess can only ever be associated with a single Client.
- Which Client will a Contact be associated with?
- A Contact will be associated with whichever Deal's ID is in their Associated Deal ID property.
- Consider the example below. Brian Halligan is associated with two Deals: "Fake First Test" and "Fake 2nd Test". Brian was associated initially to "Fake First Test", populating that Deal's ID in the Associated Deal ID property.
- Later, Brian was then associated with a new Deal, "Fake 2nd Test". At this point, the deal ID for "Fake 2nd Test" replaced the previous value (Fake First Test's Deal ID), with Fake 2nd Test's Deal ID.
- What happens in ClientSuccess at this point? Assuming that both of these Deals exist in ClientSuccess as Clients, Brian's Contact details will move from Fake First Test, completely removing his Contact record from that Client, and will be moved to Fake 2nd Test's Client Record.
- Brian will now exist on a single Client Record, underneath Fake 2nd Test.
While it's not ideal, this is the workaround that HubSpot directly recommended, until they allow 3rd party integrations to identify a native relationship between Contacts and Deals, as is done in the HubSpot UI. There is no ETA on when this could become available.