HubSpot is a comprehensive customer relationship management and marketing automation platform that provides tools for lead generation, email marketing, sales pipeline management, customer service, and analytics, helping businesses attract, engage, and delight customers throughout their entire journey.
Power end-to-end data operations for your Hubspot API with Nexla. Our bi-directional Hubspot connector is purpose-built for Hubspot, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Hubspot or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Hubspot workflows fast, secure, and fully governed.
Features
Type: API
SourceDestination
Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
Request optimization with intelligent batching, retry, and caching to minimize API calls and costs
Before creating a HubSpot credential, you need to have a HubSpot account and create an OAuth2 application in your HubSpot account settings to obtain OAuth2 credentials (Client ID and Client Secret). The OAuth2 credentials are required to authenticate with the HubSpot API.
To obtain OAuth2 credentials, you need to create an OAuth2 application in your HubSpot account settings. Once the application is created, you can obtain the Client ID and Client Secret. The OAuth2 credentials include a Client ID and Client Secret that are used to authenticate API requests. You can also configure access scopes to control what permissions the application has. The default scopes provide access to all HubSpot objects and operations, but you can modify the scopes if your app has limited access to HubSpot. For detailed information about setting up OAuth2 credentials and creating OAuth2 applications, refer to the HubSpot API documentation.
HubSpot uses OAuth2 authentication to securely access the HubSpot API. OAuth2 is an industry-standard authorization protocol that allows applications to access user data without requiring users to share their passwords.
Enter your Client ID in the Client ID field. This is the Client ID you obtained from your HubSpot OAuth2 application settings.
Enter your HubSpot Client Secret in the Client Secret field. This is the Client Secret you obtained from your HubSpot OAuth2 application settings.
Click the Authorize button to begin the OAuth2 authorization flow. This will redirect you to HubSpot's authorization page where you will be asked to sign in with your HubSpot account and grant permissions to Nexla to access your HubSpot data.
During the OAuth2 authorization flow, you will be redirected to HubSpot's authorization page. You must sign in with a HubSpot account that has access to the HubSpot organization you want to connect. After signing in, you will be asked to grant permissions to Nexla to access your HubSpot data. The default scopes provide access to all HubSpot objects and operations, including contacts, companies, deals, lists, and more. Once you grant permissions, you will be redirected back to Nexla, and the authorization will be completed automatically.
After completing the OAuth2 authorization flow, Nexla will automatically obtain and store the access token and refresh token needed to authenticate API requests. The access token is used to authenticate each API request, and the refresh token is used to obtain new access tokens when the current access token expires.
OAuth2 access tokens expire after a certain period for security reasons. Nexla automatically refreshes expired access tokens using the refresh token, so you typically do not need to re-authorize unless you revoke access or the refresh token expires. The access token is sent in the Authorization header with the Bearer prefix for all API requests to the HubSpot API. The default scopes provide comprehensive access to HubSpot objects and operations. If your app has limited access to HubSpot, you may need to modify the scopes. For detailed information about OAuth2 authentication, token management, and available scopes, see the HubSpot API documentation.
Nexla also provides alternative authentication methods for HubSpot:
Nexla Public App Authentication (Read Only): Use this authentication method to connect to HubSpot using the Nexla public app. This application requests read-only access to all HubSpot objects.
Nexla Public App Authentication (Read/Write): Use this authentication method to connect to HubSpot using the Nexla public app. This application requests read and write access to all HubSpot objects.
These alternative methods use pre-configured OAuth2 applications managed by Nexla, which can simplify the setup process. However, using your own OAuth2 application (the method described above) provides more control over permissions and is recommended for production use.
Click the Save button at the bottom of the overlay. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation.
To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the HubSpot connector tile, then select the credential that will be used to connect to the HubSpot account, and click Next; or, create a new HubSpot credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common HubSpot endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below. Click on an endpoint to see more information about it and how to configure your data source for this endpoint.
Get all Contacts
Fetch contacts in an Account. Update the Properties To Fetch to control contact properties. Use the Properties endpoint to view available contact properties.
Select or enter the contact properties you want to fetch in the Properties To Fetch field. This should be a comma-separated string of contact properties. The default value is createdate,company,email,firstname,lastname,contact_notes,lastmodifieddate,hs_calculated_form_submissions,hs_object_id if not specified. Use the Properties endpoint to view available contact properties.
The endpoint uses GET requests to https://api.hubapi.com/crm/v3/objects/contacts?limit=100&properties={contact_props} where {contact_props} is the Properties To Fetch you provide. The endpoint URL is automatically constructed based on the HubSpot API base URL and all the parameters.
The endpoint uses token-based pagination (iteration.type: paging.next.token) through the after parameter. The response data path is $.results[*], which extracts all items from the results array in the API response.
When a response includes a paging.next.after value, Nexla automatically uses it as the after parameter for the subsequent request to fetch the next page of results until all contacts have been retrieved.
This endpoint retrieves all contacts from your HubSpot account. The endpoint allows you to specify which contact properties you want to fetch, giving you control over the data returned. The endpoint supports pagination through the after token mechanism, which allows you to retrieve large lists of contacts efficiently. The response includes pagination metadata that indicates the current page and next page token available. For detailed information about available contact properties and the API response format, see the HubSpot Contacts API documentation.
Get Contact Lists
Fetch all contact lists for an account.
This endpoint automatically retrieves all contact lists from your HubSpot account. No additional configuration is required beyond selecting this endpoint template.
The endpoint uses GET requests to https://api.hubapi.com/contacts/v1/lists?count=250. The endpoint URL is automatically constructed based on the HubSpot API base URL.
The endpoint uses incrementing offset pagination (iteration.type: paging.incrementing.offset) starting from offset 0. The response data path is $.lists[*], which extracts all items from the lists array in the API response.
The endpoint expects 250 rows per page by default and automatically fetches additional pages by incrementing the offset until all contact lists have been retrieved.
This endpoint retrieves all contact lists from your HubSpot account. Contact lists are collections of contacts that can be used for marketing campaigns, segmentation, and other purposes. The endpoint supports pagination through incrementing offset, which allows you to retrieve large lists of contact lists efficiently. The response includes pagination metadata that indicates the current offset and total records available. For detailed information about the API response format and available fields, see the HubSpot Lists API documentation.
Get all Deals
Fetch deals in an Account. Update the Properties To Fetch to control deal properties. Use the Properties endpoint to view available deal properties
Select or enter the deal properties you want to fetch in the Properties To Fetch field. This should be a comma-separated string of deal properties. The default value is amount,closedate,createdate,dealname,dealstage,hs_lastmodifieddate,hs_object_id,pipeline if not specified. Use the Properties endpoint to view available deal properties.
The endpoint uses GET requests to https://api.hubapi.com/crm/v3/objects/deals?limit=100&properties={deal_props} where {deal_props} is the Properties To Fetch you provide. The endpoint URL is automatically constructed based on the HubSpot API base URL and all the parameters.
The endpoint uses token-based pagination (iteration.type: paging.next.token) through the after parameter. The response data path is $.results[*], which extracts all items from the results array in the API response.
When a response includes a paging.next.after value, Nexla automatically uses it as the after parameter for the subsequent request to fetch the next page of results until all deals have been retrieved.
This endpoint retrieves all deals from your HubSpot account. The endpoint allows you to specify which deal properties you want to fetch, giving you control over the data returned. The endpoint supports pagination through the after token mechanism, which allows you to retrieve large lists of deals efficiently. The response includes pagination metadata that indicates the current page and next page token available. For detailed information about available deal properties and the API response format, see the HubSpot Deals API documentation.
Get all Companies
Fetch companies in an Account. Update the Properties To Fetch to control company properties. Use the Properties endpoint to view available properties.
Select or enter the company properties you want to fetch in the Properties To Fetch field. This should be a comma-separated string of company properties. Use the Properties endpoint to view available company properties.
The endpoint uses GET requests to https://api.hubapi.com/crm/v3/objects/companies?limit=100&properties={company_props} where {company_props} is the Properties To Fetch you provide. The endpoint URL is automatically constructed based on the HubSpot API base URL and all the parameters.
The endpoint uses token-based pagination (iteration.type: paging.next.token) through the after parameter. The response data path is $.results[*], which extracts all items from the results array in the API response.
When a response includes a paging.next.after value, Nexla automatically uses it as the after parameter for the subsequent request to fetch the next page of results until all companies have been retrieved.
This endpoint retrieves all companies from your HubSpot account. The endpoint allows you to specify which company properties you want to fetch, giving you control over the data returned. The endpoint supports pagination through the after token mechanism, which allows you to retrieve large lists of companies efficiently. The response includes pagination metadata that indicates the current page and next page token available. For detailed information about available company properties and the API response format, see the HubSpot Companies API documentation.
Get All Records for an Object
Fetch all records of a HubSpot object.
Enter the name of the HubSpot object whose records you want to fetch in the Object Name field. This should be the object type name (e.g., contacts, deals, companies, tickets, etc.).
Select or enter the properties you want to fetch in the Properties To Fetch field. This should be a comma-separated string of object properties.
The endpoint uses GET requests to https://api.hubapi.com/crm/v3/objects/{obj_name}?limit=100&properties={props} where {obj_name} is the Object Name you provide and {props} is the Properties To Fetch you provide. The endpoint URL is automatically constructed based on the HubSpot API base URL and all the parameters.
The endpoint uses token-based pagination (iteration.type: paging.next.token) through the after parameter. The response data path is $.results[*], which extracts all items from the results array in the API response.
When a response includes a paging.next.after value, Nexla automatically uses it as the after parameter for the subsequent request to fetch the next page of results until all records have been retrieved.
This endpoint retrieves all records of any HubSpot object from your account. The endpoint is flexible and can be used to fetch records from standard objects (contacts, deals, companies, etc.) or custom objects. The endpoint allows you to specify which properties you want to fetch, giving you control over the data returned. The endpoint supports pagination through the after token mechanism, which allows you to retrieve large lists of records efficiently. For detailed information about available objects and properties, see the HubSpot CRM API documentation.
Get Object Properties: Standard Objects
Fetch all existing properties for a standard HubSpot object.
Select the standard HubSpot object name from the Object Name dropdown menu. Available options include contacts, deals, tickets, products, line_items, companies, and quotes. The default value is contacts if not specified.
The endpoint uses GET requests to https://api.hubapi.com/crm/v3/properties/{obj_type} where {obj_type} is the Object Name you select. The endpoint URL is automatically constructed based on the HubSpot API base URL and the object type.
The endpoint does not use pagination (iteration.type: static.url) and returns a single response. The response data path is $.results[*], which extracts all items from the results array in the API response.
This endpoint retrieves all existing properties for a standard HubSpot object. Properties define the fields available for each object type. This endpoint is useful for discovering what properties are available for a given object type, which can help you configure other endpoints that require property names. The endpoint returns property definitions including property names, types, labels, and other metadata. For detailed information about properties and the API response format, see the HubSpot Properties API documentation.
Fetch All Custom Objects
Discover all the custom objects available in your HubSpot Account
This endpoint automatically retrieves all custom objects from your HubSpot account. No additional configuration is required beyond selecting this endpoint template.
The endpoint uses GET requests to https://api.hubapi.com/crm/v3/schemas. The endpoint URL is automatically constructed based on the HubSpot API base URL.
The endpoint does not use pagination (iteration.type: static.url) and returns a single response. The response data path is $.results[*], which extracts all items from the results array in the API response.
This endpoint retrieves all custom objects available in your HubSpot account. Custom objects are object types that you create in HubSpot to store custom data beyond the standard CRM objects. This endpoint is useful for discovering what custom objects are available in your account, which can help you configure other endpoints that work with custom objects. The endpoint returns object schema definitions including object names, labels, and other metadata. For detailed information about custom objects and the API response format, see the HubSpot Custom Objects API documentation.
Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.
HubSpot data sources can also be manually configured to ingest data from any valid HubSpot API endpoint, including endpoints not covered by the pre-built templates, chained API calls, or custom request parameters. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.
HubSpot API endpoints typically follow the pattern https://api.hubapi.com/{endpoint_path} and return data in JSON format. The endpoint requires OAuth2 authentication via the Authorization: Bearer {token} header, which is handled automatically by your credential configuration. For detailed information about available HubSpot API endpoints, see the HubSpot API documentation.
Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new HubSpot data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.
Click the + icon on the Nexset that will be sent to the HubSpot destination, and select the Send to Destination option from the menu. Select the HubSpot connector from the list of available destination connectors, then select the credential that will be used to connect to the HubSpot organization, and click Next; or, create a new HubSpot credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common HubSpot endpoints. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.
Create Contacts
Create contacts in Hubspot. Each record of the dataset will result in a new contact. Check out the API documentation link for required dataset schema.
This endpoint automatically creates new contacts in your HubSpot account using data from your Nexset. No additional configuration is required beyond selecting this endpoint template.
The endpoint uses POST requests to https://api.hubapi.com/crm/v3/objects/contacts. The endpoint URL is automatically constructed based on the HubSpot API base URL.
The endpoint sends data from your Nexset as the request body in JSON format. The request body is automatically formatted according to the schema fields and data mapping you configure. Each record in your Nexset will be sent as a JSON object containing the contact data to create.
Batch mode is disabled by default for this endpoint. Each record in your Nexset will be sent as a separate API request to create a contact. If you need to create multiple contacts, you can send multiple records, but each will be processed as a separate request.
This endpoint does not automatically create a data source to track the responses received from the HubSpot API after each call.
The request body must be properly formatted JSON that matches the HubSpot API specification for creating contacts. The endpoint requires OAuth2 authentication via the Authorization: Bearer {token} header, which is handled automatically by your credential configuration. The Content-Type: application/json header is automatically included in requests. Please check the API documentation link for the required dataset schema. Batch mode is disabled by default (batch.mode: false), so each record will be sent as a separate request. For detailed information about creating contacts, including required fields, field names, and request formats, see the HubSpot Contacts API documentation.
Create Deals
Create deals in Hubspot. Each record of the dataset will result in a new deal. Check out the API documentation link for required dataset schema.
This endpoint automatically creates new deals in your HubSpot account using data from your Nexset. No additional configuration is required beyond selecting this endpoint template.
The endpoint uses POST requests to https://api.hubapi.com/crm/v3/objects/deals. The endpoint URL is automatically constructed based on the HubSpot API base URL.
The endpoint sends data from your Nexset as the request body in JSON format. The request body is automatically formatted according to the schema fields and data mapping you configure. Each record in your Nexset will be sent as a JSON object containing the deal data to create.
Batch mode is disabled by default for this endpoint. Each record in your Nexset will be sent as a separate API request to create a deal. If you need to create multiple deals, you can send multiple records, but each will be processed as a separate request.
This endpoint does not automatically create a data source to track the responses received from the HubSpot API after each call.
The request body must be properly formatted JSON that matches the HubSpot API specification for creating deals. The endpoint requires OAuth2 authentication via the Authorization: Bearer {token} header, which is handled automatically by your credential configuration. The Content-Type: application/json header is automatically included in requests. Please check the API documentation link for the required dataset schema. Batch mode is disabled by default (batch.mode: false), so each record will be sent as a separate request. For detailed information about creating deals, including required fields, field names, and request formats, see the HubSpot Deals API documentation.
HubSpot destinations can also be manually configured to send data to any valid HubSpot API endpoint. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.
HubSpot API endpoints typically expect JSON format for request bodies and follow the pattern https://api.hubapi.com/{endpoint_path}. For update/upsert operations, include the ID of the object to be updated at the end of the URL.
Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To send the data to the configured HubSpot endpoint, open the destination resource menu, and select Activate.
The Nexset data will not be sent to the HubSpot endpoint until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.