Release Status Released Supported By Stitch
Availability Premium Status Page HubSpot Status Page
Default Historical Sync 30 days Default Replication Frequency 30 minutes
Whitelisting Tables and columns Destination Incompatibilities None

Connecting HubSpot

HubSpot Setup requirements

To set up HubSpot in Stitch, you need:

  • A paid Stitch plan. While those currently in the Free Trial will also be able to set up HubSpot, replication will be paused until a paid plan is selected after the trial ends.
  • For HubSpot CRM or Marketing products: Administrator permissions in HubSpot

  • For the HubSpot Sales product: Sales Administrator permissions in HubSpot

More information about HubSpot user roles and permissions can be found in HubSpot’s documentation.

Step 1: Add HubSpot as a Stitch data source

  1. Sign into your Stitch account.
  2. On the Stitch Dashboard page, click the Add Integration button.

  3. Click the HubSpot icon.

  4. Enter a name for the integration. This is the name that will display on the for the integration; it’ll also be used to create the schema in your destination.

    For example, the name “Stitch HubSpot” would create a schema called stitch_hubspot in the destination. Note: Schema names cannot be changed after you save the integration.

Step 2: Define the Historical Sync

The Sync Historical Data setting will define the starting date for your HubSpot integration. This means that:

  • For tables using Incremental Replication, data equal to or newer than this date will be replicated to your data warehouse.
  • For tables using Full Table Replication, all data - including records that are older, equal to, or newer than this date - will be replicated to your data warehouse.

Change this setting if you want to sync data beyond HubSpot’s default setting of 30 days. For a detailed look at historical syncs, check out the Syncing Historical SaaS Data guide.

Step 3: Create a replication schedule

In the Replication Frequency section, you’ll create the integration’s replication schedule. An integration’s replication schedule determines how often Stitch runs a replication job, and the time that job begins.

Stitch offers two methods of creating a replication schedule:

  • Replication Frequency: This method requires selecting the interval you want replication to run for the integration. Start times of replication jobs are based on the start time and duration of the previous job. Refer to the Replication Frequency documentation for more information and examples.
  • Anchor scheduling: Based on the Replication Frequency, or interval, you select, this method “anchors” the start times of this integration’s replication jobs to a time you select to create a predictable schedule. Anchor scheduling is a combination of the Anchor Time and Replication Frequency settings, which must both be defined to use this method. Additionally, note that:

    • A Replication Frequency of at least one hour is required to use anchor scheduling.
    • An initial replication job may not begin immediately after saving the integration, depending on the selected Replication Frequency and Anchor Time. Refer to the Anchor Scheduling documentation for more information.

To help prevent overages, consider setting the integration to replicate less frequently. See the Understanding and Reducing Your Row Usage guide for tips on reducing your usage.

Step 4: Authorize Stitch to access HubSpot

  1. Next, you’ll be prompted to sign into your HubSpot account.
  2. After you log into HubSpot, a screen with a list of your HubSpot accounts will display. Click the account you want to connect to Stitch.

    Note that Stitch will only ever read your data. Stitch will never modify or delete any data in your HubSpot account.

  3. After the authorization process is successfully completed, you’ll be directed back to Stitch.
  4. Click All Done.

Step 5: Set tables and columns to replicate

To complete the setup, you’ll need to select tables and columns you want to sync to your data warehouse.

Check out the Schema section to learn more about the available tables in HubSpot.

  1. In the list of tables that displays - or in the Tables to Replicate tab, if you skipped this step during setup - locate a table you want to replicate.
  2. To track a table, click the checkbox next to the table’s name. A green checkmark means the table is set to replicate.

  3. To sync a column, click the checkbox next to the column’s name. A green checkmark means the column is set to replicate.

  4. Repeat this process for all the tables and columns you want to replicate.
  5. When finished, click the Finalize Your Selections button at the bottom of the screen to save your selections.

Note: If you change these settings while a replication job is still in progress, they will not be used until the next job starts.

