HubSpot

HubSpot empowers your sales and marketing teams with tools to help manage your funnel, from attracting visitors to closing customers. This article will give you an overview of the HubSpot/Grow integration and what you can expect.

In this article, we will cover:

Connecting to Hubspot

  1. Click on the Data tab at the top left of the global navigation. You will be brought to your Data Connections.
  2. Click on the blue Connect button and search for HubSpot.
  3. Click on the HubSpot logo.
  4. A window will pop up to log in with your HubSpot credentials. After entering your credentials you will see a green confirmation message that the connection has been made.
    Only an admin in HubSpot or a user with App Marketplace Access permissions will be able to create a HubSpot connection in Grow.

Data Warehousing

HubSpot is on the Grow Data Warehouse, which we highly recommend you use. For more information about warehousing your data, visit the Data Warehouse Help Article.

Suggested Tables

The following suggested tables are available in Grow. These are toggled on by default when you sync your data for the first time.

  • Call Dispositions
  • Companies (1 table)
  • Contacts (1 table)
  • Contact Lists (1 table)
  • Deals (1 table)
  • Engagements (1 table)
  • Forms (Analytics)
  • Landing Pages (Analytics)
  • Marketing Email Stats (Analytics)
  • Owners
  • Pipelines
  • Sessions (Analytics)
  • Sources (Analytics)
  • Tickets

Other Tables

  • Custom Objects
  • Feedback Submissions

Custom Objects table name(s) unique to each account; for more details on configuring this feature in HubSpot, please visit their API docs: https://developers.hubspot.com/docs/api/crm/crm-custom-objects

Custom Tables

Grow allows you to configure various custom reports through HubSpot. Depending on the HubSpot report you select, you have the option to add one or more drill downs. The available reports are listed below:

  • Analytics - Geolocations: Drill down 1 & 2
  • Analytics - Sessions: No drill downs
  • Analytics - Sources: Drill down 1 & 2
  • Analytics - UTM Campaigns: Drill down 1
  • Analytics - UTM Contents: Drill down 1
  • Analytics - UTM Mediums: Drill down 1
  • Analytics - UTM Sources: Drill down 1
  • Analytics - UTM Terms:Drill down 1
  • HubSpot Hosted Content - Standard Pages: No drill downs
  • HubSpot Hosted Content - Blog Posts: No drill downs
  • HubSpot Hosted Content - Knowledge Articles: No drill downs
  • HubSpot Hosted Content - Landing Pages: No drill downs
  • HubSpot Hosted Content - Listing Pages: No drill downs
  • HubSpot Objects - Events: No drill downs
  • HubSpot Objects - Forms: No drill downs
  • HubSpot Objects - Pages: No drill downs
  • HubSpot Objects - Social Assists: No drill downs

Warehousing your Data

  1. Starting with the Connections page, navigate to your HubSpot connection and click on it to open the Connection Details page.
  2. Select the Manage Connection button inside the Connection Details section to open the warehouse table selection flow.
  3. If your data source isn't already connected, refer to the Connecting to Data Sources for more details. If your data source is already connected, you can immediately select which tables of data you want to warehouse.
  4. Once you have finished selecting the data that you want stored in the Data Warehouse, click the Sync & Store button at the bottom of the Manage Connection page. This will begin the initial population of your warehouse with the tables you defined. Populating your data warehouse for the first time may take a while, even up to several hours.
  5. While your data is "In Queue" or "Processing", you may continue working within the app.

Sync Interval

Full Sync

The default sync interval is 12 hours per table for the following tables:

  • Call Dispositions
  • Contact Lists
  • Custom
  • Forms (Analytics)
  • Landing Pages (Analytics)
  • Line items
  • Marketing Email Stats (Analytics)
  • Other
  • Owners
  • Pipelines
  • Sessions (Analytics)
  • Sources (Analytics)

Incremental Sync

When incremental sync is available, the default incremental sync interval is 1 hour, while the default full sync interval is 1 week.

Incremental sync is enabled for the following tables:

  • Companies
  • Contacts
  • Deals
  • Engagements
  • Feedback Submissions
  • Tickets

To learn more about sync intervals and how to adjust the default settings, please visit the Data Warehouse help article.

Direct Query

A direct query connection can be used to pull data into Grow. With abnormal usage, Direct Query can run into API limitations depending on the data source. For this reason, we recommend that you use Grow's Data Warehouse for a more performant, reliable experience.

Endpoints

