HubSpot
HubSpot is an all-in-one cloud CRM, sales, and marketing platform.
Data integration: Skyvia supports importing data to and from HubSpot, exporting HubSpot data to CSV files, replicating HubSpot data to relational databases, and synchronizing HubSpot data with other cloud apps and relational databases.
Backup: Skyvia Backup supports HubSpot backup.
Query: Skyvia Query supports HubSpot.
Establishing Connection
To create a connection with HubSpot, sign in with HubSpot and select the account to use.
Creating Connection
While creating a connection, you need to perform the following steps:
-
Click Sign In with HubSpot.
-
In the opened window, enter your HubSpot credentials and click Log in.
-
Select your account to use and click Choose Account.
-
Scroll the opened page to the bottom, select the checkbox, and click Connect app to approve the access request.
Additional Connection Parameters
Metadata Cache
You can specify the period after which Metadata cache is considered expired.
Batch API
Skyvia supports HubSpot Batch API to load data into Contacts, Companies, Tickets, and Products objects. By default, it uses Batch API to load data to these objects. The Use Batch API checkbox in the Advanced Settings controls using Batch API via the connection.
Batch API allows much higher performance and lower API call use but also provides less information about the success or error of an operation. For example, Batch API does not return the IDs of inserted records. Thus, when using batch API, you won’t get the ids of inserted records in Import success logs and won’t be able to use the Import Returning feature.
Additionally, you cannot use Batch API with synchronization packages because synchronization relies on obtaining inserted record IDs to establish correspondence between source and target records. Thus, if you plan to use a HubSpot connection for synchronization of HubSpot Contacts, Companies, Tickets, or Products or use the Returning import feature for obtaining record IDs when loading data to these objects, you need to turn off Batch API for this connection.
Custom Objects
HubSpot allows enterprise customers to create custom objects and store data in them. Skyvia supports HubSpot custom objects - it can load data from and to them. Custom object support is not enabled by default. You need to explicitly select the Use Custom Objects checkbox in the Advanced Settings to work with custom objects.
Besides, if you change this setting for an existing connection, you need to clear the connection metadata cache. You can do it by clicking the Clear now link. If changes are made to the custom objects metadata, you also need to clear the metadata cache of the connection so that Skyvia can detect these changes.
Column-wise Chunking
If the Column-wise chunking checkbox is selected, requests to the ContactListContacts, Contacts, and Deals objects are split into multiple ones with different fields queried if the request URI exceeds 8000 characters.
HubSpot limits the request URI to 8190 characters by default. In some cases, ContactListContacts, Contacts, and Deals objects may have so many fields that Skyvia exceeds this limit and receives the 414 Request-URI Too Large error when querying data from all of the fields. Selecting the Column-wise chunking checkbox allows you to avoid such errors.
However, in such cases request number increases, and thus, more API calls are consumed and performance decreases. You may consider querying only a part of the fields in such cases to avoid increasing the number of requests and API calls spent.
Customize Associations
With this parameter, you can select only those object associations you will work with. It allows selecting multiple associations. If you don’t specify the needed associations, only the static associations will be available by default.
Disconnecting HubSpot from Skyvia
To disconnect HubSpot from Skyvia, you can uninstall Skyvia in your HubSpot settings:
- Sign in to HubSpot.
- Select your account in the top right corner of the page.
-
Select Profile & Preferences.
- In the menu on the left, under Account Setup, select Integrations -> Connected Apps.
-
In the list of connected applications, find Skyvia and click Actions. Then click Uninstall.
This will revoke all the OAuth tokens in connections created on Skyvia.
After this, all the Skyvia connections to your HubSpot account will stop working, and all the integrations, backups, automations, endpoints, and queries using these connections will also stop working.
Alternatively, you can disconnect HubSpot from Skyvia by deleting all the HubSpot connections you have created together with all the objects that depend on the connections: integrations, endpoints, backups, automation, and queries. Deleting the connection object and all the related objects on Skyvia would ensure no traces of data are stored on Skyvia, for example, in error or success logs, etc.
Connector Specifics
Object Associations
HubSpot objects may relate to each other by associated records. Record associations are always two-way (if record A is associated with record B, record B is associated with record A).
For user convenience, Skyvia represents object associations as pairs of objects with reversed names, for example, DealContacts — ContactDeals. HubSpot object specified in the left part of the name contains less data than the object specified in the right part of the name. If you query data from each object in the pair, you receive the same results, but the query performance and the number of used API calls may differ. This approach allows users to manage the query performance.
For example, you have many contacts with a few associated deals in HubSpot. Use the DealContacts object to get the list of all related deals and contacts instead of ContactDeals. In this case, Skyvia reads all the Deals IDs first and then retrieves the Contacts IDs. It takes less time and API calls to query this association from DealContacts than from ContactDeals.
Static Association Objects
By default, the most popular associations are available in our HubSpot connector. Skyvia represents them by the following objects:
DealContacts — ContactDeals
DealTickets — TicketDeals
ContactTickets — TicketContacts
CompanyTickets — TicketCompanies
EngagementContacts — ContactEngagements
EngagementTickets — TicketEngagements
EngagementCompanies — CompanyEngagements
EngagementDeals — DealEngagement
Dynamic Association Objects
HubSpot allows associating standard and custom objects. You can create tens of associations between HubSpot objects and work with the specific associations in Skyvia. To do that, specify the associations you want to work with in the Customize Associations parameter in the connection Editor. Skyvia will add the specified associations as separate objects in the connector. You can adjust the list of the displayed associations if needed.
Associations between standard objects are activated automatically. The associations involving custom objects must be activated in HubSpot UI. Such associations are available in Skyvia if the Use Custom Objects parameter is enabled.
Skyvia represents the dynamic association objects by a combination of object names divided by the underscore. For example, Contacts_To_Deals, Deals_To_Contacts. If the relation includes the custom object, its foreign key field will have the name Left_ID or Right_ID, depending on the position of the custom object in the relation.
Object Peculiarities
Deals
AssociatedCompanyIds, AssociatedVids, and AssociatedDealIds fields originate from the deprecated HubSpot API version. They are present in the Deals object for compatibility. Exclude these fields from queries or mapping to improve performance if they are unnecessary in your query or integration.
CompanyId field is an additional virtual field in this object. Due to API specifics, Skyvia must perform additional API calls to read it. This impacts performance when querying the Deals object. Exclude this field from a query when you don’t need it.
Property History
Skyvia supports getting a list of changes made to records or fields in HubSpot Deals, Contacts, Companies, Tickets, and LineItems objects. Skyvia represents history data in separate read-only objects for each of them DealsHistory, ContactsHistory, CompaniesHistory, TicketsHistory, LineItemsHistory. These objects store large data volumes. To improve query performance, we recommend using filters when querying data from these objects.
DML Operations Support
Skyvia supports DML operations for such Greenhouse objects
Operation | Object |
---|---|
INSERT, UPDATE, DELETE | BlogAuthors, BlogPosts, BlogTopics, CallProperties, Calls, CommunicationProperties, Communications, Companies, CompanyProperties, ContactProperties, Contacts, DealPipelines, DealPipelineStages, DealProperties, Deals, EmailProperties, Emails, Engagements, Folders, Forms, LineItems, MarketingEmails, MeetingProperties, Meetings, NoteProperties, Notes, Pages, PostalMail, PostalMailProperties, Products, Quotes, QuotesProperties, TaskProperties, Tasks, Templates, TicketPipelines, TicketPipelineStages, TicketProperties, Tickets, UrlMappings |
INSERT, UPDATE | Owners |
INSERT, DELETE | BroadcastMessages, Comments, CompanyContacts, CompanyDeals, CompanyEngagements, CompanyTickets, ContactCompanies, ContactDeals, ContactEngagements, ContactTickets, DealCompanies, DealContacts, DealEngagements, DealLineItems, DealTickets, EngagementCompanies, EngagementContacts, EngagementDeals, EngagementTickets, InvoiceLineItems, LineItemDeals, LineItemInvoices, TicketCompanies, TicketContacts, TicketDeals, TicketEngagements, Workflows |
DELETE | Files |
Supported Actions
Skyvia supports all the common actions for HubSpot.
Data Integration Tutorials
You can read the following tutorial on HubSpot - Zoho CRM integration: How to Import Deals and Contacts from Zoho CRM to HubSpot Preserving Relations
Troubleshooting
Current Oauth-token Does Not Have Proper Permissions!
If you have such an error, the HubSpot account you are using to connect does not have access to that tool.
For example, see the following links at the HubSpot community portal:
- https://community.hubspot.com/t5/APIs-Integrations/Oauth-Token-does-not-have-proper-permissions-Issue/m-p/248934
- https://community.hubspot.com/t5/APIs-Integrations/Oauth-token-does-not-have-proper-permissions-contact-api/m-p/248560
414 Request-URI Too Large
Such an error means there are too many custom fields in the object you are querying. To avoid this error for ContactListContacts, Contacts, and Deals objects, select the Column-wise chunking checkbox in the connection editor (in Advanced Settings). Alternatively, you can exclude some fields from the query (or replication, backup, or export - depending on where you get this error).
If you get such an error for other HubSpot objects, contact our support, and we will extend the effect of this checkbox to cover them.
You Have Reached Your Ten_secondly_rolling Limit
The You have reached your ten_secondly_rolling limit error happens when too many API calls to HubSpot are made within 10 seconds. This is a HubSpot API limit. To avoid such an error, make sure that your HubSpot integrations don’t run at the same time, both integrations and backups on Skyvia and other integrations.
If such an error occurs while making a snapshot in the HubSpot backup, you may try to divide your backup into several ones with different objects and launch them at different times.
FAQ
How can I connect Power BI to HubSpot?
You can integrate HubSpot with Power BI through Skyvia Connect. Skyvia Connect is a cloud service that allows you to easily publish your data from various sources via the OData protocol and make it available in JSON or XML format over the web. For more details, see Connect You can access the created endpoint directly in Power BI. Refer to Power BI documentation. Another option is to use a replication package. You move data for analysis to your relational database and access this database in Power BI. For more details, see Replication.
Skyvia logs show that 200 records are not synced to Hubspot because of the error, but I don’t see exact error message in error logs
You get no error message because Batch API is used. In this case, if one or more records in a batch fail, the whole batch is considered failed, and it’s not possible to obtain an exact error message. You can temporarily clear the Use Batch API checkbox in the Advanced Settings of the connection and reimport failed records. This can help you identify specific records causing the error and its reason.