Initial and historical replication jobs

After you finish setting up HubSpot, its Sync Status may show as Pending on either the Stitch Dashboard or in the Integration Details page.

For a new integration, a Pending status indicates that Stitch is in the process of scheduling the initial replication job for the integration. This may take some time to complete.

Free historical data loads

The first seven days of replication, beginning when data is first replicated, are free. Rows replicated from the new integration during this time won’t count towards your quota. Stitch offers this as a way of testing new integrations, measuring usage, and ensuring historical data volumes don’t quickly consume your quota.


HubSpot Table Schemas

Custom HubSpot field replication

Custom object properties, or fields, are supported by Stitch’s HubSpot integration. Stitch will query the properties list for each object and, if custom fields are available through HubSpot’s API, replicate them to your destination.

The data types of these fields will be the same as the data type in HubSpot. For example: A custom field containing date data will be a date field in your destination.

This is applicable to any object that supports custom fields in HubSpot.

HubSpot date/date-time values & UNIX timestamps

HubSpot uses UNIX-formatted timestamps in milliseconds to store date and datetime data. Stitch doesn’t perform any transformation during the replication process, meaning these values won’t be converted to timestamps before they’re loaded into your destination.

To account for this, consider creating a user-defined function to perform the conversion or building views on top of the raw data.


Replication Method: Full Table API Endpoint: getCampaignForParticularCampaign
Primary Key : id

The campaigns table contains info about the campaigns in your HubSpot account.

id
INTEGER

The ID of the campaign.

appId
INTEGER

The Application ID for the given email.

appName
STRING

The Application Name for the given email.

contentId
INTEGER

The ID associated with the content.

counters__bounce
INTEGER

The count of bounce events for the given email. A bounce event occurs when the recipient’s email server could not or would not accept the message. No further attempts to deliver the message are made.

counters__deferred
INTEGER

The count of deferred events for the given email. A deferred event occurs when the recipient’s email server temporarily rejects the message. Additional attempts to deliver the message are made.

counters__dropped
INTEGER

The count of dropped events for the given email. A dropped event occurs when the message is rejected, either by HubSpot or their delivery provider. No further attempts to deliver the message are made.

counters__delivered
INTEGER

The count of delivered events for the given email. A delivered event occurs when the recipient’s email server accepts the message and successfully delivers it to the recipient.

counters__mta_dropped
INTEGER

The count of drop events (by delivery provider) for the given email.

counters__open
INTEGER

The count of open events for the given email. An open event occurs when the recipient opens the message.

counters__processed
INTEGER

The count of processed events for the given email. A processed event occurs when the message is received by HubSpot’s delivery provider.

counters__sent
INTEGER

The count of sent events for the given email. A sent event occurs when the message was sent to and received by HubSpot’s delivery provider, and is queued for further handling.

counters__statuschange
INTEGER

The count of status change events for the given email. A statuschange event occurs when the recipient changes their email subscription in some way.

counters__suppressed
INTEGER

The count of suppression events for the given email.

counters__unsubscribed
INTEGER

The count of unsubscribe events for the given email.

name
STRING

The name of the email.

numIncluded
INTEGER

The number of included emails.

numQueued
INTEGER

The number of queued emails.

subType
STRING

The subtype of the email. For example: VariantB

subject
STRING

The subject of the email.

type
STRING

The type of the email. For example: AB


Replication Method: Full Table API Endpoint: getACompany
Primary Key : companyId

The companies table contains info about the companies your HubSpot contacts belong to.

companyId
INTEGER

The ID of the company.

portalId
INTEGER

The ID of the portal the company is associated with.


Replication Method: Key-based Incremental Replication Key : updatedAt
Primary Key : listId API Endpoint: getContactLists

The contact_lists table contains info about the contacts lists in your HubSpot account. Contact lists are used to segment contacts into groups, and there are two types: dynamic (smart lists) and static.

listId
INTEGER

The unique ID of the list.

updatedAt
DATE-TIME

The time that the list was last updated.

