HubSpot is a system for managing customer relationships and storing data. You can use Hevo Pipelines to replicate data from your HubSpot account to the Destination database or data warehouse using HubSpot REST API.

You can use Open Authorization (OAuth) to authenticate your HubSpot account with Hevo.

For creating Pipelines using this Source, Hevo provides you a fully managed BigQuery data warehouse as a possible Destination. This option remains available till the time you set up your first BigQuery Destination irrespective of any other Destinations that you may have. With the managed warehouse, you are only charged the cost that Hevo incurs for your project in Google BigQuery. The invoice is generated at the end of each month and payment is recovered as per the payment instrument you have set up. You can now create your Pipeline and directly start analyzing your Source data. Read Hevo Managed Google BigQuery.


  • An active HubSpot account from which data is to be ingested.

  • The following permissions in HubSpot to configure a HubSpot account in Hevo:

    • Administrator: To replicate CRM and Marketing objects.

    • Super Admin: To replicate Email Events.

    • Sales Administrator: To replicate Sales objects.

Read more about HubSpot user permissions at HubSpot Knowledge Base.

Configuring HubSpot as a Source

Perform the following steps to configure HubSpot as the Source in your Pipeline:

  1. Click PIPELINES in the Asset Palette.

  2. Click + CREATE in the Pipelines List View.

  3. In the Select Source Type page, select HubSpot.

  4. In the Configure your HubSpot Account page, click + Add HubSpot Account. This redirects you to the HubSpot login page.

    Add HubSpot Account

  5. Log in to your HubSpot account.

  6. In the HubSpot Accounts page, select the HubSpot account whose data you would like to synchronize.

  7. Authorize Hevo Data Inc to access your HubSpot data.

    Authorize Hevo Data Inc

  8. In the Configure your HubSpot Source page, specify a unique Pipeline Name.

  9. Click CONTINUE.

  10. Proceed to configuring the data ingestion and setting up the Destination.

Data Replication

Archived Objects

Hevo synchronizes the archived records for all the standard objects in Hubspot. For any archived record fetched from your Hubspot data, the is_archived flag is set to TRUE in the Destination.

The ingestion of archived Events is not coupled with the scheduled Pipeline runs due to the Source consideration around the handling of deletes. To reduce the number of Events being ingested during each Pipeline run, the ingestion frequency for deleted Events is set to 24 Hours. You can change this by reaching out to Support.

Default Pipeline Frequency Minimum Pipeline Frequency Maximum Pipeline Frequency Custom Frequency Range (Hrs)
1 Hr 30 Mins 24 Hrs 1-24

Note: The custom frequency must be set in hours, as an integer value. For example, 1, 2, 3 but not 1.5 or 1.75.

Merged Objects

In HubSpot, whenever two or more objects are merged, a third object with the merged properties is created. The merged objects no longer get picked up during ingestion. When Hevo loads this third object to the Destination, it also adds the following fields to the older objects to identify them as merged:

Fields Data type Description
__hevo_merged boolean True: indicates that the object is merged with another.
__hevo_merged_into long Contains the ID of the new object which it has been merged into.

Using these fields, you can identify the stale data, if any, in the Destination.

  • Historical Data: All past data for campaigns is fetched for the specified historical sync duration using the HubSpot API, when the Pipeline is created.

  • Incremental Data: Once the historical data is loaded, every subsequent run of the Pipeline fetches any new data created in the Source, or changes made to any existing data.

Source Considerations

  • HubSpot does not allow fetching deleted records based on a timestamp. While this can lead to a higher number of ingested Events, Hevo deduplicates such Events upon ingestion. Only the Events that were deleted after the last run of the Pipeline (based on the archived_at timestamp) count as new Events and are treated as billable.

  • Due to an open issue with Hubspot relating to the Contacts object, the exact time at which a contact was deleted or archived cannot be determined. For the archived_at timestamp, the HubSpot API returns the last updated_at timestamp instead of the actual deletion/archival time. Due to this, the last tracked deletion of Contacts data cannot be definitively identified, and Hevo must ingest all the deleted contacts and de-duplicate them while loading to the Destination. Therefore, it is always a full load of archived Contacts data, and these Events are included in your billable Events count.

    Read Announcing a new definition for the archivedAt endpoint response value.

