HubSpot
Overview
Section titled “Overview”The HubSpot nodes connect your workflows to HubSpot through its CRM API v3. Use them to automate your CRM: create a contact when a lead comes in, update a deal as the pipeline advances, search contacts by email, or list companies to process them.
There are six nodes, one per operation:
| Node | Operation | HTTP method |
|---|---|---|
HubSpot: Create object (hubspotCreateObject) | Create an object | POST /crm/v3/objects/{object_type} |
HubSpot: Get object (hubspotGetObject) | Read an object by its id | GET /crm/v3/objects/{object_type}/{id} |
HubSpot: Update object (hubspotUpdateObject) | Update properties | PATCH /crm/v3/objects/{object_type}/{id} |
HubSpot: Delete object (hubspotDeleteObject) | Archive an object | DELETE /crm/v3/objects/{object_type}/{id} |
HubSpot: Search objects (hubspotSearchObjects) | Search with filters | POST /crm/v3/objects/{object_type}/search |
HubSpot: List objects (hubspotListObjects) | List objects | GET /crm/v3/objects/{object_type} |
Credential
Section titled “Credential”The nodes use a HubSpot credential. Create it in Credentials → Add → HubSpot with this field:
| Field | Description |
|---|---|
| Private App token | The Private App token, from HubSpot → Settings → Integrations → Private Apps (starts with pat-). Never shown in logs. |
HubSpot authentication sends the token in the Authorization header with the Bearer prefix. You can verify the credential with the Test button, which calls GET /crm/v3/objects/contacts?limit=1.
Important: properties and object types
Section titled “Important: properties and object types”- Properties (
properties) are a flat map, not nested. For example:{"email":"a@b.com","firstname":"Ana"}. Property names are HubSpot’s internal names (firstname,lastname,email,phone,dealname,amount,subject…). - The generic CRM object types (
object_type) are:contacts,companies,dealsandtickets. - Delete archives:
hubspotDeleteObjectdoes not permanently remove — it archives the object (recoverable from HubSpot). The node returns{ "archived": true, "id": ... }. - Objects are referenced by id. You can also use a unique property id (e.g. a contact’s email) depending on your HubSpot configuration.
HubSpot: Create object (hubspotCreateObject)
Section titled “HubSpot: Create object (hubspotCreateObject)”| Parameter | Type | Required | Description |
|---|---|---|---|
| credentials_id | credential | Yes | HubSpot credential |
| object_type | text | Yes | Object type (contacts, companies, deals, tickets) |
| properties | JSON | Yes | Flat map of properties, e.g. {"email":"a@b.com"} |
Output: the created object, including its id and properties.
HubSpot: Get object (hubspotGetObject)
Section titled “HubSpot: Get object (hubspotGetObject)”| Parameter | Type | Required | Description |
|---|---|---|---|
| credentials_id | credential | Yes | HubSpot credential |
| object_type | text | Yes | Object type |
| object_id | text | Yes | Object id |
| properties | text | No | Properties to return, comma-separated (e.g. email,firstname) |
HubSpot: Update object (hubspotUpdateObject)
Section titled “HubSpot: Update object (hubspotUpdateObject)”| Parameter | Type | Required | Description |
|---|---|---|---|
| credentials_id | credential | Yes | HubSpot credential |
| object_type | text | Yes | Object type |
| object_id | text | Yes | Object id |
| properties | JSON | Yes | Properties to update, e.g. {"firstname":"Ana"} |
HubSpot: Delete object (hubspotDeleteObject)
Section titled “HubSpot: Delete object (hubspotDeleteObject)”| Parameter | Type | Required | Description |
|---|---|---|---|
| credentials_id | credential | Yes | HubSpot credential |
| object_type | text | Yes | Object type |
| object_id | text | Yes | id of the object to archive |
HubSpot: Search objects (hubspotSearchObjects)
Section titled “HubSpot: Search objects (hubspotSearchObjects)”| Parameter | Type | Required | Description |
|---|---|---|---|
| credentials_id | credential | Yes | HubSpot credential |
| object_type | text | Yes | Object type |
| search | JSON | Yes | Search body: filterGroups, query, sorts, properties, limit |
Output: the results array with the matching objects.
HubSpot: List objects (hubspotListObjects)
Section titled “HubSpot: List objects (hubspotListObjects)”| Parameter | Type | Required | Description |
|---|---|---|---|
| credentials_id | credential | Yes | HubSpot credential |
| object_type | text | Yes | Object type |
| limit | number | No | Results per page (max 100) |
| after | text | No | Pagination cursor (paging.next.after) |
| properties | text | No | Properties to return, comma-separated |
Output: the results array of objects.
Example
Section titled “Example”Create a contact from a form:
- Node: HubSpot: Create object
- object_type:
contacts - properties:
{"email":"{{data.email}}","firstname":"{{data.name}}","phone":"{{data.phone}}"}
Output:
{ "id": "701", "properties": { "email": "ana@acme.com", "firstname": "Ana", "createdate": "2026-08-05T10:00:00.000Z" }, "createdAt": "2026-08-05T10:00:00.000Z", "archived": false}Search contacts by email:
- Node: HubSpot: Search objects
- object_type:
contacts - search:
{"filterGroups":[{"filters":[{"propertyName":"email","operator":"EQ","value":"ana@acme.com"}]}],"properties":["email","firstname"],"limit":10}
Error handling
Section titled “Error handling”Each node classifies errors so the engine knows whether a retry makes sense:
| Situation | Retryable | What to do |
|---|---|---|
| Validation (400/409) | No | HubSpot returns the message and category (e.g. unknown property, or duplicate contact). Fix the data. |
| Not found (404) | No | The object or type doesn’t exist. Check the id and object_type. |
| Authentication (401/403) | No | Invalid token or missing scopes in the Private App. Check the credential. |
| Server (500) | Yes | Temporary HubSpot error; retried automatically. |
| Rate limit (429) | Yes | HubSpot’s Retry-After is honored and retried. |
| Network / Timeout | Yes | Transient issue; retried automatically. |
See also
Section titled “See also”- Jira (Atlassian), Asana, Trello, Notion and ClickUp — other work-management and CRM integrations.
- Retry queue (DLQ) — how failed executions are retried.
- HTTP node — for HubSpot endpoints not covered by these nodes (associations, pipelines, properties…).