internalListId
INTEGER

The list’s internal list ID. This field has been deprecated by HubSpot - use listId in its place.

parentId
INTEGER

The ID of the folder that the list belongs to.

metaData__processing
STRING

Indicates the processing status of the contact list.

metaData__size
INTEGER

The number of contacts in the list.

metaData__error
STRING

Any errors that occurred the last time the list was processed.

metaData__lastProcessingStateChangeAt
DATE-TIME

The last time that the processing status changed.

metaData__lastSizeChangeAt
DATE-TIME

The last time that the size of the list changed.

dynamic
BOOLEAN

Indicates if the contact list is a dynamic list.

name
STRING

The name of the contact list.

filters

A list of filters used to define list membership. For example: adding only contacts who have submitted a particular form.

This data may be de-nested into a subtable if your data warehouse doesn't natively support nested data.

This subtable would be named contact_lists__filters and may contain the following attributes:

_sdc_source_key_listId
INTEGER

The unique ID of the list.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

value

Details about the filters used to define list membership.

This data may be de-nested into a subtable if your data warehouse doesn't natively support nested data. See the Singer schema for detail on possible attributes.

portalId
INTEGER

The ID of the portal the contact list belongs to.

createdAt
DATE-TIME

The time that the list was created.

readOnly
BOOLEAN

Indicates if the contact list is read-only.

archived
BOOLEAN

Indicates if the contact list has been archived.

deleteable
BOOLEAN

Indicates if the list can be deleted. If false, the list is a system list and cannot be deleted.

listType
STRING

The type of list. For example: static or dynamic.


Replication Method: Key-based Incremental Replication Key : versionTimestamp
Primary Key : canonical-vid API Endpoint: getContacts

The contacts table contains info about individual contacts in HubSpot.

Contact properties

If properties have been set for the contact, additional fields beginning with properties__ will be included in the table. Note: Contacts will only have an entry for a property if that property has been set for the contact’s record.

HubSpot always types the value of properties fields as STRING despite the property type. Refer to HubSpot’s documentation for more info.

canonical-vid
INTEGER

The canonical ID of the contact. In HubSpot, contacts may have multiple vids, but the canonical-vid will be the primary ID for a contact.

Note: When a contact is merged into another contact, the parent contact is updated with the child contact’s vid added to its merged-vids list. The child contact is not updated, however, so to fully account for merged contacts, canonical-vids that appear in the merged-vids list should be filtered out.

versionTimestamp
STRING

A Unix timestamp in milliseconds of when the contact or its properties was last updated.

vid
INTEGER

The internal ID of the contact.

merged-vids

A list of vids that have been merged into this contact record.

This data may be de-nested into a subtable if your data warehouse doesn't natively support nested data.

This subtable would be named contacts__merged-vids and may contain the following attributes:

_sdc_source_key_canonical-vid
INTEGER

The canonical ID of the contact. In HubSpot, contacts may have multiple vids, but the canonical-vid will be the primary ID for a contact.

Note: When a contact is merged into another contact, the parent contact is updated with the child contact’s vid added to its merged-vids list. The child contact is not updated, however, so to fully account for merged contacts, canonical-vids that appear in the merged-vids list should be filtered out.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

type
INTEGER

The vid that was merged into the contact record.

portal-id
INTEGER

The ID of the portal the contact is associated with.

is-contact
BOOLEAN

Indicates if the contact is a valid contact.

profile-token
STRING

A unique token that can be used to view the contact without logging into HubSpot.

profile-url
STRING

A unique token that can be used to view the contact without logging into HubSpot. Anyone with this URL can view (not edit) the contact’s record.

identity-profiles

A list of the identities of the contact.

This data may be de-nested into a subtable if your data warehouse doesn't natively support nested data.

This subtable would be named contacts__identity-profiles and may contain the following attributes:

_sdc_source_key_canonical-vid
INTEGER

The canonical ID of the contact. In HubSpot, contacts may have multiple vids, but the canonical-vid will be the primary ID for a contact.

