- Knowledge Base
- Account & Setup
- Integrations
- Access HubSpot data in Google BigQuery (BETA)
BetaAccess HubSpot data in Google BigQuery (BETA)
Last updated: June 1, 2026
Available with any of the following subscriptions, except where noted:
-
Data Hub Enterprise
After connecting Google BigQuery to your HubSpot account, you can query for HubSpot data in BigQuery.
This article provides information on the schema for each table that's synced to BigQuery, which you can use in tandem with Google's documentation to query for HubSpot data in your BigQuery account.
Data overview
Queries are constructed using SQL, and can be used to retrieve HubSpot data such as:
- Objects: standard and custom objects, such as contacts, companies, products.
- Records: individual records, such as an individual contact or company.
- Associations: all available association types and currently associated records.
- Events: event data for both standard HubSpot events, such as email opens, and custom behavioral events.
Object data of different types are combined for v1: all records for all object types are combined into one database object. Thus, when querying, you need to specify a filter like “WHERE objectTypeId=’0-1’.
Custom objects will be assigned an ID at the time of creation, and will be identified as 2-unique_ID. For example, 2-12345.
Learn more about HubSpot’s CRM data model.
Synced table schemas
The sections below provide details on the schema for each table synced from your HubSpot account to BigQuery, based on your configured sync settings.
object_properties schema
The schema below provides details of the synced object_properties table:
| Column name | Type | Description |
| OBJECTTYPEID | STRING | The ID of the object type (e.g., 0-1 for contacts). |
| OBJECTID | INT64 | The ID of the record (e.g., 123752 as an example contact record). |
| NAME | STRING | The name of the property. |
| VALUE | JSON | The value of the property |
| UPDATEDAT | TIMESTAMP | The date and time that the record was last updated in HubSpot. |
| INGESTEDAT | TIMESTAMP | The date and time that the record was last ingested by BigQuery. |
object_with_object_properties schema
The schema below provides details of the synced object_with_object_properties table:
| Column name | Type | Description |
| OBJECTTYPEID | STRING | The ID of the object type (e.g., 0-1 for contacts). |
| OBJECTID | INT64 | The ID of the record (e.g., 123752 as an example contact record). |
| PROPERTIES | JSON | The record's property values |
| UPDATEDAT | TIMESTAMP | The date and time that the record was last updated in HubSpot. |
| INGESTEDAT | TIMESTAMP | The date and time that the record was last ingested by BigQuery. |
associations_x_to_y schema
The schema below provides details of the synced associations_x_to_y_ table:
| Column name | Type | Description |
| COMBINEDASSOCIATIONTYPEID | STRING | The unique identifier for the specific association definition. |
| ASSOCIATIONCATEGORY | STRING | The origin of the association type. Possible values include: HUBSPOT_DEFINED, USER_DEFINED, or INTEGRATOR_DEFINED. |
| ASSOCIATIONTYPEID | STRING | A unique identifier for an association definition within its ASSOCIATIONCATEGORY. No two definitions in the same category will share this ID. |
| FROMOBJECTTYPEID | STRING | The object type ID of the association's source object. |
| FROMOBJECTTYPE | STRING | The name of the association's source object type. |
| TOOBJECTTYPEID | STRING | The object type ID of the association's destination object. |
| TOOBJECTTYPE | STRING | The name of the association's destination object type. |
| NAME | STRING | The defined name of the association definition. |
| LABEL | STRING | A descriptive label for the association definition. |
| ISMAINASSOCIATIONDEFINITION | BOOLEAN | Indicates if this is the primary association type (true), which is the one HubSpot displays on associated records. |
| [FROMOBJECTTYPE_OBJECTID] | INT64 | The Object ID of the source record. (e.g., CONTACT_OBJECTID for an ASSOCIATIONS_CONTACTS_TO_DEALS view). |
| [TOOBJECTTYPE_OBJECTID] | INT64 | The Object ID of the destination record. (e.g., DEAL_OBJECTID for an ASSOCIATIONS_CONTACTS_TO_DEALS view). |
| INGESTEDAT | TIMESTAMP | The date and time that the record was last ingested by BigQuery. |
associations schema
The schema below provides details of the synced associations table:
| Column name | Type | Description |
| COMBINEDASSOCIATIONTYPEID | STRING | The unique identifier of the association definition. |
| FROMOBJECTID | INT64 | The ID of the source object. |
| TOOBJECTID | INT64 | The ID of the destination object. |
| INGESTEDAT | TIMESTAMP | The date and time that the record was last ingested by BigQuery. |
association_definitions schema
The schema below provides details of the synced associations_definitions table:
| Column name | Type | Description |
| COMBINEDASSOCIATIONTYPEID | STRING | The unique identifier for the specific association definition. |
| ASSOCIATIONCATEGORY | STRING | The origin of the association type. Possible values include: HUBSPOT_DEFINED, USER_DEFINED, or INTEGRATOR_DEFINED. |
| ASSOCIATIONTYPEID | STRING | A unique identifier for an association definition within its ASSOCIATIONCATEGORY. No two definitions in the same category will share this ID. |
| FROMOBJECTTYPEID | STRING | The object type ID of the association's source object. |
| FROMOBJECTTYPE | STRING | The name of the association's source object type. |
| TOOBJECTTYPEID | STRING | The object type ID of the association's destination object. |
| TOOBJECTTYPE | STRING | The name of the association's destination object type. |
| NAME | STRING | The defined name of the association definition. |
| LABEL | STRING | A descriptive label for the association definition. |
| ISMAINASSOCIATIONDEFINITION | BOOLEAN | Indicates if this is the primary association type (true), which is the one HubSpot displays on associated records. |
| INGESTEDAT | TIMESTAMP | The date and time that the record was last ingested by BigQuery. |
Events
Events include standard HubSpot events and custom behavioral events. Each event has its own database object, labeled as events_eventname.
| Name | |
| EVENTS_AD_INTERACTION | Details of an Ad and contacts that interacted with it by clicking on the ad or submitting a form after engaging with it. |
| EVENTS_AD_METRICS_IMPORTED_V0 |
Details of an Ad and and its performance metrics. |
| EVENTS_CALL_MENTIONED_KEYWORD | Details of keywords mentioned by any participants in calls. |
| EVENTS_CLICKED_LINK_IN_EMAIL_V2 |
Links clicked in marketing emails by contacts. |
| EVENTS_CLICKED_LINK_IN_TRACKED_INBOX_EMAIL_V8 | Links clicked in Conversations Inbox emails by contacts. |
| EVENTS_COOKIE_BANNER_CLICKED | Contacts who clicked on cookies. |
| EVENTS_COOKIE_BANNER_VIEWED | Contacts who viewed cookies. |
| EVENTS_DOCUMENT_SHARED_V2 | Sales Documents shared with contacts via an external link. |
| EVENTS_DOCUMENT_VIEWED_V2 | Sales Documents and contacts that have viewed by them by opening the external link. |
| EVENTS_DOCUMENT_COMPLETED_V2 | Sales Documents and contacts that have closed them out. |
| EVENTS_HS_SCHEDULED_EMAIL_V2 | Emails submitted to the HubSpot email servers to be sent. |
| EVENTS_MTA_DELIVERED_EMAIL_V2 | Emails successfully delivered to the recipients by HubSpot email servers. |
| EVENTS_MTA_BOUNCED_EMAIL_V2 | Email delivery attempts that were rejected by the recipient’s Email server. |
| EVENTS_OPENED_EMAIL_V2 | Email opens by contacts. |
| EVENTS_REPORTED_SPAM_EMAIL_V2 | Emails marked as spam by recipients. |
| EVENTS_UPDATED_EMAIL_SUBSCRIPTION_STATUS_V2 | Changes to email email subscriptions by recipients. |
| EVENTS_OPENED_TRACKED_INBOX_EMAIL_V8 | Conservations Inbox email opens by contacts. |
| EVENTS_MB_MEDIA_PLAYED | Video playback activity by contacts. |
| EVENTS_V2_CONTACT_BOOKED_MEETING_THROUGH_SEQUENCE | Contact booked a meeting through sequence. |
| EVENTS_V2_CONTACT_ENROLLED_IN_SEQUENCE | Contact enrolled from sequence. |
| EVENTS_V2_CONTACT_FINISHED_SEQUENCE | Sequence finished. |
| EVENTS_V2_CONTACT_REPLIED_SEQUENCE_EMAIL | Contact replied to email (or incoming email which unenrolled sequence) sent through sequence. |
| EVENTS_V2_CONTACT_UNENROLLED_FROM_SEQUENCE | Contact unenrolled from sequence. |
| EVENTS_V2_CONTACT_UNENROLLED_MANUALLY_FROM_SEQUENCE | User manually unenrolled the contact. |
| EVENTS_V2_CONTACT_UNSUBSCRIBED_SEQUENCE_EMAIL | Contact unsubscribed, unenrolling the sequence. |
| EVENTS_V2_SEQUENCE_EMAIL_BOUNCED | Sequence email bounced. |
| EVENTS_V2_SEQUENCE_ERRORED | Sequence errored causing unenrollment. |
| EVENTS_V2_SEQUENCE_STEP_EXECUTED | Sequence step executed. |
| EVENTS_VISITED_PAGE | Website page visits by contacts. |
| EVENTS_<INTEGRATION_EVENT_NAME>_<UNIQUE_IDENTIFIER> | Integration events (Timeline V3 API) |
You can identify events by combining their event type ID and ID. The columns that get returned depend on the event, with one column for each event property. All events will return the following columns:
| Column name | Type | Description |
EVENTTYPEID |
STRING | The ID of the event type, similar to OBJECTTYPEID You can query all eventype IDs in your account using the object_and_event_type_definitions view. |
ID |
STRING | This is unique per event type. No two records will have the same ID within a given event type. |
OBJECTTYPEID |
STRING | The type of object that completed the event. For example, an email link click would display 0-1 in this column, representing the contacts object. |
OBJECTID |
INT64 | The ID of the record that completed the event. |
OCCURREDAT |
TIMESTAMP | When the event occurred. |
|
|
INT64 | A number representing when the event occurred. Contains the same data as the OCCURREDAT column, but formatted as a number and used as a part of the cluster key of the table. In most cases, you can use the OCCURREDAT timestamp instead of this number. |
|
|
Number | A number representing when the event occurred. Contains the same data as the |
INGESTEDAT |
Timestamp | The date and time that the data was last ingested by BigQuery. Learn more about column data types. |
PROPERTY_* |
Varchar | Individual columns containing the event properties. |