Below is a list of the endpoints that the HubSpot/Grow integration offers, along with a short description of each:

  • Accounts - ALL: All company accounts, including location details, description, industry, revenue, and contact information, along with other details and custom fields.
  • Accounts - Recently Created (30 Days): All company accounts added within the last 30 days, including location details, description, industry, revenue, and contact information, along with other details and custom fields.
  • Blogs: All unique blogging sites, including URL, page settings, created and deleted dates, subscription lists, and social accounts data, among other details.
  • Blog Posts: All blog posts, including URL, page type, author details, created an updated dates, keywords, publish dates, among other details.
  • Get All Contacts: All contact information with optionally selected custom contact fields, including name, visitor ID, date added, company name, and additional custom fields.
  • Get Contacts 30 Days: All contacts created within the last 30 days, including added date, name, created and modified dates, company, and email, along with other details.
  • Campaigns: All HubSpot marketing campaigns, including campaign ID, app ID, app name, and group ID.
  • Deals - ALL: All deals, including deal ID and name, created and close dates, pipeline, source, campaign type, closed reasons, and description, along with other details and custom fields.
  • Deals - Recently Created (30 days): All deals created within the last 30 days, including deal ID and name, created and close dates, pipeline, source, campaign type, closed reasons, and description, along with other details and custom fields.
  • Deals - Recently Modified (30 days): All deals with details modified within the last 30 days, including deal ID and name, created and close dates, pipeline, source, campaign type, closed reasons, and description, along with other details and custom fields.
  • Email Subscriptions Timeline: All subscription changes, including source, subscription ID, change type, caused by event, created date, among other details.
  • Events: All events within the selected date range, including type, event date, category, state, name, description, and owner, among other details.
  • Keywords: All keywords including keyword name, visits, contacts, leads, created date, among other details.
  • Leads: All leads, including name, company, email, created and modified dates, and status, among other details.
  • Lists: All contact lists in the account, including list name; size; created, size, and state change dates; type; processing state; and internal information; among other details. Smart Lists are included in the results denoted by a status equal to "Dynamic".
  • List of Contacts: List of all contacts associated with the specified list ID, including name, last modified date, company, among other details.
  • Workflows: All workflows, including name, workflow ID, type, enabled, inserted date, updated date, contact list ID, enrolled counts, active counts, etc.
  • Email Events: All email events within the selected date range, including event ID, email type, email campaign ID, name, status, and location, among other details.
  • Engagements - ALL: All engagements recorded within the selected date range, including engagement ID, active, created and updated dates, created by, modified by, type, contacts, companies, and deals, among other details.
  • Engagements - Recent: All engagements recorded from the last 30 days, or the 10k most recently updated records. days, including engagement ID, active, created and updated dates, created by, modified by, type, contacts, companies, and deals, among other details.
  • Engagements - Associated: All engagements filtered by associations with deals or companies, including active, created and updated dates, type, contacts, companies, and deals, among other details.

API Documentation

https://developers.hubspot.com/docs/api/overview

This is for reference only. You should not need to consult this to use the connection in Grow.

FAQs + Tips and Tricks

HubSpot Combines CRM and Marketing Into one API

If you want access to endpoints from both Marketing Automation and CRM you will need to have both types of accounts in HubSpot. If you have access to both you will also be able to pull data from the following endpoints:

  • Leads
  • Keywords
  • Blogs
  • Blog Posts
  • Email Subscription Timeline
  • Events
  • Campaigns
  • Email Events

FAQ Other

  • Contacts in HubSpot have lots of properties.
    • Every lead in HubSpot is marked as a contact, not a lead. If you want to pull in the properties for your HubSpot contacts, use the Get All Contacts endpoint, which will let you select the fields (properties) you want to pull in.
  • Some HubSpot endpoints require admin-level permissions.
    • If you do not have permissions to view certain reports, you will an error, telling you that your account does not have the proper permissions to run that report, and to contact your HubSpot administrator. The reports where this error most frequently pops up are Campaigns, Workflows, and Email Events.
    • To access these reports, you will need to have admin permissions in HubSpot and have that account connected in Grow.
  • HubSpot has strict rate limits.
    • The following limits apply: 10 requests per second and/or 40,000 requests per day.
    • Customers exceeding either of those limits will receive error responses with a 429 response code. Please see this page for more details about those errors, and suggestions on working with the request limits.
    • Because of rate limits of Hubspot, getting lots of HubSpot data into Grow can be slow. We recommend using a dataset to bring back your data.
  • HubSpot's API only gives ID numbers for custom fields.
    • HubSpot's API will only pull in ID numbers for each field. Unfortunately, there is no endpoint that will let us pull in the custom field IDs and map them to their field.
    • As a workaround, we suggest isolating them and keeping track in a Google Spreadsheet of the IDs and the assigned codes. You can then group by ID or map them better.
  • Coordinated Universal Time (UTC)
    • All date and timestamps are stored in UTC. If account timezone settings are set in Grow, these times will adjust accordingly. For more information, visit this Help Center article.
  • Unix Epoch Dates.
    • Some HubSpot date fields return Unix Epoch timestamps. These can be converted to a more useful date format with the Table Date Format option in Grow. You can also use a SQL query.
  • Some data comes in as cents, not dollars.
    • Though dollars in the standard currency for the data, sometimes the base currency that is set might be different. For example, for the Accounts - Recently Created (30 Days) report , the annual revenue field pulls data in cents, not dollars.
    • Do note that time in columns prefixed with "time_in" measure time in milliseconds.

Joining Deals with Contacts

You will likely want to view some contact properties associated with the deals that sold. Some things you might think would be in the Deals report will actually be found in the Contact properties, so joining the data together is usually helpful. However, there can be multiple deals associated with one contact, so you have to be a bit more precise with the join. There can also be multiple contacts associated with one deal. So, you need to trim all the duplicate data.

Following steps will help you to do just that:

  1. Pull the Contacts - All report from HubSpot in Report 1.
  2. Pull the Deals - All report from HubSpot in Report 2.
  3. From the Contacts - All report, use the vid column.
  4. From the Deals - All report, use the associated_contacts_ids column.
  5. Use Extract transform to retrieve only the first contact ID from the column associated_contacts_ids.
  6. Use Find and Replace transform to remove the square brackets. This gives you the details for the first contact listed for that deal.
  7. Use Left Join option for getting all contact information along with their deal information.

You can save this report as a dataset for use in multiple metrics.

The joined report outlined above will produce a full list of all contacts, with those that have deals from those contacts. If you only want to see the Deals, just add a filter on the joined report and filter out any columns where any of the deal related data is empty.

Sales Sequence Data

HubSpot does not currently offer Sales Sequence data via their API, so at this time it is not possible to pull this data into Grow through our HubSpot connection.

Was this article helpful?