Note: When a contact is merged into another contact, the parent contact is updated with the child contact’s vid added to its merged-vids list. The child contact is not updated, however, so to fully account for merged contacts, canonical-vids that appear in the merged-vids list should be filtered out.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

deleted-changed-timestamp
DATE-TIME

The timestamp of the last delete or change event associated with a contact’s identity profile.

saved-at-timestamp
DATE-TIME

A Unix timestamp in milliseconds of when the identity was last updated.

vid
INTEGER

The original vid for the identity.

identities

A list of individual identities for the contact.

This data may be de-nested into a subtable if your data warehouse doesn't natively support nested data. See the Singer schema for detail on possible attributes.

list-memberships

A list of the contact’s memberships in contact lists.

This data may be de-nested into a subtable if your data warehouse doesn't natively support nested data.

This subtable would be named contacts__list-memberships and may contain the following attributes:

_sdc_source_key_canonical-vid
INTEGER

The canonical ID of the contact. In HubSpot, contacts may have multiple vids, but the canonical-vid will be the primary ID for a contact.

Note: When a contact is merged into another contact, the parent contact is updated with the child contact’s vid added to its merged-vids list. The child contact is not updated, however, so to fully account for merged contacts, canonical-vids that appear in the merged-vids list should be filtered out.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

internal-list-id
INTEGER

The internal list ID.

is-member
BOOLEAN

Indicates if the contact is a member of the list.

static-list-id
INTEGER

The ID of the contact list.

timestamp
DATE-TIME

A Unix timestamp in milliseconds for when the contact joined the list.

vid
INTEGER

The vid of the contact record.

form-submissions

A list of form submissions for the contact.

This data may be de-nested into a subtable if your data warehouse doesn't natively support nested data.

This subtable would be named contacts__form-submissions and may contain the following attributes:

_sdc_source_key_canonical-vid
INTEGER

The canonical ID of the contact. In HubSpot, contacts may have multiple vids, but the canonical-vid will be the primary ID for a contact.

Note: When a contact is merged into another contact, the parent contact is updated with the child contact’s vid added to its merged-vids list. The child contact is not updated, however, so to fully account for merged contacts, canonical-vids that appear in the merged-vids list should be filtered out.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

conversion-id
STRING

A unique ID for the specific form conversion.

timestamp
DATE-TIME

A Unix timestamp in milliseconds of the time the submission occurred.

form-id
STRING

The GUID of the form the submission belongs to.

portal-id
INTEGER

The ID of the portal the submission belongs to.

page-url
STRING

The URL that the form was submitted on.

title
STRING

The title of the page that the form was submitted on.

merge-audits

Details about any merges that have happened for the record.

This data may be de-nested into a subtable if your data warehouse doesn't natively support nested data.

This subtable would be named contacts__merge-audits and may contain the following attributes:

_sdc_source_key_canonical-vid
INTEGER

The canonical ID of the contact. In HubSpot, contacts may have multiple vids, but the canonical-vid will be the primary ID for a contact.

Note: When a contact is merged into another contact, the parent contact is updated with the child contact’s vid added to its merged-vids list. The child contact is not updated, however, so to fully account for merged contacts, canonical-vids that appear in the merged-vids list should be filtered out.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

canonical-vid
INTEGER

The vid of the primary contact, or the record that was merged into.

vid-to-merge
INTEGER

The vid of the secondary contact, or the record that the data was merged from.

timestamp
DATE-TIME

A Unix timestamp in milliseconds of when the merge occurred.

user-id
INTEGER

The internal ID of the user who performed the merge.

num-properties-moved
INTEGER

The number of properties that were updated as a result of the merge.

merged-from-email__value
STRING

The email address of the secondary contact at the time of the merge.

merged-from-email__source-type
STRING

The method by which the email property was last updated. For example: contacts_web

merged-from-email__source-id
STRING

Additional data related to the source-type.

merged-from-email__source-label
STRING

