HubSpot - Update Object
↩ Part of the HubSpot integration.
Description
Section titled “Description”Updates an existing HubSpot record (PATCH /crm/v3/objects/{object_type}/{id}).
The call is a partial update: only the properties you send are modified, everything else is left untouched. That makes it safe to run on every execution — moving a deal to the next stage, stamping the last order date on a contact, or closing a ticket.
Configuration
Section titled “Configuration”| Field | Type | Required | Description |
|---|---|---|---|
credentials_id | credentials | Yes | HubSpot credential |
object_type | text | Yes | Object type: contacts, companies, deals, tickets. Defaults to contacts if left empty |
object_id | text | Yes | Id of the object to update |
properties | json | Yes | Properties to update, e.g. {"firstname":"Ana"} |
object_type, object_id and properties accept dynamic variables; the properties string is resolved before being parsed as JSON.
Credentials
Section titled “Credentials”This module requires a HubSpot credential:
| Field | Description |
|---|---|
token | Private App token (starts with pat-), from HubSpot → Settings → Integrations → Private Apps |
Output
Section titled “Output”data is the updated object as HubSpot returns it:
{ "id": "701", "properties": { "firstname": "Ana", "lifecyclestage": "customer", "lastmodifieddate": "2026-08-05T12:05:00.000Z", "hs_object_id": "701" }, "createdAt": "2026-08-05T10:00:00.000Z", "updatedAt": "2026-08-05T12:05:00.000Z", "archived": false}Along with it, _meta:
{ "moduleVersion": "1.0.0", "success": true, "id": "701", "objectType": "contacts", "totalMs": 210 }Usage Example
Section titled “Usage Example”Promote a contact to customer
Section titled “Promote a contact to customer”{ "credentials_id": "hubspot_marketing", "object_type": "contacts", "object_id": "{{data.contactId}}", "properties": { "lifecyclestage": "customer", "phone": "{{data.phone}}" }}Move a deal to the next stage
Section titled “Move a deal to the next stage”{ "credentials_id": "hubspot_sales", "object_type": "deals", "object_id": "{{data.dealId}}", "properties": { "dealstage": "contractsent", "amount": "{{data.total}}" }}Close a ticket
Section titled “Close a ticket”{ "credentials_id": "hubspot_service", "object_type": "tickets", "object_id": "{{data.ticketId}}", "properties": { "hs_pipeline_stage": "4" }}- Only the properties you send are changed; omitted properties keep their current value.
- To empty a property, send it as an empty string (
""). Sendingnullis rejected by HubSpot for most property types. - Read-only properties such as
createdateorhs_object_idcannot be written and return a400. - A
404means the id does not exist for thatobject_type. Neither400nor404is retried — fix the data and run again. - If
propertiesis empty or does not parse as JSON, the node stops before calling HubSpot.
Related Nodes
Section titled “Related Nodes”- HubSpot: Get object — read the current values before deciding what to change.
- HubSpot: Create object — create the record when it does not exist yet.
- HubSpot: Search objects — resolve the id from an email or another property.