HubSpot Connector
Description
HubSpot is a Customer Relationship Management software for inbound marketing, sales, and customer service. Manage contacts, companies, deals, products, engagements, and custom objects in HubSpot.
API Documentation
This component was built using the HubSpot API Documentation currently utilizing v3
Documentation for HubSpot's REST API used in this component can be found at the HubSpot API Documentation.
If a HubSpot API endpoint doesn't have a corresponding action within this component, you can leverage the Raw Request action to make a request to any HubSpot API endpoint.
Processing HubSpot events in real-time
HubSpot requires that you provide only one webhook URL for your app, and HubSpot will send all customers' events to that URL. If you would like to detect and process changes to your customers' HubSpot accounts in real-time, see the Single-Endpoint Webhook Integrations guide on handling webhook requests from apps that require you to specify a single webhook endpoint.
Connections
Webhook Authentication
key: hubspotOAuthTriggerThe Webhook Authentication connection is used specifically for verifying HubSpot webhook signatures to ensure webhook requests are legitimate.
This connection is only used for webhook triggers and does not grant API access. It solely validates that incoming webhooks are from HubSpot by verifying the request signature.
Prerequisites
- Access to a HubSpot account
- Appropriate permissions to create private apps or manage existing apps
- A configured HubSpot app with webhook capabilities
Setup Steps
- Navigate to HubSpot and log in
- Navigate to Settings > Integrations > Private Apps
- To create a new app:
- Click Create a private app or Create an app
- Configure the required webhook subscriptions
- Navigate to the Auth or App Credentials section
- Copy the Client Secret value
Configure the Connection
- Enter the Client Secret from the HubSpot app into the connection configuration
- The client secret is used to verify webhook signatures
- Ensure the trigger is configured to use the Webhook Authentication connection
Webhook Subscriptions
After configuring the connection, webhook subscriptions must be set up:
- In the app settings, navigate to the Webhooks section
- Click Configure or Set up webhooks
- Provide the following:
- Target URL: The webhook endpoint URL where HubSpot will send webhook events (found in Test Configuration > Trigger Payload section of the integration)
- Events to subscribe to: Select the specific events to monitor (e.g., contact created, deal updated, company deleted)
| Input | Notes | Example |
|---|---|---|
| Client Secret | The Client Secret from your HubSpot app, used to verify webhook signatures. |
OAuth 2.0
key: oauth2To connect to HubSpot using OAuth 2.0, create an app in the HubSpot developer platform. HubSpot offers two approaches: creating an app via CLI (recommended for new integrations), or creating a legacy app through the web interface.
Refer to the HubSpot app creation guide and quick reference guide for detailed information.
Creating an App via the CLI
The CLI-based approach is recommended for new HubSpot OAuth integrations as it provides access to the latest features and platform improvements.
Prerequisites
- A HubSpot developer account is required
- Node.js v20 or higher and npm installed (for CLI-based app creation)
- HubSpot CLI version 8.6.0 or higher
Setup Steps
-
Install the HubSpot CLI:
npm install -g @hubspot/cli -
Authenticate the CLI with a HubSpot developer account:
hs account auth -
Create a new app project:
hs project create- Select App as the project template
- Choose the distribution type (marketplace or private/specific accounts)
- Select OAuth as the authentication method
- Optionally select app features (Card, App Function, Settings, Webhooks, Custom Workflow Action)
-
Configure the app by editing the generated
app-hsmeta.jsonfile (located atsrc/app/app-hsmeta.jsonwithin the project directory):- Update the name and description fields
- In the auth section, add
https://oauth2.prismatic.io/callbackto the redirectUrls array - Update the scopes array with required OAuth permissions
-
Upload the app project to HubSpot:
hs project uploadDirectory ErrorIf the error
[ERROR] Unable to locate a project configuration fileappears, change to the project folder where the app was created and run the command again. -
Open the project in the HubSpot developer portal:
hs project open -
Navigate to the Auth tab in the developer portal
-
Copy the Client ID and Client Secret from the Auth page
Configure the Connection
- Enter the Client ID and Client Secret from the app's Auth page
- For Scopes, choose from the available scopes based on integration needs
- Refer to HubSpot OAuth documentation for scope details
Recommended Scopes
The following scopes provide comprehensive access to HubSpot CRM functionality that this component supports:
| Category | Scope | Description |
|---|---|---|
| Essential | oauth | Required for all OAuth apps (cannot be removed) |
| Essential | crm.objects.owners.read | Read owner information |
| CRM Objects | crm.objects.contacts.read | Read contacts |
| CRM Objects | crm.objects.contacts.write | Create/update contacts |
| CRM Objects | crm.objects.companies.read | Read companies |
| CRM Objects | crm.objects.companies.write | Create/update companies |
| CRM Objects | crm.objects.deals.read | Read deals |
| CRM Objects | crm.objects.deals.write | Create/update deals |
| CRM Objects | crm.objects.custom.read | Read custom objects |
| CRM Objects | crm.objects.custom.write | Create/update custom objects |
| Additional Objects | crm.objects.line_items.read | Read line items |
| Additional Objects | crm.objects.line_items.write | Create/update line items |
| Additional Objects | crm.objects.quotes.read | Read quotes |
| Additional Objects | crm.objects.quotes.write | Create/update quotes |
| Additional Objects | tickets | Ticket management |
| Schemas | crm.schemas.contacts.read | Contact property definitions |
| Schemas | crm.schemas.companies.read | Company property definitions |
| Schemas | crm.schemas.deals.read | Deal property definitions |
| Webhooks | webhooks | Webhook subscriptions (requires App ID and Developer API Key) |
Example minimal scope configuration:
crm.objects.contacts.read crm.objects.contacts.write crm.objects.deals.read crm.objects.deals.write crm.objects.owners.read
For a complete list of available scopes, refer to the HubSpot OAuth scopes documentation.
Creating a Legacy App
HubSpot is discontinuing legacy public app creation. Creation will be disabled for new developer accounts on May 26, 2026 and for all accounts on June 23, 2026. Existing legacy apps will continue to work.
For new integrations, use the CLI-based approach described above.
Setup Steps
- Navigate to the HubSpot developer account portal
- Click Create app to create a new public app
- Fill in the app details (name, description, etc.)
- Navigate to the Auth tab of the newly created app
- Under Redirect URLs, add
https://oauth2.prismatic.io/callback - Configure the required scopes for the integration in the Scopes section
- Copy the Client ID and Client Secret from the Auth page
Configure the Connection
- Enter the Client ID and Client Secret from the app's Auth page
- Configure scopes as needed (see Recommended Scopes above)
App Distribution
HubSpot requires OAuth apps to commit to a distribution type that determines who can install the integration and whether a formal HubSpot review is required. Choosing incorrectly at creation is not recoverable (the app must be rebuilt), so understanding this before creating the app matters.
The distribution type selected during hs project create determines who can install the app and whether a review process applies.
Private or specific accounts (no review required): The app is accessible only to HubSpot accounts you explicitly add. Users from other HubSpot accounts cannot install it. To add accounts, navigate to the app's Distribution settings in the developer portal and enter each account's hub ID. This is the appropriate option for single-customer integrations or internal tools.
HubSpot App Marketplace (HubSpot review required): The app is publicly listed in the HubSpot App Marketplace and any HubSpot customer can install it. HubSpot reviews marketplace submissions for quality, security, and functionality before listing.
For integrations deployed to multiple customers, each with their own HubSpot account, the marketplace path is the scalable option. For single-organization deployments, the private/specific accounts path avoids the review process entirely.
| Input | Notes | Example |
|---|---|---|
| App ID | The App ID from the HubSpot Developer Console. Required for Webhooks. | 123456 |
| Authorize URL | The OAuth 2.0 Authorization URL for HubSpot. You can include optional scopes here. | https://app.hubspot.com/oauth/authorize?optional_scope=crm.lists.read content |
| Client ID | The Client ID from your HubSpot app. Find this in HubSpot Developer Account > Apps > Auth. | 12345678-1234-1234-1234-123456789abc |
| Client Secret | The Client Secret from your HubSpot app. Keep this value secure. | |
| Developer API Key | The Developer API Key from the HubSpot Developer Console. Required for Webhooks. | |
| Scopes | OAuth permission scopes. See HubSpot scopes for available scopes. | crm.objects.contacts.read crm.objects.deals.read |
| Token URL | The OAuth 2.0 Token URL for HubSpot. | https://api.hubapi.com/oauth/v3/token |
Private App Access Token
key: privateAppAccessTokenPrivate app access tokens are recommended for testing purposes only. For production integrations, OAuth 2.0 should be used to allow users to authenticate with their own credentials.
Private app access tokens do not expire but can be revoked at any time from the HubSpot account settings.
Prerequisites
- Access to a HubSpot account
- Appropriate permissions to create private apps
Setup Steps
To generate a private app access token:
- Navigate to HubSpot and log in
- Navigate to Settings > Integrations > Private Apps
- Click Create a private app
- Enter a name for the app
- Configure the required scopes for the integration
- After creating the app, navigate to the Auth tab
- Copy the Access Token displayed
Configure the Connection
- Enter the Access Token from the HubSpot private app settings into the connection configuration
| Input | Notes | Example |
|---|---|---|
| Access Token | An access token generated when you create a private app. For testing purposes only - use OAuth 2.0 for production integrations. |
Triggers
Event Type Subscription
Receive CRM event notifications from HubSpot. Automatically creates and manages a webhook subscription for selected event types when the instance is deployed, and removes the subscription when the instance is deleted. | key: eventTypeSubscription
| Input | Notes | Example |
|---|---|---|
| Event Types | Events to listen for. Make sure to have the right permissions. | |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Overwrite Webhook Settings | When true, overwrites existing webhook settings. HubSpot only permits one Target URL per App ID. | false |
The Event Type Subscription trigger can manage HubSpot webhook subscriptions for an instance. Unlike the Webhook trigger that requires manual configuration in the HubSpot Developer Console, this trigger handles the entire webhook lifecycle automatically.
When the trigger is used in a flow:
- On Instance Deploy: The trigger automatically creates webhook subscription configurations in the HubSpot app for the selected event types (contact creation, deal updates, etc.). The webhook target URL is set to the instance's unique webhook URL. If webhook settings already exist for the app and the overwrite option is disabled, the trigger will throw an error to prevent accidental changes. If overwrite is enabled, existing settings are replaced with the new configuration.
- On Instance Deletion: The trigger automatically removes webhook subscriptions and settings from the HubSpot app if the webhook URL matches the instance being deleted. This ensures no orphaned webhook configurations remain after instance cleanup.
Configuration Requirements
This trigger requires a HubSpot OAuth 2.0 connection with the following values from the HubSpot Developer Console:
- Client ID and Client Secret - OAuth credentials for authentication
- App ID - The numeric application ID from the developer console
- Developer API Key - The developer API key for managing webhook subscriptions
- OAuth Scopes - Required scopes for the events being subscribed to (e.g.,
crm.objects.contacts.readfor contact events)
Event Types Configuration
When configuring the trigger, select which HubSpot events should trigger the flow. Available event types include:
CRM Object Events:
- Contact events:
contact.creation,contact.deletion,contact.propertyChange,contact.associationChange - Company events:
company.creation,company.deletion,company.propertyChange,company.associationChange - Deal events:
deal.creation,deal.deletion,deal.propertyChange,deal.associationChange - Ticket, product, and line item events follow the same patterns
Property-Specific Events:
For propertyChange events, you can optionally specify individual property names to monitor (e.g., only trigger when the email or phone property changes).
A full list of available webhook events and required OAuth scopes is available in the HubSpot Webhooks API documentation.
Overwrite Settings
HubSpot limits webhooks to a single URL per app. Therefore, the Overwrite Webhook Settings input controls behavior when webhook configurations already exist for the HubSpot app. This is disabled by default, but when enabled, existing webhook settings are deleted and replaced with the new configuration from this trigger.
When multiple instances use the same HubSpot app, coordinate the overwrite setting carefully. Enabling overwrite in one instance will affect webhook configurations for all instances using the app.
New and Updated Custom Records
Retrieves existing and ongoing records for a specified HubSpot custom object type. Load history once, check for changes on a schedule, or both. | key: pollChangesCustomObjectsTrigger
| Input | Notes | Example |
|---|---|---|
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Look-back Date | The date the initial sync starts from, in YYYY-MM-DD format. Cannot be a future date. Leave empty to start from the first recurrence with no backfill. When set, the initial sync seeds each record created on or after this date once, ignoring the visibility toggles. | 2026-01-01 |
| Object Type | The type of custom object to search for. | deal |
| Search Properties | Include properties such as filters and sorts, or specify the properties to be returned. If empty, only the default properties will be returned. On the polling triggers, | |
| Show New Records | When true, includes new records in the results. | true |
| Show Updated Records | When true, includes updated records in the results. | true |
See New and Updated Records for complete instructions.
This trigger works identically to New and Updated Records, with the difference being it monitors custom HubSpot objects instead of standard objects. The custom object type must expose a hs_lastmodifieddate property, since that is what this trigger filters and sorts on.
New and Updated Records
Retrieves existing and ongoing records for a specified HubSpot object type. Load history once, check for changes on a schedule, or both. | key: pollChangesTrigger
| Input | Notes | Example |
|---|---|---|
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Look-back Date | The date the initial sync starts from, in YYYY-MM-DD format. Cannot be a future date. Leave empty to start from the first recurrence with no backfill. When set, the initial sync seeds each record created on or after this date once, ignoring the visibility toggles. | 2026-01-01 |
| Search Endpoint | The endpoint to search for objects or engagements. For Custom objects don't forget to fill the Object Type input. | |
| Search Properties | Include properties such as filters and sorts, or specify the properties to be returned. If empty, only the default properties will be returned. On the polling triggers, | |
| Show New Records | When true, includes new records in the results. | true |
| Show Updated Records | When true, includes updated records in the results. | true |
This component provides two polling triggers that retrieve existing and ongoing CRM records. Both can load history once, check for changes on a schedule, or both, and they work identically. The main difference is which types of objects they monitor.
New and Updated Records - Use for standard HubSpot objects:
- Companies, Contacts, Deals, Tickets, Products, Line Items, Quotes, Feedback Submissions
- Calls, Emails, Meetings, Notes, Tasks
New and Updated Custom Records - Use for custom objects:
- Custom object types created in HubSpot
- Requires specifying the custom object type name
How It Works
On each recurrence both triggers search HubSpot using the Search API for records whose last-modified property falls after the trigger's stored position, classify each as created or updated by comparing its created and last-modified timestamps against that window, and return them oldest-first. A record created and later modified within the same window appears in both lists.
Each recurrence stores where its page ended, so the next one continues from there rather than repeating it. A single HubSpot search returns at most 10,000 results; when a window holds more than that, the trigger drains up to 10,000 per recurrence without batching — or up to 1,000 per round with batching, keeping each delivered payload small — and resumes the same window rather than skipping the remainder. With batching enabled it also resumes immediately inside the same recurrence instead of waiting for the schedule.
The first recurrence
- Look-back Date empty: the trigger records the current time and reports nothing. Incremental polling begins on the next recurrence.
- Look-back Date set: the trigger begins a one-time initial sync covering everything created on or after that date, seeding each record exactly once. With batching enabled the sync finishes within this recurrence; without batching it continues across following recurrences until its window is exhausted, and those recurrences are still part of the sync.
During an initial sync
Some inputs are ignored so that every intended record is retrieved: the sync seeds a complete starting state. The inputs that control which records are searched still apply, and the ignored ones take effect again once regular polling begins.
| Ignored | Still applied |
|---|---|
| Show New Records | Search Properties |
| Show Updated Records |
Every record the sync returns was created on or after the Look-back Date, so all are reported as new and the sync produces no updated records. It matches on the creation date, so retrieving every record means setting Look-back Date earlier than the oldest record's creation date.
Batching
Batching is enabled per flow on these triggers. Once enabled, each changed record is dispatched as its own execution, or grouped by the configured batch size. Batch size and the number of batches dispatched concurrently can both be overridden per instance. Raising concurrency increases the request volume sent to HubSpot.
To turn it on, select the flow's trigger, open the Flow control tab, and switch on Enable Batching. Under Batch Size, keep Trigger default to use the size this trigger ships with, or choose Custom batch size to set a specific size. Batch Concurrency is optional; leave it blank for no batch-level limit.
Enabling batching changes the payload a downstream step receives. With batching off a step reads data.createdRecords and data.updatedRecords; with batching on those arrays do not exist and data is a single changeType/record item, or an array of them (see Returned Data with Batching). Any step reading the older shape must be updated before batching is turned on. Because batching is per flow, this affects only that flow, not the component or other flows using the same trigger.
Handing off to the schedule
The initial sync's upper bound is fixed when it begins, so records changed while running are not part of it. No field in the payload marks the handoff. Once the window is exhausted the trigger stores that bound as its position, and the next recurrence resumes from exactly there with every input applied, so the handoff is seamless: a record at the boundary is delivered exactly once.
Filtering with Search Properties
filters and filterGroups in Search Properties are combined with the trigger's own date window using AND, so they narrow the results the trigger would otherwise return. A filter on dealstage, for example, only ever returns deals in that stage. They apply to the initial sync exactly as they do to every later recurrence.
sorts in Search Properties is ignored by these triggers. They always sort by the object's last-modified property in ascending order, which is what lets them resume from their last position on the next recurrence.
Returned Data
Both triggers return the same structure with separate arrays for created and updated records. Both keys are always present, so an array is empty rather than missing when its Show New Records / Show Updated Records toggle is off.
A record created and later modified within the same window appears in both createdRecords and updatedRecords, so design downstream steps to be idempotent. The one exception is the initial sync, which reports each record exactly once.
Example Payload: batching disabled
{
"data": {
"createdRecords": [
{
"id": "12345678",
"properties": {
"createdate": "2024-11-10T10:30:00.000Z",
"lastmodifieddate": "2024-11-10T10:30:00.000Z"
/* additional properties */
}
}
],
"updatedRecords": [
{
"id": "87654321",
"properties": {
"createdate": "2024-11-08T09:00:00.000Z",
"lastmodifieddate": "2024-11-10T14:22:00.000Z"
/* additional properties */
}
}
]
}
}
Properties returned depend on the Search Properties configuration. If not specified, HubSpot returns default properties for the object type. Fields shown are representative. The full response object includes additional properties.
Returned Data with Batching
Batching replaces the two arrays above with records already tagged by how they changed, so a step never has to work out which array a record came from. changeType is either created or updated.
With Batch Size set to 1, each execution receives a single tagged record:
Example Payload: batching enabled, batch size 1
{
"data": {
"changeType": "created",
"record": {
"id": "12345678",
"properties": {
"createdate": "2024-11-10T10:30:00.000Z",
"lastmodifieddate": "2024-11-10T10:30:00.000Z"
/* additional properties */
}
}
}
}
With Batch Size greater than 1, each execution receives an array holding up to that many tagged records:
Example Payload: batching enabled, batch size greater than 1
{
"data": [
{
"changeType": "created",
"record": {
"id": "12345678",
"properties": {
"createdate": "2024-11-10T10:30:00.000Z",
"lastmodifieddate": "2024-11-10T10:30:00.000Z"
/* additional properties */
}
}
},
{
"changeType": "updated",
"record": {
"id": "87654321",
"properties": {
"createdate": "2024-11-08T09:00:00.000Z",
"lastmodifieddate": "2024-11-10T14:22:00.000Z"
/* additional properties */
}
}
}
]
}
The final batch of a recurrence may hold fewer records than the batch size. Created records are dispatched before updated ones, and a record created and later modified within the same window is dispatched twice, once with each changeType. The initial sync dispatches each record once.
Best Practices
- Polling Frequency: Use 5-15 minute intervals to balance timeliness with API limits
- Filter Results: Use Search Properties to request only needed properties and add filters
- Large Backlogs: Enable batching if a recurrence may need to catch up on more than 10,000 changed records, so it drains within one recurrence instead of several
Webhook
Receive and validate webhook requests from HubSpot for manually configured webhook subscriptions. | key: webhook
| Input | Notes | Example |
|---|---|---|
| Connection | The connection to use for authenticating requests to HubSpot. |
A HubSpot Webhook can be configured to send information to a flow's webhook URL under certain conditions (a contact is created, a deal is updated, a company property changes, etc.).
This trigger is designed for manually configured webhook subscriptions that are set up through the HubSpot Developer Console. When a webhook is configured externally in HubSpot, this trigger receives the webhook requests and validates them using signature verification.
For automated webhook subscription management that creates and removes webhook subscriptions automatically when an instance is deployed or deleted, use the Event Type Subscription trigger instead.
Configuration
To use this trigger:
- Create a public app in the HubSpot Developer Console
- Configure webhook settings in the app's Webhooks section:
- Set the Target URL to the flow's webhook URL
- Configure the event subscriptions (contact creation, deal updates, etc.)
- Adjust throttling settings if needed
- When configuring the trigger connection, provide the Client Secret from the HubSpot app for signature verification
A full list of available webhook events is available in the HubSpot Webhooks API documentation.
Example Payload for Webhook⤓
Data Sources
Object Selection
A list of HubSpot objects. | key: getObjectSelection | type: objectSelection
| Input | Notes | Example |
|---|---|---|
| HubSpot Connection | ||
| Include Custom Objects | false | |
| Objects to Select | The objects to include in the selection list. |
Select Company
Select a company from the list of companies. | key: selectCompany | type: picklist
| Input | Notes | Example |
|---|---|---|
| Connection | The connection to use for authenticating requests to HubSpot. |
Select Contact
Select a contact from the list of contacts. | key: selectContact | type: picklist
| Input | Notes | Example |
|---|---|---|
| Connection | The connection to use for authenticating requests to HubSpot. |
Select Custom Object
Select a custom object from the list of custom objects. | key: selectCustomObject | type: picklist
| Input | Notes | Example |
|---|---|---|
| Connection | The connection to use for authenticating requests to HubSpot. |
Select Deal
Select a deal from the list of deals. | key: selectDeal | type: picklist
| Input | Notes | Example |
|---|---|---|
| Connection | The connection to use for authenticating requests to HubSpot. |
Select Engagement
Select an engagement from the list of engagements. | key: selectEngagement | type: picklist
| Input | Notes | Example |
|---|---|---|
| Connection | The connection to use for authenticating requests to HubSpot. |
Select Import
Select an import from the list of active imports. | key: selectImport | type: picklist
| Input | Notes | Example |
|---|---|---|
| Connection | The connection to use for authenticating requests to HubSpot. |
Select Line Item
Select a line item from the list of line items. | key: selectLineItem | type: picklist
| Input | Notes | Example |
|---|---|---|
| Connection | The connection to use for authenticating requests to HubSpot. |
Select Product
Select a product from the list of products. | key: selectProduct | type: picklist
| Input | Notes | Example |
|---|---|---|
| Connection | The connection to use for authenticating requests to HubSpot. |
Select Property
Select a property from the list of properties. | key: selectProperty | type: picklist
| Input | Notes | Example |
|---|---|---|
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Object Type | The type of object. | deal |
Select Webhook
Select a webhook from the list of webhooks. | key: selectWebhook | type: picklist
| Input | Notes | Example |
|---|---|---|
| Connection | The connection to use for authenticating requests to HubSpot. |
Actions
Archive Association
Remove the associations between two provided objects | key: ArchiveAssociations
| Input | Notes | Example |
|---|---|---|
| Type Of Association | Provide a value for the type of association to perform. You can get the set of available values for this input by making a step using the "List Association Types" | 890435 |
| From ID | The unique identifier of the first object | 890435 |
| From Object Type | The type of the "from" object. Choose from "Contacts", "Companies", "Deals", "Tickets", "Calls", "Quotes", "Line_items", "Meetings", "Products", "Feedback_submissions", or a custom object defined in the account. | contact |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Timeout | The maximum time a client will await a request | 20000 |
| To ID | The unique identifier of the second object | 890435 |
| To Object Type | The type of the "to" object. Choose from "Contacts", "Companies", "Deals", "Tickets", "Calls", "Quotes", "Line_items", "Meetings", "Products", "Feedback_submissions", or a custom object defined in the account. | deal |
Example Payload for Archive Association⤓
Archive Batch Contacts
Archive a batch of contacts by ID | key: archiveBatchContacts
| Input | Notes | Example |
|---|---|---|
| Contact Ids | A list of contact IDs. | |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Archive Batch Contacts⤓
Archive Batch Engagement
Archives a batch of selected engagements by their IDs. | key: archiveBatchEngagement
| Input | Notes | Example |
|---|---|---|
| Engagement Ids | A list of engagement IDs. | |
| Engagement Object | Select an engagement object. | |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Archive Batch Engagement⤓
Cancel Import
Cancels an active import. | key: cancelImport
| Input | Notes | Example |
|---|---|---|
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Import ID | The unique identifier of the import. | 43203123 |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Cancel Import⤓
Create Association
Create an association between the objects identified in the step | key: createAssociations
| Input | Notes | Example |
|---|---|---|
| Type Of Association | Provide a value for the type of association to perform. You can get the set of available values for this input by making a step using the "List Association Types" | 890435 |
| From ID | The unique identifier of the first object | 890435 |
| From Object Type | The type of the "from" object. Choose from "Contacts", "Companies", "Deals", "Tickets", "Calls", "Quotes", "Line_items", "Meetings", "Products", "Feedback_submissions", or a custom object defined in the account. | contact |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Timeout | The maximum time a client will await a request | 20000 |
| To ID | The unique identifier of the second object | 890435 |
| To Object Type | The type of the "to" object. Choose from "Contacts", "Companies", "Deals", "Tickets", "Calls", "Quotes", "Line_items", "Meetings", "Products", "Feedback_submissions", or a custom object defined in the account. | deal |
Example Payload for Create Association⤓
Create Batch Contacts
Create a batch of contacts | key: createBatchContacts
| Input | Notes | Example |
|---|---|---|
| Batch Contacts | An array of contact objects to create. See HubSpot Contacts API for properties. | |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Create Batch Contacts⤓
Create Batch Engagement
Creates a batch of selected engagements. | key: createBatchEngagement
| Input | Notes | Example |
|---|---|---|
| Batch Engagements | An array of engagements. | |
| Engagement Object | Select an engagement object. | |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Create Batch Engagement⤓
Create Company
Create a new company | key: createCompany
| Input | Notes | Example |
|---|---|---|
| City | The city of the company | Atherton |
| Company Name | The name of the company | Acme Inc. |
| Phone | The phone number of the company. | (800) 555-1515 |
| Description | The description of the object. | This is an example description. |
| Domain | The domain of the company | www.example.com |
| Dynamic Fields | A field for dynamic inputs that can be configured at deploy time with the use of a key value config variable. | |
| Values | The names of the fields and their values to use when creating/updating a record. | name:My Example Account,phone:5551234567 |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Industry | The industry of the company | Software |
| State | The state of the company | California |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Create Company⤓
Create Contact
Create a new contact | key: CreateContact
| Input | Notes | Example |
|---|---|---|
| Company | The company of the contact. | Acme Inc. |
The email of the contact. Getting contacts by email performs a search function and will return a successful output even when no results are found. | john.doe@example.com | |
| First Name | The first name of the contact. | John |
| Last Name | The last name of the contact. | Doe |
| Dynamic Fields | A field for dynamic inputs that can be configured at deploy time with the use of a key value config variable. | |
| Values | The names of the fields and their values to use when creating/updating a record. | name:My Example Account,phone:5551234567 |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Phone | The phone number. | (877) 929-0687 |
| Timeout | The maximum time a client will await a request | 20000 |
| Website | The website URL. | www.example.com |
Example Payload for Create Contact⤓
Create Custom Object
Creates new custom object schema | key: createCustomObject
| Input | Notes | Example |
|---|---|---|
| Associated Objects | Associations defined for this object type. | my_object_property |
| Dynamic Fields | A field for dynamic inputs that can be configured at deploy time with the use of a key value config variable. | |
| Values | The names of the fields and their values to use when creating/updating a record. | name:My Example Account,phone:5551234567 |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Name | A unique name for this object. For internal use only. | my_object |
| Plural Label | The word for multiple objects. (There's no way to change this later.) | My object |
| Properties | Properties defined for this object type. | |
| Required Properties | The names of properties that should be required when creating an object of this type. | my_object_property |
| Searchable Properties | Names of properties that will be indexed for this object type in by HubSpot's product search. | my_object_property |
| Secondary Display Properties | The names of secondary properties for this object. These will be displayed as secondary on the HubSpot record page for this object type. | my_object_property |
| Singular Label | The word for one object. (There's no way to change this later.) | My object |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Create Custom Object⤓
Create Deal
Create a new deal | key: createDeal
| Input | Notes | Example |
|---|---|---|
| Amount | The amount value for the deal. | 34,000 |
| Close Date | The date when the sale will close. | 2019-12-07T16:50:06.678Z |
| Deal Name | The name of the deal. | My Example Deal |
| Deal Stage | The stage of the deal. Deal stages categorize deals and track their progress. | presentationscheduled |
| Deal Type | The type of deal. By default, a deal is categorized as either New Business or Existing Business. The picklist of values for this property is configurable through HubSpot. | newbusiness |
| Dynamic Fields | A field for dynamic inputs that can be configured at deploy time with the use of a key value config variable. | |
| Values | The names of the fields and their values to use when creating/updating a record. | name:My Example Account,phone:5551234567 |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Owner ID | The owner ID of the resource. | 910901 |
| Pipeline | The pipeline to interact with. | default |
| Priority | The priority of the deal. | |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Create Deal⤓
Create Engagement
Create a communication, email, call, meeting, note, postal mail or task engagement in HubSpot CRM. | key: createEngagement
| Input | Notes | Example |
|---|---|---|
| Associations | To create and associate a task with existing records. | |
| Engagement Object | Select an engagement object. | |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Properties | A properties object, attributes depend on the engagement type. For possible properties for each engagement type refer to HubSpot Engagements API. | |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Create Engagement⤓
Create Line Item
Create a new line item | key: createLineItem
| Input | Notes | Example |
|---|---|---|
| Dynamic Fields | A field for dynamic inputs that can be configured at deploy time with the use of a key value config variable. | |
| Values | The names of the fields and their values to use when creating/updating a record. | name:My Example Account,phone:5551234567 |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Name | The name of the line item. | My Line Item |
| Price | The price of the product. | 80400 |
| Product ID | The unique identifier of the product. | 804874 |
| Quantity | The quantity of product in the line item. | 80 |
| Recurring Billing Monthly Rate | The quantity of product in the line item. | |
| Recurring Billing Frequency | Provide the billing frequency of the product. Specify the integer of months in between a P and M in the following format: P{integer}M | P12M |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Create Line Item⤓
Create Product
Create a new product | key: createProduct
| Input | Notes | Example |
|---|---|---|
| Description | The description of the object. | This is an example description. |
| Dynamic Fields | A field for dynamic inputs that can be configured at deploy time with the use of a key value config variable. | |
| Values | The names of the fields and their values to use when creating/updating a record. | name:My Example Account,phone:5551234567 |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Price | The price of the product. | 80400 |
| Product Name | The name of the product. | myProduct |
| Recurring Billing Frequency | Provide the billing frequency of the product. Specify the integer of months in between a P and M in the following format: P{integer}M | P12M |
| Product SKU | The SKU of the product. | 804874 |
| Timeout | The maximum time a client will await a request | 20000 |
| Unit Cost | The unit cost of the product. | 800 |
Example Payload for Create Product⤓
Create Webhook
Create a webhook in HubSpot | key: createWebhook
| Input | Notes | Example |
|---|---|---|
| Active | When true, the subscription is active. When false, the subscription is paused. | false |
| Event Type | Type of event to listen for. Can be one of create, delete, deletedForPrivacy, or propertyChange. | |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Property Name | The internal name of the property to monitor for changes. Only applies when eventType is propertyChange. | |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Create Webhook⤓
Delete All Instanced Webhooks
Delete all webhooks created by this instance in HubSpot | key: deleteAllWebhooks
| Input | Notes | Example |
|---|---|---|
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Delete All Instanced Webhooks⤓
Delete Company
Delete an existing company by Id | key: deleteCompany
| Input | Notes | Example |
|---|---|---|
| Company ID | The unique identifier of the company. | 097829 |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Delete Company⤓
Delete Contact
Delete a contact by Id | key: deleteContact
| Input | Notes | Example |
|---|---|---|
| Contact ID | The unique identifier of the contact. | 9989223 |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Delete Contact⤓
Delete Custom Object
Removes custom object schema | key: deleteCustomObject
| Input | Notes | Example |
|---|---|---|
| Return Archived Results | When true, returns only results that have been archived. | false |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Object Type | The type of object. | deal |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Delete Custom Object⤓
Delete Deal
Delete a deal by its Id | key: deleteDeal
| Input | Notes | Example |
|---|---|---|
| Deal ID | The unique identifier of the deal. | 804874 |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Delete Deal⤓
Delete Engagement
Deletes an engagement by its ID. | key: deleteEngagement
| Input | Notes | Example |
|---|---|---|
| Engagement ID | The unique identifier of the engagement. A taskId, meetingId, etc. | 123456 |
| Engagement Object | Select an engagement object. | |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Delete Engagement⤓
Delete Line Item
Delete an existing line item by Id | key: deleteLineItem
| Input | Notes | Example |
|---|---|---|
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Line Item ID | The unique identifier of the line item. | 78349093 |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Delete Line Item⤓
Delete Product
Delete a product by Id | key: deleteProduct
| Input | Notes | Example |
|---|---|---|
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Product ID | The unique identifier of the product. | 804874 |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Delete Product⤓
Delete Webhook
Delete a webhook by ID in HubSpot | key: deleteWebhook
| Input | Notes | Example |
|---|---|---|
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Subscription ID | The ID of the subscription to delete | 123456789 |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Delete Webhook⤓
Export CRM Data
Begins exporting CRM data for the portal as specified in the request body. | key: exportCRMData
| Input | Notes | Example |
|---|---|---|
| Associated Object Type | The name or ID of an associated object to include in the export. When an associated object is included, the export contains the associated record IDs of that object and the records' primary display property value. | name |
| Export Name | The name of the export. | My Export |
| Format | The format of the export file. | CSV |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Language | The language of the export file. | |
| List Id (Only and required for PublicExportListRequest) | The ILS List ID of the list to export. | 123456 |
| Object Properties | A list of the properties to include in the export. | |
| Object Type | The name or ID of the object you're exporting. For standard objects, you can use the object's name (e.g., CONTACT), but for custom objects, you must use the objectTypeId value, you can find this value in the response of the List Custom Objects action. | deal |
| Public CRM Search Request (Only for PublicExportViewRequest) | Indicates which data should be exported based on certain property values and search queries. | |
| Schema Type | Schema type for the export. | VIEW |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Export CRM Data⤓
Get Batch Contacts
Read a batch of contacts by internal ID, or unique property values. | key: getBatchContacts
| Input | Notes | Example |
|---|---|---|
| Return Archived Results | When true, returns only results that have been archived. | false |
| Contact Ids | A list of contact IDs. | |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| ID Property | An ID property to search by | |
| Property | A list of properties to read by. | |
| Properties With History | A list of properties to read by. | |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Get Batch Contacts⤓
Get Company
Retrieve the information or metadata of a company by Id, domain, or name | key: getCompany
| Input | Notes | Example |
|---|---|---|
| Additional Properties To Return | For each item, provide a property to return in the response. | phone |
| Return Archived Results | When true, returns only results that have been archived. | false |
| Associations List | For each item, provide an object type to retrieve the associated Ids for. | Contacts |
| Company ID | The unique identifier of the company. | 097829 |
| Company Name | The name of the company | Acme Inc. |
| Domain | The domain of the company | www.example.com |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Timeout | The maximum time a client will await a request | 20000 |
Get Contact
Get the information and metadata of a contact by Id or Email | key: getContact
| Input | Notes | Example |
|---|---|---|
| Additional Properties To Return | For each item, provide a property to return in the response. | phone |
| Return Archived Results | When true, returns only results that have been archived. | false |
| Associations List | For each item, provide an object type to retrieve the associated Ids for. | Contacts |
The email of the contact. Getting contacts by email performs a search function and will return a successful output even when no results are found. | john.doe@example.com | |
| Contact ID | The unique identifier of the contact. | 9989223 |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Timeout | The maximum time a client will await a request | 20000 |
Get Current User
Return information about the current session's user. | key: getCurrentUser
| Input | Notes | Example |
|---|---|---|
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Get Current User⤓
Get Custom Object
Retrieves a specific custom object | key: getCustomObject
| Input | Notes | Example |
|---|---|---|
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Object Type | The type of object. | deal |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Get Custom Object⤓
Get Deal
Retrieve information and metadata about a deal by its Id or name | key: getDealById
| Input | Notes | Example |
|---|---|---|
| Additional Properties To Return | For each item, provide a property to return in the response. | phone |
| Return Archived Results | When true, returns only results that have been archived. | false |
| Associations List | For each item, provide an object type to retrieve the associated Ids for. | Contacts |
| Deal ID | The unique identifier of the deal. | 804874 |
| Deal Name | The name of the deal. | My Example Deal |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Timeout | The maximum time a client will await a request | 20000 |
Get Engagement
Get a communication, email, call, meeting, note, postal mail or task engagement object from HubSpot CRM. | key: getEngagement
| Input | Notes | Example |
|---|---|---|
| Return Archived Results | When true, returns only results that have been archived. | false |
| Associations | List of object types to retrieve associated IDs for. If the specified association do not exist, it will be ignored. | contact |
| Engagement ID | The unique identifier of the engagement. A taskId, meetingId, etc. | 123456 |
| Engagement Object | Select an engagement object. | |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| ID Property | The name of a property whose values are unique for this object type. | |
| Properties To Return | Properties to be returned in the response. If the specified property is not present on the requested object, it will be ignored. | |
| Property With History To Return | A property to be returned along with it's history of previous values. If the specified property is not present on the requested object, it will be ignored. | |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Get Engagement⤓
Get Import
Get a complete summary of an import record, including any updates. | key: getAnImport
| Input | Notes | Example |
|---|---|---|
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Import ID | The unique identifier of the import. | 43203123 |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Get Import⤓
Get Line Item
Retrieve the information and metadata of a line item by Id | key: getLineItem
| Input | Notes | Example |
|---|---|---|
| Additional Properties To Return | For each item, provide a property to return in the response. | phone |
| Return Archived Results | When true, returns only results that have been archived. | false |
| Associations List | For each item, provide an object type to retrieve the associated Ids for. | Contacts |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Line Item ID | The unique identifier of the line item. | 78349093 |
| Name | The name of the line item. | My Line Item |
| Timeout | The maximum time a client will await a request | 20000 |
Get Product
Retrieve the information and metadata of a product by Id or name | key: getProduct
| Input | Notes | Example |
|---|---|---|
| Additional Properties To Return | For each item, provide a property to return in the response. | phone |
| Return Archived Results | When true, returns only results that have been archived. | false |
| Associations List | For each item, provide an object type to retrieve the associated Ids for. | Contacts |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Product ID | The unique identifier of the product. | 804874 |
| Product Name | The name of the product. | myProduct |
| Timeout | The maximum time a client will await a request | 20000 |
Import CRM Data
Import CRM records and activities into your HubSpot account, such as contacts, companies, and notes. | key: importCRMData
| Input | Notes | Example |
|---|---|---|
| Create Contact List From Import | When true, creates a static list of the contacts from the import. | false |
| Data CSV File | The CSV file to import, this should be binary data from a previous step. Key name should be the file name and the value should be the binary data. | key: 'contact-import-file.csv', value: 'binary data' |
| Date Format | The format for dates included in the file. Defaults to MONTH_DAY_YEAR; DAY_MONTH_YEAR and YEAR_MONTH_DAY are also accepted. | YEAR_MONTH_DAY |
| Files | An array containing the import file information. For more information, see HubSpot CRM Imports API. | |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Import Operations | Indicates whether the import should create and update, only create, or only update records for a certain object or activity. Include the objectTypeId for the object/activity and whether to UPSERT (create and update), CREATE, or UPDATE records. For objectTypeId's, check HubSpot CRM Object Type IDs. | |
| Marketable Contact Import | When true, the contacts being imported are marketable. | true |
| Name | The name of the import. | Contact Company import |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Import CRM Data⤓
List Active Imports
Returns a paged list of active imports for this account. | key: listActiveImports
| Input | Notes | Example |
|---|---|---|
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for List Active Imports⤓
List Association Types
Retrieve a list of all association types available between two objects | key: listAssociationTypes
| Input | Notes | Example |
|---|---|---|
| From Object Type | The type of the "from" object. Choose from "Contacts", "Companies", "Deals", "Tickets", "Calls", "Quotes", "Line_items", "Meetings", "Products", "Feedback_submissions", or a custom object defined in the account. | contact |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Timeout | The maximum time a client will await a request | 20000 |
| To Object Type | The type of the "to" object. Choose from "Contacts", "Companies", "Deals", "Tickets", "Calls", "Quotes", "Line_items", "Meetings", "Products", "Feedback_submissions", or a custom object defined in the account. | deal |
Example Payload for List Association Types⤓
List Companies
Retrieve a list of all companies | key: listCompanies
| Input | Notes | Example |
|---|---|---|
| Additional Properties To Return | For each item, provide a property to return in the response. | phone |
| Start After | Specify the pagination token that's returned by a previous request to retrieve the next page of results | lslTXFcbLQKkb0vP9Kgh5hy0Y0OnC7Z9ZPHPwPmMnxSk3eiDRMkct7D8E |
| Return Archived Results | When true, returns only results that have been archived. | false |
| Associations List | For each item, provide an object type to retrieve the associated Ids for. | Contacts |
| Fetch All | When true, automatically fetches all pages of results using pagination. | false |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Limit | The maximum number of items that will be returned by the search. | 100 |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for List Companies⤓
List Contacts
Retrieve a list of all contacts | key: listContacts
| Input | Notes | Example |
|---|---|---|
| Additional Properties To Return | For each item, provide a property to return in the response. | phone |
| Start After | Specify the pagination token that's returned by a previous request to retrieve the next page of results | lslTXFcbLQKkb0vP9Kgh5hy0Y0OnC7Z9ZPHPwPmMnxSk3eiDRMkct7D8E |
| Return Archived Results | When true, returns only results that have been archived. | false |
| Associations List | For each item, provide an object type to retrieve the associated Ids for. | Contacts |
| Fetch All | When true, automatically fetches all pages of results using pagination. | false |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Limit | The maximum number of items that will be returned by the search. | 100 |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for List Contacts⤓
List Custom Objects
Retrieve all custom objects | key: listCustomObjects
| Input | Notes | Example |
|---|---|---|
| Additional Properties To Return | For each item, provide a property to return in the response. | phone |
| Return Archived Results | When true, returns only results that have been archived. | false |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for List Custom Objects⤓
List Deals
Retrieve a list of all deals | key: listDeals
| Input | Notes | Example |
|---|---|---|
| Additional Properties To Return | For each item, provide a property to return in the response. | phone |
| Start After | Specify the pagination token that's returned by a previous request to retrieve the next page of results | lslTXFcbLQKkb0vP9Kgh5hy0Y0OnC7Z9ZPHPwPmMnxSk3eiDRMkct7D8E |
| Return Archived Results | When true, returns only results that have been archived. | false |
| Associations List | For each item, provide an object type to retrieve the associated Ids for. | Contacts |
| Fetch All | When true, automatically fetches all pages of results using pagination. | false |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Limit | The maximum number of items that will be returned by the search. | 100 |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for List Deals⤓
List Engagements
List engagement objects from HubSpot CRM, including communications, emails, calls, meetings, notes, postal mail, and tasks. | key: listEngagements
| Input | Notes | Example |
|---|---|---|
| Engagement Object | Select an engagement object. | |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Properties To Return | Properties to be returned in the response. If the specified property is not present on the requested object, it will be ignored. | |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for List Engagements⤓
List Line Items
Retrieve a list of all line items | key: listLineItems
| Input | Notes | Example |
|---|---|---|
| Additional Properties To Return | For each item, provide a property to return in the response. | phone |
| Start After | Specify the pagination token that's returned by a previous request to retrieve the next page of results | lslTXFcbLQKkb0vP9Kgh5hy0Y0OnC7Z9ZPHPwPmMnxSk3eiDRMkct7D8E |
| Return Archived Results | When true, returns only results that have been archived. | false |
| Associations List | For each item, provide an object type to retrieve the associated Ids for. | Contacts |
| Fetch All | When true, automatically fetches all pages of results using pagination. | false |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Limit | The maximum number of items that will be returned by the search. | 100 |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for List Line Items⤓
List Products
Retrieve a list of all products | key: listProducts
| Input | Notes | Example |
|---|---|---|
| Additional Properties To Return | For each item, provide a property to return in the response. | phone |
| Start After | Specify the pagination token that's returned by a previous request to retrieve the next page of results | lslTXFcbLQKkb0vP9Kgh5hy0Y0OnC7Z9ZPHPwPmMnxSk3eiDRMkct7D8E |
| Return Archived Results | When true, returns only results that have been archived. | false |
| Associations List | For each item, provide an object type to retrieve the associated Ids for. | Contacts |
| Fetch All | When true, automatically fetches all pages of results using pagination. | false |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Limit | The maximum number of items that will be returned by the search. | 100 |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for List Products⤓
List Properties
Retrieve a list of all configured object properties. | key: listProperties
| Input | Notes | Example |
|---|---|---|
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Object Type | The type of object. | deal |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for List Properties⤓
List Webhooks
Retrieve a list of all webhook subscriptions for the HubSpot app. | key: listWebhooks
| Input | Notes | Example |
|---|---|---|
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for List Webhooks⤓
Raw Request
Send raw HTTP request to HubSpot | key: rawRequest
| Input | Notes | Example |
|---|---|---|
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Data | The HTTP body payload to send to the URL. | {"exampleKey": "Example Data"} |
| File Data | File Data to be sent as a multipart form upload. | [{key: "example.txt", value: "My File Contents"}] |
| File Data File Names | File names to apply to the file data inputs. Keys must match the file data keys above. | |
| Form Data | The Form Data to be sent as a multipart form upload. | [{"key": "Example Key", "value": new Buffer("Hello World")}] |
| Header | A list of headers to send with the request. | User-Agent: curl/7.64.1 |
| Max Retry Count | The maximum number of retries to attempt. Specify 0 for no retries. | 0 |
| Method | The HTTP method to use. | |
| Query Parameter | A list of query parameters to send with the request. This is the portion at the end of the URL similar to ?key1=value1&key2=value2. | |
| Response Type | The type of data you expect in the response. You can request json, text, or binary data. | json |
| Retry On All Errors | If true, retries on all erroneous responses regardless of type. This is helpful when retrying after HTTP 429 or other 3xx or 4xx errors. Otherwise, only retries on HTTP 5xx and network errors. | false |
| Retry Delay (ms) | The delay in milliseconds between retries. This is used when 'Use Exponential Backoff' is disabled. | 0 |
| Timeout | The maximum time that a client will await a response to its request | 2000 |
| URL | Input the path only (/crm/v3/objects/deals). The base URL is already included ( | /crm/v3/objects/deals |
| Use Exponential Backoff | Specifies whether to use a pre-defined exponential backoff strategy for retries. When enabled, 'Retry Delay (ms)' is ignored. | false |
This action allows you to make requests to any HubSpot API endpoint. This is especially helpful for search endpoints, where objects may have custom properties that are unique to your customers.
The data that you send to HubSpot can be dynamically generated in a code step.
Then, you can pass the code step's results as an input reference to the Data input.
For example, if you are using HubSpot's search API to search for HubSpot "deals" that have the name "Sample Deal" and are valued less than 100 dollars, you can create a code step that reads like this:
module.exports = async ({ logger, configVars }, stepResults) => {
const data = {
filterGroups: [
{
filters: [
{
propertyName: "dealname",
operator: "EQ",
value: "Sample Deal",
},
{
propertyName: "amount",
operator: "LT",
value: "100",
},
],
},
],
properties: [
"hs_object_id",
"createdate",
"hubspot_owner_id",
"dealstage",
"amount",
"dealname",
"closedate",
"days_to_close",
"hs_analytics_source",
"hs_analytics_source_data_1",
"hs_analytics_source_data_2",
"hs_campaign",
"hs_closed_amount",
"hs_lastmodifieddate",
"dealtype",
"description",
],
};
return { data };
};
On the raw request step, enter /crm/v3/objects/deals/search as the URL input, POST as the Method, and reference the code step's results as the Data input.
Read Association
Get the Ids of the objects associated with those specified in the step | key: readAssociations
| Input | Notes | Example |
|---|---|---|
| From ID | The unique identifier of the first object | 890435 |
| From Object Type | The type of the "from" object. Choose from "Contacts", "Companies", "Deals", "Tickets", "Calls", "Quotes", "Line_items", "Meetings", "Products", "Feedback_submissions", or a custom object defined in the account. | contact |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Timeout | The maximum time a client will await a request | 20000 |
| To Object Type | The type of the "to" object. Choose from "Contacts", "Companies", "Deals", "Tickets", "Calls", "Quotes", "Line_items", "Meetings", "Products", "Feedback_submissions", or a custom object defined in the account. | deal |
Example Payload for Read Association⤓
Search Deals
Returns a list of deals that match the given properties | key: searchDeals
| Input | Notes | Example |
|---|---|---|
| Start After | Specify the pagination token that's returned by a previous request to retrieve the next page of results | lslTXFcbLQKkb0vP9Kgh5hy0Y0OnC7Z9ZPHPwPmMnxSk3eiDRMkct7D8E |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Limit | The maximum number of items that will be returned by the search. | 100 |
| Operator | The operator used to search on. | |
| Property Name | The property to search on. Ensure the spelling and capitalization match the property exactly. | dealname |
| Timeout | The maximum time a client will await a request | 20000 |
| Value | The value corresponding to the given property name. | myDeal |
Example Payload for Search Deals⤓
Search Records
Filter, sort, and search objects, records, and engagements across the CRM. | key: search
| Input | Notes | Example |
|---|---|---|
| Fetch All | Turn this ON to get more than 200 results. Note that this can be a large amount of data. | false |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Object Type | The type of custom object to search for. Required for the Custom objects search endpoint. | deal |
| Search Endpoint | The endpoint to search for objects or engagements. For Custom objects don't forget to fill the Object Type input. | |
| Search Limit | The number of records to return. The maximum value is 200. | 10 |
| Search Properties | Include properties such as filters and sorts, or specify the properties to be returned. If empty, only the default properties will be returned. On the polling triggers, | |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Search Records⤓
Update Batch Contacts
Update a batch of contacts | key: updateBatchContacts
| Input | Notes | Example |
|---|---|---|
| Batch Contacts | An array of contact objects to update. See HubSpot Contacts API for properties. | |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Update Batch Contacts⤓
Update Batch Engagement
Updates a batch of selected engagements. | key: updateBatchEngagement
| Input | Notes | Example |
|---|---|---|
| Batch Engagements | An array of engagement objects to update. Each engagement object must contain the required properties for the specified engagement type. See HubSpot Engagements API for more information. | |
| Engagement Object | Select an engagement object. | |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Update Batch Engagement⤓
Update Company
Update the information and metadata of an existing company | key: updateCompany
| Input | Notes | Example |
|---|---|---|
| City | The city of the company | Atherton |
| Company ID | The unique identifier of the company. | 097829 |
| Phone | The phone number of the company. | (800) 555-1515 |
| Description | The description of the object. | This is an example description. |
| Dynamic Fields | A field for dynamic inputs that can be configured at deploy time with the use of a key value config variable. | |
| Values | The names of the fields and their values to use when creating/updating a record. | name:My Example Account,phone:5551234567 |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Industry | The industry of the company | Software |
| State | The state of the company | California |
| Timeout | The maximum time a client will await a request | 20000 |
| Company Name | The name of the company | Acme Inc. |
| Domain | The domain of the company | www.example.com |
Example Payload for Update Company⤓
Update Contact
Update the information and metadata of an existing contact | key: updateContact
| Input | Notes | Example |
|---|---|---|
| Contact ID | The unique identifier of the contact. | 9989223 |
| Company | The company of the contact | Acme Inc. |
The email of the contact | john.doe@example.com | |
| First Name | The first name of the contact | John |
| Last Name | The last name of the contact | Doe |
| Dynamic Fields | A field for dynamic inputs that can be configured at deploy time with the use of a key value config variable. | |
| Values | The names of the fields and their values to use when creating/updating a record. | name:My Example Account,phone:5551234567 |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Timeout | The maximum time a client will await a request | 20000 |
| Phone | The phone number of the contact | (877) 929-0687 |
| Website | The website of the contact | www.example.com |
Example Payload for Update Contact⤓
Update Custom Object
Updates an object's schema | key: updateCustomObject
| Input | Notes | Example |
|---|---|---|
| Dynamic Fields | A field for dynamic inputs that can be configured at deploy time with the use of a key value config variable. | |
| Values | The names of the fields and their values to use when creating/updating a record. | name:My Example Account,phone:5551234567 |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Fully qualified name or object type ID of your schema. | The type of object. | deal |
| Plural Label | The word for multiple objects. (There's no way to change this later.) | My object |
| Required Properties | The names of properties that should be required when creating an object of this type. | my_object_property |
| Searchable Properties | Names of properties that will be indexed for this object type in by HubSpot's product search. | my_object_property |
| Singular Label | The word for one object. (There's no way to change this later.) | My object |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Update Custom Object⤓
Update Deal
Update the information or metadata of an existing deal | key: updateDeal
| Input | Notes | Example |
|---|---|---|
| Amount | The amount value for the deal. | 34,000 |
| Close Date | The date when the sale will close. | 2019-12-07T16:50:06.678Z |
| Deal ID | The unique identifier of the deal. | 804874 |
| Deal Type | The type of deal. By default, a deal is categorized as either New Business or Existing Business. The picklist of values for this property is configurable through HubSpot. | newbusiness |
| Dynamic Fields | A field for dynamic inputs that can be configured at deploy time with the use of a key value config variable. | |
| Values | The names of the fields and their values to use when creating/updating a record. | name:My Example Account,phone:5551234567 |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Owner ID | The owner ID of the resource. | 910901 |
| Priority | The priority of the deal. | |
| Timeout | The maximum time a client will await a request | 20000 |
| Deal Name | The name of the deal. | My Example Deal |
| Deal Stage | The stage of the deal. Deal stages categorize deals and track their progress. | presentationscheduled |
| Pipeline | The pipeline to interact with. | default |
Example Payload for Update Deal⤓
Update Engagement
Update a communication, email, call, meeting, note, postal mail or task engagement in HubSpot CRM. | key: updateEngagement
| Input | Notes | Example |
|---|---|---|
| Engagement ID | The unique identifier of the engagement. A taskId, meetingId, etc. | 123456 |
| Engagement Object | Select an engagement object. | |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| ID Property | The name of a property whose values are unique for this object type. | |
| Properties | A properties object to update, attributes depend on the engagement type. For possible properties for each engagement type refer to HubSpot Engagements API. | |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Update Engagement⤓
Update Line Item
Update an the information and metadata of an existing line item | key: updateLineItem
| Input | Notes | Example |
|---|---|---|
| Dynamic Fields | A field for dynamic inputs that can be configured at deploy time with the use of a key value config variable. | |
| Values | The names of the fields and their values to use when creating/updating a record. | name:My Example Account,phone:5551234567 |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Line Item ID | The unique identifier of the line item. | 78349093 |
| Quantity | The quantity of product in the line item. | 80 |
| Recurring Billing Monthly Rate | The quantity of product in the line item. | |
| Recurring Billing Frequency | Provide the billing frequency of the product. Specify the integer of months in between a P and M in the following format: P{integer}M | P12M |
| Timeout | The maximum time a client will await a request | 20000 |
| Name | The name of the line item. | My line Item |
| Price | The price of the product. | 80400 |
| Product ID | The unique identifier of the product. | 804874 |
Example Payload for Update Line Item⤓
Update Product
Update the information and metadata of an existing product | key: updateProduct
| Input | Notes | Example |
|---|---|---|
| Description | The description of the object. | This is an example description. |
| Dynamic Fields | A field for dynamic inputs that can be configured at deploy time with the use of a key value config variable. | |
| Values | The names of the fields and their values to use when creating/updating a record. | name:My Example Account,phone:5551234567 |
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Product ID | The unique identifier of the product. | 804874 |
| Recurring Billing Frequency | Provide the billing frequency of the product. Specify the integer of months in between a P and M in the following format: P{integer}M | P12M |
| Timeout | The maximum time a client will await a request | 20000 |
| Unit Cost | The unit cost of the product. | 800 |
| Price | The price of the product. | 80400 |
| Product Name | The name of the product. | myProduct |
| Product SKU | The SKU of the product. | 804874 |
Example Payload for Update Product⤓
Validate Connection
Returns a boolean value that specifies whether the provided Connection is valid | key: validateConnection
| Input | Notes | Example |
|---|---|---|
| Connection | The connection to use for authenticating requests to HubSpot. | |
| Timeout | The maximum time a client will await a request | 20000 |
Example Payload for Validate Connection⤓
Changelog
2026-08-19
Reworked the New and Updated Records and New and Updated Custom Records triggers for large data volumes and correct filtering:
- Added an optional Look-back Date input across all polling triggers for performing an initial sync of records. The initial sync backfills every record created on or after the specified date, seeding each once and ignoring the field and visibility filters; later recurrences are unaffected. Leave it empty to start from the first recurrence with no backfill
- Added opt-in batching across all polling triggers, dispatching each changed record individually or in configured batches so a large backlog drains within one recurrence; enabling it changes the shape a downstream step receives
- Added support for object types holding more than the 10,000 records a single HubSpot search returns, draining the remainder on later recurrences. A larger result set previously failed
- Updated both triggers to always return both
createdRecordsandupdatedRecords. A disabled Show New Records or Show Updated Records now yields an empty array where the key was previously absent - Updated Search Properties
filtersandfilterGroupsto restrict results instead of widening them. They were previously OR-combined with the trigger's date window, so configured filters returned matching records regardless of date - Updated Search Properties
sortsto be ignored by these triggers; they now sort ascending by the object's creation property during the initial sync and its last-modified property on later recurrences, so a recurrence can resume where it left off - Fixed the New and Updated Custom Records trigger retrieving every record of the custom object type on each recurrence instead of only the changed ones. It now filters and sorts on
hs_lastmodifieddate, so the custom object type must expose that property
2026-04-30
Updated spectral version
2026-04-06
Updated Create Product action to make Product SKU and Price inputs optional, aligning with the HubSpot API which only requires the product name
2026-03-10
Enhanced authentication security and fixed an association action bug:
- Upgraded OAuth 2.0 token endpoint from v1 to v3 for improved security. The v3 endpoints send authentication parameters in the request body rather than query strings, preventing sensitive credentials from appearing in server logs.
- Fixed Read Association action to use the correct input parameter
2026-02-26
Added inline data sources for imports and custom objects to enhance data selection capabilities
2025-11-18
Updated New and Updated Records to use record type specific date properties to ensure full compatibility with search endpoint record types.
2025-11-17
Enhanced New and Updated Records and New and Updated Custom Records triggers filtering capabilities. Ensuring accurate detection of new and updated records while preventing potential duplicate processing.
2025-10-17
Enhanced webhook lifecycle management with improved event type subscription handling and automated cleanup.
2025-09-18
Improved OAuth trigger documentation and reorganized connection documentation for better clarity
2025-05-14
Added inline data sources for companies, contacts, deals, engagements, line items, products, properties, and webhooks to enhance data selection capabilities