Additional data related to the source-type.

merged-from-email__timestamp
INTEGER

A Unix timestamp in milliseconds for when the last email address was last updated.

merged-from-email__selected
BOOLEAN

Deprecated by HubSpot.

merged-from-email__source-vids

A list of secondary contact vids.

This data may be de-nested into a subtable if your data warehouse doesn't natively support nested data.

Refer to the Singer schema for info on what attributes this table may contain.

merged-to-email__value
STRING

The email address of the primary contact at the time of the merge.

merged-to-email__source-type
STRING

The method by which the last email property was updated. For example: contacts_web

merged-to-email__source-id
STRING

Additional data related to the source-type.

merged-to-email__source-label
STRING

Additional data related to the source-type.

merged-to-email__timestamp
INTEGER

A Unix timestamp in milliseconds for when the last email address was last updated.

merged-to-email__selected
BOOLEAN

Deprecated by HubSpot.


contacts_by_company

Replication Method: Full Table
Primary Key : contact-id : company-id

The contacts_by_company table contains contact and company ID pairs, allowing you to join contacts to relevant company data.

contact-id
INTEGER

The ID of the contact.

Reference: contacts.contactId
company-id
INTEGER

The ID of the company the contact is a part of.

Reference: companies.companyId

Replication Method: Full Table API Endpoint: getAllDeals
Primary Key : dealId : portalId

The deals table contains info about the deals in a HubSpot portal.

dealId
INTEGER

The ID of the deal.

portalId
INTEGER

The ID of the portal the deal is associated with.

associations__associatedVids

IDs of the Vids, Companies, and Deals associated with the deal.

This data may be de-nested into a subtable if your data warehouse doesn't natively support nested data.

Refer to the Singer schema for detail on possible attributes.

associations__associatedCompanyIds

IDs of the Vids, Companies, and Deals associated with the deal.

This data may be de-nested into a subtable if your data warehouse doesn't natively support nested data.

Refer to the Singer schema for detail on possible attributes.

associations__associatedDealIds

IDs of the Vids, Companies, and Deals associated with the deal.

This data may be de-nested into a subtable if your data warehouse doesn't natively support nested data.

Refer to the Singer schema for detail on possible attributes.

properties__amount__value
INTEGER

The amount of the deal.

properties__amount__timestamp
DATE-TIME

The time the amount was set.

properties__amount__source
STRING

The method used to set the amount.

properties__dealname__value
STRING

The current value of the property.

properties__dealname__timestamp
DATE-TIME

The time the current value was set.

properties__dealname__source
STRING

The method used to set the value.

properties__dealname__sourceId
STRING

Additional details about the source.


Replication Method: Key-based Incremental Replication Key : id
Primary Key : id API Endpoint: getEventsForCampaignOrRecipient

The email_events table contains info about email events and how recipients interact with content.

id
STRING

The ID of the event.

appId
INTEGER

The ID of the HubSpot application that sent the email message.

appName
STRING

The name of the HubSpot application that sent the email message.

browser__family
STRING

The family of the browser that serviced the event.

browser__name
STRING

The name of the browser that serviced the event.

browser__producer
STRING

The producer of the browser that serviced the event.

browser__producerUrl
STRING

The producer URL of the browser that serviced the event.

browser__type
STRING

The type of browser that serviced the event.

browser__url
STRING

The URL of the browser that serviced the event.

created
DATE-TIME

The time the event was created.

deviceType
STRING

The type of device used to service the event.

duration
INTEGER

The approximate number of milliseconds the user had opened the email message.

emailCampaignId
INTEGER

The ID of the email campaign that the email message is a part of.

emailCampaignGroupId
INTEGER

The ID of the email campaign group associated with the email message.

filteredEvent
BOOLEAN

Indicates if the event was filtered.

from
STRING

The from field of the email message.

hmid
STRING

An auto-generated ID that corresponds to the header X-HubSpot-MID in the email message.

ipAddress
STRING

The IP address where the event originated.

