Summary
The HubSpot integration enables bidirectional sync of CRM data. It's easy to set up, yet flexible, enabling you to tailor the configuration to suit your data
If some data isn't syncing as you expected, this article takes you through some simple steps to check your configuration, and helpful tools you can use to better understand your data sync
This article also answers various questions you might have about the integration that aren't covered in the main setup article or the deep-dive article
Who is this article for?
All Planhat users
It's particularly relevant to those setting up the HubSpot v2 integration
Series
This article is part of a series on the HubSpot v2 integration:
HubSpot v2 integration: troubleshooting and FAQ โฌ ๏ธ You are here
Article contents
Introduction
๐ Important to note
This article relates to version 2 (v2) of Planhat's HubSpot integration - the current version.
For information on troubleshooting v1, the legacy version of the HubSpot integration, see here.
When you integrate Planhat and HubSpot, there's a high likelihood that you are syncing high volumes of data. Sometimes, you may have questions as to why some data synced in the way it did, or why it didn't sync at all. This article is here to help.
Here, we guide you through some simple checks you can make and investigative tools at your disposal, and also answers additional questions you may have about the HubSpot integration.
General troubleshooting advice
When you are setting up the HubSpot integration, ensure you follow the instructions here.
If data doesn't seem to be syncing as you expected, here are some things to check:
If nothing is syncing, is the "Enable the HubSpot integration" toggle switch at the top of the integration turned on?
If historical records haven't synced in, did you click the "Full Sync" button?
If specific data is missing:
Is the sync direction correct for that model/object and any relevant field?
Have you applied a filter that is preventing specific records from being fetched from or sent to HubSpot?
If the missing data is for a specific field, is that field mapped in the integration?
If a list/multipicklist field value has not synced, does that field value exist in both Planhat and HubSpot, with the value in Planhat matching the label value in HubSpot (or internal value if your HubSpot integration was set up that way)?
Both Planhat and HubSpot can only accept specific values
An example of a validation error would be if a Planhat list field has "Medium" as a valid value, but the data attempting to sync from HubSpot is the field value "Med" - or vice versa
This wouldn't block the whole record from fetching though - only the particular field in question
If an Owner/User field isn't syncing, does the User exist in HubSpot and Planhat with the same email address?
Does the user who authenticated the HubSpot integration have the necessary permissions to read HubSpot data?
Does the relevant Company have a "primary" association in HubSpot?
We use the "primary" association in HubSpot to link the record to a Company in Planhat
The first association in HubSpot automatically becomes the primary. If you have multiple associations, you can set in the HubSpot UI which one is your primary
If we (Planhat) can't find a "primary" association in HubSpot for a record, we can't associate it with a Planhat Company, and so the whole record is rejected
This is particularly important to note in case you have deleted the primary record in HubSpot. HubSpot won't automatically assign another primary, so you will need to mark a different HubSpot Company as the primary association in order for Planhat to fetch the data!
Query tool
The query tool within the HubSpot integration is a really useful way for you to investigate if data isn't syncing how you expected. It makes it easy for you to look up a specific HubSpot record synced to Planhat, and see the fields and their values. This helps you work out what's going on, if something seems to be wrong.
For example, let's say you notice that updates aren't reaching a Planhat record (e.g. the Tesla Company record), even though you know there have been updates to the record in HubSpot. You could check that record with the query tool, and you might discover that a HubSpot field has a value that doesn't match the permitted options for the Planhat field it's mapped to.
Another use case could be that you personally have access to Planhat but not to HubSpot, so the best way for you to understand what's happening on the HubSpot side, so you can troubleshoot, is using the query tool.
So how do you use it? At the bottom of the HubSpot integration, showing in place of the last model/object sync section (but above the blue "Add New Section" button), you'll see "Query HubSpot". Open this section up to reveal the query tool.
It's super easy to use:
Use the dropdown on the left to select a model/object sync section (e.g. Company to Company)
Enter (paste in) a relevant HubSpot record ID (e.g. of a specific Company) into the right-hand field
๐ Tip: You can typically find this in the source ID field in Planhat
Click the blue "Execute" button to run the query
Integration logs
The integration logs are another helpful tool you can use when investigating what's happened in a sync, to identify any potential issues.
Every sync job is shown in the integration logs. You'll find the logs in the top right of the integration:
Clicking "Show Logs" will show something like this:
Each row in the logs can be expanded to show further information. If there are any errors, these are also listed, with additional detail.
Questions and answers
If you've already read through our main HubSpot setup article and our technical deep-dive article, but you still have questions about the HubSpot integration, you've come to the right place! Here we answer some questions you might have.
Is it possible to have some Planhat records (e.g. Licenses or Opportunities) each link to multiple Companies in Planhat - i.e. have Companies share these - to reflect a setup with Partner and Agency Companies in HubSpot?
This is not possible - Planhat requires one Company per record, for most models
Does the integration support parent/child relationships (group structure) for Companies?
This can't currently be synced in from HubSpot to Planhat automatically by the integration, but you can achieve this via Automations - speak to your TAM or CSM, who will be able to give details, and set this up for you if desired
What would happen to any ongoing sync if I disconnected and reconnected?
Any ongoing sync jobs would be picked up where they left off
What would happen to any ongoing sync if I disabled and re-enabled the integration using the toggle?
Any ongoing sync jobs would be stopped and deleted
Conversation Owners in Planhat are stored in the "Team Members" field, which is an array - how does this sync with single "Owner" or "User" type fields in HubSpot?
When syncing this from HubSpot to Planhat, Planhat will replace the whole array with the value received from HubSpot
When syncing this from Planhat to HubSpot, Planhat will send the first value in the array to the HubSpot field
Are there any HubSpot objects that aren't available in the integration?
HubSpot Timeline
HubSpot Emails
HubSpot Products (because they don't support the associations we require)
HubSpot Line Items
This is because they don't support a direct association with HubSpot Company, and in the Planhat data structure we would need them each to be directly associated with a Planhat Company
However, if you have configured the integration so that Planhat Company is not mapped to HubSpot Company, but instead is mapped to a different HubSpot object that does have a direct association with HubSpot Line Items, then you could sync Line Items to Planhat
Why is the name of a HubSpot field in the integration sometimes showing the API name rather than the field label?
This is because the integration sends queries to refresh field names, to enable us to map fields you might just have created in HubSpot. While this is happening, the API name is temporarily exposed - this is the "actual" name of the field which we use for sending API requests to HubSpot!
Why are records syncing between Planhat and HubSpot even when there wasn't an update to any of the mapped fields?
This is because we send data to HubSpot based on there having been any update to that record in Planhat, since the last time that sync section ran a "send"
And we fetch data from HubSpot based on there having been any update to that record in HubSpot, since the last time the sync section ran a "fetch"
Why won't a Planhat License accept an end date from HubSpot in some circumstances?
This could be because the License was created without a value for the end date, (either because the end date wasn't mapped, or the HubSpot field mapped to the Planhat end date didn't have a value), as that would set the Planhat License to be open ended. An open-ended License will only accept an end date if its status is lost
Can I create a ticket in Planhat and sync it back to HubSpot?
If you map HubSpot Tickets to the Planhat Conversation Type "ticket", note that it is a reserved standard Conversation Type within Planhat. Conversations of this Type can only be created via integrations (such as this HubSpot integration) or the API. This means you can't create records of this Type via the Planhat UI to send back to HubSpot
Alternatively, rather than mapping HubSpot Tickets to Planhat "tickets", you could map them to a custom Conversation Type in Planhat, and that way you could create the relevant tickets within the Planhat UI and sync them to HubSpot
Can I reply to a HubSpot Ticket via Planhat?
No, it's not possible to respond to HubSpot Tickets from within Planhat
I synced Planhat Conversations (with different Conversation Types) to HubSpot Notes, but when the Notes synced back to Planhat, the Conversation Types were lost. Why? How can I prevent this?
Conversations in Planhat can have different Conversation Types, but Notes in HubSpot don't (and you can't set this up via custom fields). That means if you sync such Conversations from Planhat to HubSpot Notes and then back again, you will lose the Conversation Types
The workaround for this is to map Planhat Conversations to the HubSpot Call object, because HubSpot Calls can have Call Types, and you can configure HubSpot Call Types and Planhat Conversation Types to match up. This means that the Conversation Type would be correctly synced into Planhat.
Because you specify the Conversation Type in the integration sync section, you would need to set up a separate sync section for each of your custom Conversation Types you would like to sync, such as "Kick Off"
The HubSpot screenshot below shows where/how you can enable Call Types and edit options in HubSpot
The Planhat screenshot below shows the recommended/required fields for mapping Calls, with an example of a custom Conversation Type selected
Click the images to view them enlarged
Next steps
If you've read all the documentation and you still need additional guidance, please reach out to our Support team, or your TAM or CSM - we'll be happy to help.