Schema and Primary Keys

Hevo uses the following schema to upload the records in the Destination:

Data Model

The following tables (objects) are created in the Destination when you run the Pipeline:

Object Description
Contacts Contains details about an individual person.
Contact Deal Association Contains the mapping between a contact and all deals mapped to it.
Companies Contains details about an individual business or organization.
Deals Lists the revenue opportunities with a contact or company tracked through Pipeline stages.
Deal Company Association Contains the mapping between a company and all deals associated with it.
Deal Stage Pipeline Contains the mapping between the Deals object and the Deal Pipelines to identify the current stage of a deal.
Deal Line Item Association Contains the mapping between a deal and all the product line items associated with it.
Email Events Contains information about Events generated by marketing emails, or email campaigns sent through a HubSpot account.
Email Campaigns Contains information about the subject line of the email message, HubSpot application name, event type, activity status, and time of the last update for an email campaign.
Engagements Stores data from CRM actions, including notes, tasks, emails, meetings, and calls. At a minimum, engagements should be associated with at least one CRM record.
Engagement Call An engagement used to track calls made by users on an object record. Each call is linked to an engagement, which could be linked to a contact, deal, or company.
Engagement Contact Association Contains the mapping between a contact and all engagements made on it.
Engagement Company Association Contains the mapping between a company and all engagements associated with it.
Engagement Deal Association Contains the mapping between a deal and all engagements associated with it.
Engagement Email Engagements emails are used to track emails sent on an object record. Each Email is linked to an Engagement object, which could be linked to a contact, deal, or company.
Engagement Meeting An engagement used to track face-to-face meetings on an object record. Each meeting is linked to an engagement, which could be linked to a contact, deal, or company.
Engagement Note An engagement are used to hold simple text information about an object record. Each note is linked to an engagement, which could be linked to a contact, deal, or company.
Engagement Task An engagement used to manage tasks and available on the tasks dashboard as well as on associated object records. Each task is linked to an engagement, which could be linked to a contact, deal, or company.
Form Submissions Contains the fields in the submissions, the time of the form submission, and the page URL that the form was submitted on.
Owners Contains the mapping between users and contacts, companies, deals, tickets, and engagements.
Products Contains the list of goods or services for sale that are configured in your Hubspot account.
Line Items Contains line item-level data associated with each product.
Tickets Contains customer requests for help or support.
Ticket Stage Pipeline Contains the mapping between the tickets and the ticket Pipelines to identify the current stage of a ticket.

Note: Owners and Email Campaigns are Full Load objects, and the entire data is fetched in each run of the Pipeline. This may lead to higher Events quota consumption.


  • Hevo supports only the CRM API v3 to fetch HubSpot data. If any object or record does not support v3 endpoint such as Form, Hevo uses the legacy API to fetch or synchronize data with the Destination.

    Note: Refer the HubSpot API Docs to identify the API associated with the objects you want to ingest.

  • HubSpot CRM API returns the updates for up to 10,000 records for the same modified timestamp. If other records are updated at that particular point of time, they are not reflected or synchronized with the Destination.

See Also

Revision History

Refer to the following table for the list of key updates made to this page:

Date Release Description of Change
Apr-25-2022 1.87 Updated section, Limitations about Hevo using the CRM API v3 to fetch HubSpot data.
Nov-22-2021 1.76 In the Data Model section:
- Added the Owner object.
- Changed the description for the Email Campaigns object.
- Added a note to indicate that Email Campaign and Owner are Full Load objects.
Oct-25-2021 1.74 - Updated the page overview.
- Added the section, Source Considerations.
- Added information about handling of deleted records and the available Pipeline frequencies in the Data Replication section.
Aug-09-2021 1.69 Added a note in the Data Replication section about archived objects ingested from the Source.
Jul-12-2021 1.67 Updated the Data Model section with additional objects that Hevo now supports.
Last updated on 02 May 2022