linkId
INTEGER

The ID of the link the recipient clicked in the email message.

location__city
STRING

The city where the event occurred.

location__country
STRING

The country where the event occurred.

location__state
STRING

The state where the event occurred.

portalId
INTEGER

The ID of the HubSpot portal that sent the email message.

recipient
STRING

The email address of the recipient of the email message.

response
STRING

The full response from the recipient’s email server.

sentBy__created
DATE-TIME

The time the email message’s SENT event occurred.

sentBy__id
STRING

The ID of the email message’s SENT event.

smtpId
STRING

The ID that HubSpot attaches to the email message.

subject
STRING

The subject line of the email message.

type
STRING

The type of event. Click the link in attribute’s name for more details about email event types.

url
STRING

The URL in the email message that the recipient clicked.

userAgent
STRING

The user agent responsible for the event.


Replication Method: Key-based Incremental Replication Key : lastUpdated
Primary Key : id API Endpoint: getAllEngagements

The engagements table contains info about all the engagements in a HubSpot portal.

id
INTEGER

The ID for the engagement.

lastUpdated
DATE-TIME

The time the engagement was last updated.

portalId
INTEGER

The ID of the portal the engagement belongs to.

active
BOOLEAN

Indicates if the engagement is active.

createdAt
DATE-TIME

The time the engagement was created.

ownerId
INTEGER

The ID of the owner associated with the engagement.

Reference: owners.ownerId
type
STRING

The type of engagement. For example: NOTE OR TASK

timestamp
DATE-TIME

The time the engagement should appear in the timeline.

associations

IDs of the objects associated with the engagement. For example: contacts, deals.

This data may be de-nested into a subtable if your data warehouse doesn't natively support nested data.

This subtable would be named engagements__associations and may contain the following attributes:

_sdc_source_key_id
INTEGER

The ID for the engagement.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

contactIds

IDs of the contacts associated with the engagement.

This data may be de-nested into a subtable if your data warehouse doesn't natively support nested data. See the Singer schema for detail on possible attributes.

companyIds

IDs of the companies associated with the engagement.

This data may be de-nested into a subtable if your data warehouse doesn't natively support nested data. See the Singer schema for detail on possible attributes.

dealIds

IDs of the deals associated with the engagement.

This data may be de-nested into a subtable if your data warehouse doesn't natively support nested data. See the Singer schema for detail on possible attributes.

attachments

For NOTE engagements only. IDs of the files from the file manager that should display in the attachments list when viewing the engagement in HubSpot.

This data may be de-nested into a subtable if your data warehouse doesn't natively support nested data.

This subtable would be named engagements__attachments and may contain the following attributes:

_sdc_source_key_id
INTEGER

The ID for the engagement.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

id
INTEGER

The ID of the attachment.

metadata__body
STRING

For NOTE engagements, this will be the body of the note.

For TASK engagements, this will be the body or details of the task.

For MEETING engagements, this will be the body or details of the meeting.

For CALL engagements, this will be the details or notes of the call.

metadata__from__email
STRING

The email address of the sender.

metadata__from__firstName
STRING

The first name of the sender.

metadata__from__lastName
STRING

The last name of the sender.

metadata__to__email
SRING

The email address of the recipient.

metadata__cc__email
STRING

The email of the CC’d recipient.

metadata__bcc__email
STRING

The email of the BCC’d recipient.

metadata__subject
STRING

For EMAIL engagements, this will be the subject of the email.

For TASK engagements, this will be the subject or title of the task.

metadata__html
STRING

For EMAIL engagements only. The body of the HTML email.

metadata__text
STRING

For EMAIL engagements only. The body of the text-only email.

metadata__status
STRING

For TASK engagements only. The status of the task. For example: COMPLETED

metadata__forObjectType
STRING

For TASK engagements only. The object type the task is for. For example: CONTACT

metadata__startTime
INTEGER

For MEETING engagements only. The start time of the meeting.

metadata__endTime
INTEGER

