docs/integrations/destinations/hubspot.md
This page guides you through the process of setting up the HubSpot destination connector. This connector supports data activation for operational workflows.
If you're using an S3 bucket to store rejected records, you also need the following.
Allow connections from Airbyte to your AWS S3/Minio S3 cluster (if they exist in separate VPCs).
An S3 bucket with credentials, a Role ARN, or an instance profile with read/write permissions configured for the host (EC2, EKS).
These fields are always required:
If you are using STS Assume Role, you must provide:
If you are using AWS credentials, you must provide:
If you are using an Instance Profile, you may omit the Access Key ID, Secret Access Key, and Role ARN.
Log into your Airbyte account.
Click Destination and then click + New destination.
On the Set up the destination page, select HubSpot from the Destination tiles.
Enter a name for the HubSpot connector.
From the Authentication dropdown, OAuth authentication is available so click Authenticate your HubSpot account to sign in with HubSpot and authorize your account.
:::note HubSpot Authentication issues
You may encounter an error during the authentication process in the popup window with the message An invalid scope name was provided. To resolve this, close the window and retry authentication.
:::
Click Set up destination and wait for the tests to complete.
| Sync mode | Supported? |
|---|---|
| Full Refresh - Overwrite | No |
| Full Refresh - Append | Yes |
| Full Refresh - Overwrite + Deduped | No |
| Incremental Sync - Append | Yes |
| Incremental Sync - Append + Deduped | No |
This is a data activation destination. In addition to the Airbyte sync modes above, HubSpot supports per-object write operations (insert, upsert, update, and soft delete) configured in the connection settings.
The HubSpot destination connector supports the following streams:
The connector automatically respects HubSpot's standard API rate limits. If you encounter rate limiting issues, the connector will retry requests with exponential backoff.
Except for the CONTACT object (which uses email as the matching key), the upsert method for this connector requires a unique value field to be present on the destination object.
Matching Key Requirements:
To create a unique value property in HubSpot:
Actions, select Edit PropertiesCreate propertyRequire unique values for this propertyIn order to verify our HubSpot application, HubSpot expects some usage i.e. more than 60 installations. Hence, when installing the app, you might see the message "You're connecting to an unverified app". This is expected for our first users. Once we have enough traffic on the application, we will be able to verify the app which will remove this warning.
During app the app installation, you might see scopes related to objects we don't support. This is expected as changing scopes might require the users to re-authenticate which is quite disruptive. In order to prevent that, we added scopes on objects we intend to support given user demands.
Hubspot has scopes for each API call. Each stream is tied to a scope and will need access to that scope to sync data. Review the Hubspot OAuth scope documentation here.
This destination does not support namespaces.
| Version | Date | Pull Request | Subject |
|---|---|---|---|
| 0.0.10 | 2026-02-09 | 72975 | Upgrade CDK to 1.0.1 |
| 0.0.9 | 2026-01-26 | 72304 | Upgrade CDK to 0.2.0 |
| 0.0.8 | 2025-11-05 | 69131 | Upgrade to Bulk CDK 0.1.61. |
| 0.0.7 | 2025-09-24 | 66684 | Pin to CDK artifact |
| 0.0.6 | 2025-09-10 | 65986 | Adding product object |
| 0.0.5 | 2025-09-08 | 65157 | Update following breaking changes on spec |
| 0.0.4 | 2025-07-31 | 64144 | OSS release |
| 0.0.3 | 2025-07-18 | 205 | Forcing new release |
| 0.0.2 | 2025-07-18 | 204 | Fixing auth |
| 0.0.1 | 2025-07-18 | 201 | First iteration internally |