HubSpot
This page contains the setup guide and reference information for the HubSpot source connector.
Prerequisites
- HubSpot Account
- For Airbyte Open Source: Private App with Access Token
Setup guide
Step 1: Set up HubSpot
For Airbyte Cloud:
- OAuth (Recommended). We highly recommend you use OAuth rather than Private App authentication, as it significantly simplifies the setup process.
- Private App: If you are using a Private App, you will need to use your Access Token to set up the connector. Please refer to the official HubSpot documentation to learn how to obtain the access token.
For Airbyte Open Source:
- Private App setup (Recommended): If you are authenticating via a Private App, you will need to use your Access Token to set up the connector. Please refer to the official HubSpot documentation to learn how to obtain the access token.
- OAuth setup: If you are using Oauth to authenticate on Airbyte Open Source, please refer to Hubspot's detailed walkthrough. To set up the connector, you will need to acquire your:
- Client ID
- Client Secret
- Refresh Token
More information on HubSpot authentication methods can be found here.
Step 2: Configure the scopes for your streams (Private App only)
These instructions are only relevant if you are using a Private App for authentication. You can ignore this if you are authenticating via OAuth.
To set up a Private App, you must manually configure scopes to ensure Airbyte can sync all available data. Each scope relates to a specific stream or streams. Please refer to Hubspot's page on scopes for instructions.
Expand to review scopes
Stream | Required Scope |
---|---|
campaigns | content |
companies | crm.objects.companies.read , crm.schemas.companies.read |
contact_lists | crm.lists.read |
contacts | crm.objects.contacts.read |
contacts_list_memberships | crm.objects.contacts.read |
contacts_form_submissions | crm.objects.contacts.read |
contacts_web_analytics | crm.objects.contacts.read , business-intelligence |
Custom CRM Objects | crm.objects.custom.read |
deal_pipelines | crm.objects.contacts.read |
deals | crm.objects.deals.read , crm.schemas.deals.read |
deals_archived | crm.objects.deals.read , crm.schemas.deals.read |
email_events | content |
email_subscriptions | content |
engagements | crm.objects.companies.read , crm.objects.contacts.read , crm.objects.deals.read , tickets , e-commerce |
engagements_emails | sales-email-read |
forms | forms |
form_submissions | forms |
goals | crm.objects.goals.read |
leads | crm.objects.leads.read , crm.schemas.leads.read |
line_items | e-commerce |
owners | crm.objects.owners.read |
products | e-commerce |
property_history | crm.objects.contacts.read |
subscription_changes | content |
tickets | tickets |
workflows | automation |
Step 3: Set up the HubSpot connector in Airbyte
For Airbyte Cloud:
- Log into your Airbyte Cloud account.
- Click Sources and then click + New source.
- On the Set up the source page, select HubSpot from the Source type dropdown.
- Enter a name for the HubSpot connector.
- From the Authentication dropdown, select your chosen authentication method:
-
(Recommended) To authenticate using OAuth, select OAuth and click Authenticate your HubSpot account to sign in with HubSpot and authorize your account.
HubSpot Authentication issuesYou 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. -
(Not Recommended) To authenticate using a Private App, select Private App and enter the Access Token for your HubSpot account.
-
- For Start date, use the provided datepicker or enter the date in the following format:
yyyy-mm-ddThh:mm:ssZ
. Data added on and after this date will be replicated. If this is not set, "2006-06-01T00:00:00Z" (the date Hubspot was created) will be used as a start date.
- Click Set up source and wait for the tests to complete.
For Airbyte Open Source:
- Navigate to the Airbyte Open Source dashboard.
- From the Airbyte UI, click Sources, then click on + New Source and select HubSpot from the list of available sources.
- Enter a Source name of your choosing.
- From the Authentication dropdown, select your chosen authentication method:
- (Recommended) To authenticate using a Private App, select Private App and enter the Access Token for your HubSpot account.
- (Not Recommended:) To authenticate using OAuth, select OAuth and enter your Client ID, Client Secret, and Refresh Token.
- For Start date, use the provided datepicker or enter the date in the following format:
yyyy-mm-ddThh:mm:ssZ
. The data added on and after this date will be replicated. If not set, "2006-06-01T00:00:00Z" (Hubspot creation date) will be used as start date. It's recommended to provide relevant to your data start date value to optimize synchronization. - Click Set up source and wait for the tests to complete.
Experimental streams
Web Analytics streams may be enabled as an experimental feature. Note that these streams use a Hubspot API that is currently in beta, and they may be modified or unstable as the API continues to develop.
Supported sync modes
The HubSpot source connector supports the following sync modes:
- Full Refresh
- Incremental
There are two types of incremental sync:
- Incremental (standard server-side, where API returns only the data updated or generated since the last sync)
- Client-Side Incremental (API returns all available data and connector filters out only new records)
Supported Streams
The HubSpot source connector supports the following streams:
- Campaigns (Client-Side Incremental)
- Companies (Incremental)
- Contact Lists (Incremental)
- Contacts (Incremental)
- Contacts List Memberships
- Contacts Form Submissions
- Contacts Merged Audit
- Deal Pipelines (Client-Side Incremental)
- Deals (including Contact associations) (Incremental)
- Records that have been deleted (archived) and stored in HubSpot's recycle bin will only be kept for 90 days, see response from HubSpot Team
- Deals Archived (including Contact associations) (Incremental)
- Email Events (Incremental)
- Email Subscriptions
- Engagements (Incremental)
- Engagements Calls (Incremental)
- Engagements Emails (Incremental)
- Engagements Meetings (Incremental)
- Engagements Notes (Incremental)
- Engagements Tasks (Incremental)
- Forms (Client-Side Incremental)
- Form Submissions (Client-Side Incremental)
- Goals (Incremental)
- Leads (Incremental)
- Line Items (Incremental)
- Marketing Emails
- Owners (Client-Side Incremental)
- Owners Archived (Client-Side Incremental)
- Products (Incremental)
- Contacts Property History (Client-Side Incremental)
- Companies Property History (Client-Side Incremental)
- Deals Property History (Client-Side Incremental)
- Subscription Changes (Incremental)
- Tickets (Incremental)
- Ticket Pipelines (Client-Side Incremental)
- Workflows (Client-Side Incremental)
- ContactsWebAnalytics (Incremental)
- CompaniesWebAnalytics (Incremental)
- DealsWebAnalytics (Incremental)
- TicketsWebAnalytics (Incremental)
- EngagementsCallsWebAnalytics (Incremental)
- EngagementsEmailsWebAnalytics (Incremental)
- EngagementsMeetingsWebAnalytics (Incremental)
- EngagementsNotesWebAnalytics (Incremental)
- EngagementsTasksWebAnalytics (Incremental)
- GoalsWebAnalytics (Incremental)
- LineItemsWebAnalytics (Incremental)
- ProductsWebAnalytics (Incremental)