For MEETING engagements only. The ending time of the meeting.

metadata__title
STRING

For MEETING engagements only. The title or subject of the meeting.

metadata__toNumber
STRING

For CALL engagements only. The phone number that was called.

metadata__fromNumber
STRING

For CALL engagements only. The phone number that placed the call.

metadata__externalId
STRING

For CALL engagements only. For calls made in HubSpot, this will be the internal ID of the call.

metadata__durationMilliseconds
INTEGER

For CALL engagements only. The length of the call in milliseconds.

metadata__externalAccountId
STRING

For CALL engagements only. For calls made in HubSpot, this will be the internal ID of the account used to place the call.

metadata__recordingUrl
STRING

For CALL engagements only. The URL of the recording file.


Replication Method: Key-based Incremental Replication Key : updatedAt
Primary Key : guid API Endpoint: getAllFormsFromAPortal

The forms table contains info about your HubSpot website forms.

guid
STRING

The GUID of the form.

updatedAt
DATE-TIME

The time the form was last updated.

deletedAt
INTEGER

If the form was deleted, the time that the deletion took place.

portalId
INTEGER

The ID of the portal the form belongs to.

name
STRING

The name of the form.

action
STRING

Deprecated by HubSpot.

method
STRING

The API method used to send the form submission. For example: POST

cssClass
STRING

The CSS class associated with the form.

redirect
STRING

The URL that the visitor will be redirect to after filling out the form.

submitText
STRING

The text that displays to the end-user to submit the form. For example: Submit or Send Form

followUpId
STRING

Deprecated by HubSpot.

notifyRecipients
STRING

A list of email addresses that should receive submission notifications.

leadNurturingCampaignId
STRING

The ID of the lead nurturing campaign the form is associated with.

Reference: campaigns.campaignId
formFieldGroups

Details about the fields in the form.

This data may be de-nested into a subtable if your data warehouse doesn't natively support nested data.

This subtable would be named forms__formFieldGroups and may contain the following attributes:

_sdc_source_key_guid
STRING

The GUID of the form.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

default
BOOLEAN

Indicates if the form group is a default group.

isSmartGroup
BOOLEAN

Indicates if the form field group is a smart group.

richText__content
STRING

The content of the rich text separator.

fields

Details about the form field in the form.

This data may be de-nested into a subtable if your data warehouse doesn't natively support nested data. See the Singer schema for detail on possible attributes.

createdAt
DATE-TIME

The time the form was created.

performableHtml
STRING

Deprecated by HubSpot.

migratedFrom
STRING

Deprecated by HubSpot.

ignoreCurrentValues
BOOLEAN

Indicates if the form will pre-populate fields with known values for known contacts.

deleteable
BOOLEAN

Indicates if the form is deleteable.

inlineMessage
STRING

The ‘thank you’ message that displays on the page after the form is submitted.

tmsId
STRING

Deprecated by HubSpot.

captchaEnabled
BOOLEAN

Indicates if a Captcha is enabled on the form.

campaignGuid
STRING

The GUID of the campaign the form is associated with.

cloneable
BOOLEAN

Indicates if the form is cloneable.

editable
BOOLEAN

Indicates if the form is editable.

formType
STRING

The type of form. For example: HUBSPOT

metaData

Metadata about the form.

This data may be de-nested into a subtable if your data warehouse doesn't natively support nested data.

This subtable would be named forms__metaData and may contain the following attributes:

_sdc_source_key_guid
STRING

The GUID of the form.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

name
STRING

Deprecated by HubSpot.

value
STRING

Deprecated by HubSpot.


Replication Method: Key-based Incremental Replication Key : updatedAt
Primary Key : ownerId : portalId API Endpoint: getOwners

The owners table contains info about the owners that exist in your HubSpot portal. Owners are created and updated in HubSpot when new users are added or when owners are synced from Salesforce to HubSpot.

ownerId
INTEGER

The ID of the owner.

updatedAt
DATE-TIME

The time that the owner was last updated in HubSpot.

