HubSpot is an inbound marketing and sales software that helps companies attract visitors, convert leads, and close customers.
|Data Blocking||check||Table level|
|dbt Package||check||Get the package: source / transform|
NOTE: We do not currently support syncing custom objects from HubSpot.
IMPORTANT: The HubSpot connector doesn’t support switching modes because we fetch history data directly from the APIs. We maintain two separate tables, one for live mode and one for history mode. For example, on the connector’s Schema tab, you will have two tables,
COMPANY_PROPERTY_HISTORY. You can sync the history table only if you have included the live table in your syncs.
Follow our step-by-step HubSpot setup guide to connect HubSpot with your destination using Fivetran connectors.
Marketing Hub Schemalink
This schema is applicable for the HubSpot Marketing Hub product.
CRM and Sales Hub Schemalink
This schema is applicable for the HubSpot CRM and Sales Hub products.
Service Hub Schemalink
This schema is applicable for the HubSpot Service Hub product.
The HubSpot API doesn’t make deleted records available so Fivetran can’t mark deleted records in the destination warehouse. Deleted records will remain marked
_fivetran_deleted columns exist except for the tables listed in the Update Frequency section below.
The HubSpot API does not offer a mechanism to capture deletes, so Fivetran infers deletes for the following tables:
CONTACT_LIST_MEMBERtables are re-imported in full once a day
FORMtables are synced incrementally in each sync
We compare the tables with their previous version and capture deletes using the
_fivetran_deleted system column.
We mark the tables that we re-import in full as
not recommended in the dashboard. We sync the tables once a day due to their non-incremental characteristics.
If during a sync, we find that there are more than 10,000 updated records for the following endpoints, we re-import the associated source tables in full to capture all the changes:
For the above endpoints, we can either:
- retrieve the most recent 10,000 changes to the entities, or
- retrieve the entire dataset from an endpoint
Sync Strategy for Engagement tableslink
We do incremental syncs of the
ENGAGEMENT_* tables according to the sync frequency you set in your Fivetran dashboard. We also do a full re-sync of these tables once a day because we noticed incomplete data when we performed incremental syncs alone.
Sync Strategy for Email Event tableslink
Once a day, we fetch data for the last 25 hours for all
EMAIL_EVENT_* tables. We do this to capture events that might have been missed in the last sync because of HubSpot’s event processing delays.
HubSpot Developer Preview APIlink
We maintain the following tables using the HubSpot developer preview API, so there are sometimes structural changes in these tables. Fivetran automatically handles structural changes, which might lead to some schema breaking changes. If that happens, we need to re-sync the affected tables. You can read more in the HubSpot Developer Preview API documentation.
Negative Timestamps from HubSpotlink
We automatically convert negative timestamps received from HubSpot to EPOCH, for example, 1st January 1970 00:00:00 UTC.
Deal stage calculationslink
The HubSpot API returns only the
date_entered value of the
dealstage properties data. We sync this data to the
Fivetran populates the
date_entered value in the
_fivetran_start column and sets the
date_exited value in the
_fivetran_end column. The
date_exited value for a deal stage is the
date_entered value of the next deal stage in chronological order.
You can calculate the
time_in value as the difference between the
_fivetran_end column values in the
For example, in the
deal_id10 in deal stage 145:
time_in_145= 1 hour (
deal_id10 in deal stage 173:
time_in_173= MAX_TIMESTAMP_VALUE - 14:00 (
HubSpot Tickets API limitationslink
HubSpot’s Tickets API endpoint returns a list of changes to the ticket objects. HubSpot limits the returned changes to the last 24 hours. To ensure data integrity, Fivetran triggers a re-sync of the
TICKET table if the incremental endpoint isn’t called in the last 24 hours.
Limitation with Capturing Delete using Webhooklink
For connectors created using our REST API, we do not capture deletes for the following tables using webhook events, as these connectors are not authorized using the Fivetran Hubspot Application: