HubSpot Source
Configure HubSpot as a source for supported CRM, marketing, engagement, commerce, list, and account data. Use OAuth for user-delegated access or a Private App access token managed by your team.
For capabilities and use cases, see the HubSpot connector page. For the Snowflake-specific workflow, see HubSpot to Snowflake.
Prerequisites
Before you begin, ensure you have:
- A HubSpot account with access to the objects and properties you want to sync
- For OAuth, a user allowed to authorize the Supaflow app for that HubSpot account
- For Private App authentication, an active access token with read scopes for the required objects
HubSpot controls which objects are available to an account and which scopes a user or Private App can grant. The connection can discover only the supported objects and properties available to its grant.
Supported Objects
CRM Objects
| Object | Sync Mode | Description |
|---|---|---|
| Contacts | Incremental | People in the CRM |
| Companies | Incremental | Organizations associated with CRM work |
| Deals | Incremental | Sales opportunities in pipelines |
| Tickets | Incremental | Customer service records |
| Products | Incremental | Product catalog records |
| Line Items | Incremental | Products or services attached to commercial records |
| Quotes | Incremental | Sales quotes |
| Leads | Incremental | Prospects in the sales workspace |
| Goals | Incremental | Sales targets |
Marketing and Engagement
| Object | Sync Mode | Description |
|---|---|---|
| Marketing Emails | Incremental | Marketing email definitions and metadata |
| Email Events | Incremental | Available delivery and engagement events |
| Behavioral Events | Full Refresh | Behavioral events associated with CRM records |
| Calls | Incremental | Logged calls |
| Emails | Incremental | Logged one-to-one emails |
| Meetings | Incremental | Scheduled meetings |
| Notes | Incremental | Notes attached to CRM records |
| Tasks | Incremental | Assigned tasks |
| Postal Mail | Incremental | Logged postal-mail activities |
| Communications | Incremental | Supported logged messages |
Commerce Objects
| Object | Sync Mode | Description |
|---|---|---|
| Invoices | Incremental | Issued invoices |
| Payments | Incremental | Commerce payment records |
| Subscriptions | Incremental | Recurring subscription records |
| Carts | Incremental | Shopping carts from connected stores |
| Orders | Incremental | Commerce orders |
Lists and Lookup Data
| Object | Sync Mode | Description |
|---|---|---|
| Contact Lists and Memberships | Full Refresh | Contact list definitions and membership rows |
| Company Lists and Memberships | Full Refresh | Company list definitions and membership rows |
| Owners | Full Refresh | Record owners |
| Teams | Full Refresh | Team definitions |
| Users | Full Refresh | HubSpot users |
| Roles | Full Refresh | Permission roles |
| Deal, Ticket, and Lead Pipelines | Full Refresh | Pipeline definitions |
| Pipeline Stages | Full Refresh | Stages within supported pipelines |
For selected objects, the discovered schema can also include configured association tables or property-history tables. These outputs follow the mappings and object features shipped with the connector; they are not automatic coverage of every portal-specific association or history type.
Not Yet Supported
- Portal-specific custom objects — custom properties on supported objects are included, but automatic discovery of custom objects defined in the portal is not currently implemented.
- Forms and form submissions — these records are not currently available as selectable objects.
Sync Behavior
Supaflow tracks progress separately for each incremental object. After an initial load, a scheduled run reads source rows after that object's saved position. An optional lookback can overlap the previous window to account for late-arriving updates.
Behavioral Events, lists, memberships, owners, teams, users, roles, and pipeline lookup data use full refresh. Their current rows are read again on each run.
For eligible objects, the connector can also request archived records that HubSpot still exposes. This is not hard-delete capture: once HubSpot permanently removes a record, an ordinary object read has no deleted row to return.
Authentication
OAuth
OAuth opens HubSpot's authorization flow and manages token refresh automatically. Select the HubSpot account to connect and approve the requested read access. If the account later gains access to more objects, reconnect OAuth so HubSpot can update the grant.
Private App Access Token
Use a Private App access token for a service-style connection managed by your team. Create the Private App in HubSpot, grant read scopes only for the objects the pipeline needs, and copy its access token into Supaflow.
Rotating or revoking the token requires updating the source connection before its next run.
Configuration
Authentication Type*How Supaflow connects to HubSpot.
Options:
- oauth — Browser-based authorization with automatic token refresh
- private_app — Access token from a HubSpot Private App
Default: oauth
Private App Access Token*Shown when Authentication Type is private_app. Enter the active token from the HubSpot Private App.
Stored encrypted
Leave this setting at its default. HubSpot requests use Supaflow's built-in pacing, so this value does not change the request rate.
Page SizeNumber of records requested per page. Keep the default unless support or a measured source constraint calls for a smaller value.
Schema Refresh IntervalHow often Supaflow rediscovers supported objects and properties.
Options:
- 0 — Refresh before every pipeline execution
- -1 — Disable automatic schema refresh
- Positive value — Refresh interval in minutes
Default: 60
Incremental LookbackNumber of seconds to overlap the previous incremental window. Use a small overlap when late-arriving HubSpot updates otherwise fall behind the saved position.
Default: 0
After configuring the connection, click Test & Save. Supaflow verifies the credential and discovers the supported schema available to it.
Rate Limiting
HubSpot applies API usage limits. Supaflow retries throttled requests with backoff and follows HubSpot retry timing when it is provided.
Large selections may take longer when other integrations use the same account. Narrow the selected object or field scope, avoid overlapping schedules, or run large jobs during a quieter period.
Troubleshooting
OAuth authorization fails
- Confirm the HubSpot user can authorize apps for the selected account.
- Confirm the account provides access to the required products and objects.
- Allow the HubSpot sign-in and redirect in the browser, then retry authorization.
- Reconnect the source if the previous grant was revoked.
A Private App token is rejected
- Confirm the token is active and was copied without extra spaces.
- Confirm the Private App has read scopes for the required objects.
- Confirm the HubSpot account still contains the Private App.
- Rotate the token in HubSpot and update the source if the old token was revoked.
Objects or properties are missing
- Confirm the item is in the supported catalog above.
- Confirm the connected user or Private App can read it.
- Reconnect OAuth after changing permissions or subscription access.
- Set Schema Refresh Interval to 0, then test and save the source again.
- Review Job Details when HubSpot rejects a specific object.
Portal-specific custom objects and forms are not currently selectable, even if they exist in the connected account.
A table runs full refresh
Check its sync mode in the supported-object tables above. Behavioral Events, lists, memberships, and lookup data intentionally use full refresh rather than the saved-progress path used by supported incremental objects.
An archived or deleted record is missing
Archived-record reads apply only to eligible objects while HubSpot still exposes the record. A record that has been permanently removed cannot be emitted as a hard-delete event by this connector.
A run is slowed by rate limiting
Supaflow retries throttled requests automatically. If contention persists, reduce object or field scope, avoid overlapping HubSpot schedules, or run large jobs during a quieter period.
Related Pages
- HubSpot connector overview
- Move HubSpot data to Snowflake
- Salesforce source
- Salesforce Marketing Cloud source
- Create an ingestion pipeline
- Snowflake destination
Support
Need help? Contact us at support@supa-flow.io