portalId
INTEGER

The ID of the portal the owner is associated with.

type
STRING

The type of owner. For example: person

firstName
STRING

The first name of the owner.

lastName
STRING

The last name of the owner.

email
STRING

The email address associated with the owner.

createdAt
DATE-TIME

The time that the owner was created in HubSpot.

signature
STRING

The owner’s signature.

hasContactsAccess
BOOLEAN

Indicates if the owner has access to the contacts in the HubSpot portal.

remoteList

Details about the remote list associated with the owner.

This data may be de-nested into a subtable if your data warehouse doesn't natively support nested data.

This subtable would be named owners__remoteList and may contain the following attributes:

_sdc_source_key_ownerId
INTEGER

The ID of the owner.

_sdc_source_key_portalId
INTEGER

The ID of the portal the owner is associated with.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

portalId
INTEGER

The ID of the portal the owner is associated with.

ownerId
INTEGER

The ID of the owner.

remoteId
STRING

The ID of the remote list.

remoteType
STRING

The remote list type.

active
BOOLEAN

Indicates if the owner is active.


subscription_changes

Replication Method: Key-based Incremental Replication Key : timestamp
Primary Key : recipient : portalId : timestamp API Endpoint: getSubscriptionsTimeline

The subscription_changes table contains info about changes made subscriptions.

recipient
STRING

The contact associated with the subscription change event.

portalId
INTEGER

The ID of the portal associated with the subscription change event.

timestamp
DATE-TIME

The time that the subscription change event occurred.

changes

Details about the subscription change event.

This data may be de-nested into a subtable if your data warehouse doesn't natively support nested data.

This subtable would be named subscription_changes__changes and may contain the following attributes:

_sdc_source_key_recipient
STRING

The contact associated with the subscription change event.

_sdc_source_key_portalId
INTEGER

The ID of the portal associated with the subscription change event.

_sdc_source_key_timestamp
DATE-TIME

The time that the subscription change event occurred.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

change
STRING

The action associated with the change. Ex: SUBSCRIBED

timestamp
DATE-TIME

The time that this particular event occurred.

source
STRING

The source of the change. Ex: SOURCE_RECIPIENT

portalId
INTEGER

The ID of the portal associated with the change event.

subscriptionId
INTEGER

If applicable, the ID of the subscription involved in the change event.

changeType
STRING

The type of change. Ex: SUBSCRIPTION_STATUS

causedByEvent__id
STRING

The ID of the event that caused the change.

causedByEvent__created
DATE-TIME

The time that the event that caused the change occurred.


Replication Method: Key-based Incremental Replication Key : updatedAt
Primary Key : id API Endpoint: getWorkflows

The workflows table contains info about the workflows in your HubSpot portal.

id
INTEGER

The ID of the workflow.

updatedAt
DATE-TIME

The time that the workflow was last updated.

name
STRING

The name of the workflow.

type
STRING

The type of workflow. For example: DRIP_DELAY

enabled
BOOLEAN

Indicates if the workflow is enabled in your HubSpot portal.

inserted-at
DATE-TIME

The time that the workflow was inserted.

personaTagIds

Info about the personas tied to the workflow.

This data may be de-nested into a subtable if your data warehouse doesn't natively support nested data.

This subtable would be named workflows__personaTagIds and may contain the following attributes:

_sdc_source_key_id
INTEGER

The ID of the workflow.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

value
INTEGER

The ID of the persona tied to the workflow.

contactListIds__enrolled
INTEGER

The number of contacts currently enrolled in the workflow.

contactListIds__active
INTEGER

The number of active contacts for the workflow.

contactListIds__steps

Summary info for the contact lists associated with the workflow.

This data may be de-nested into a subtable if your data warehouse doesn't natively support nested data.

Refer to the Singer schema for detail on possible attributes.



Questions? Feedback?

Did this article help? If you have questions or feedback, feel free to submit a pull request with your suggestions, open an issue on GitHub, or reach out to us.