Search all guides

Reference · Tools

HubSpot trigger

Triggers a workflow when events occur in HubSpot CRM, such as contact creation, deal property changes, or ticket deletions.

Webhook trigger Sales v1

The HubSpot Trigger starts a workflow when CRM events occur — contact creation, deal property changes and the rest — receiving HubSpot's batched event arrays and emitting each event as its own item with the right object ID extracted. A typical build is reacting the moment a deal moves to closed-won.

Works as
Webhook trigger
Tool name
hubspot_trigger
Parameters
3
Outputs
Output
Credentials
HubSpot Developer
Official docs
HubSpot docs developers.hubspot.com

What you can build with HubSpot

  • Trigger a workflow when a new contact is created in HubSpot.
  • Start a process when a deal property changes in HubSpot.
  • React to new company creation events from HubSpot CRM.
  • Listen for ticket deletion events in HubSpot.
  • Trigger automation when a HubSpot conversation receives a new message.

Overview

Triggers a workflow when events occur in HubSpot CRM. Supports contact, company, deal, ticket, and conversation events including creation, deletion, property changes, and privacy deletions. Receives batched webhook payloads from HubSpot and verifies signatures using SHA-256 hashing. Each event in the batch becomes a separate workflow item.

Node Type

Trigger — webhook (receives incoming HTTP callbacks)

Input / Output

DirectionPort(s)
InputNone (trigger node)
OutputOutput

Credentials

This tool requires HubSpot Developer credentials. See the Credentials Guide for setup instructions.

Parameters

ParameterTypeRequiredDefaultDescription
EventsmultiOptionsNo[]Which HubSpot events to listen for. At least one event must be selected for the subscription to be created.
Options: company.creation, company.deletion, company.propertyChange, contact.creation, contact.deletion, contact.privacyDeletion (a contact deleted for privacy compliance), contact.propertyChange, conversation.creation (a new thread), conversation.deletion (a thread archived or soft-deleted), conversation.newMessage, conversation.privacyDeletion (a thread permanently deleted), conversation.propertyChange, deal.creation, deal.deletion, deal.propertyChange, ticket.creation, ticket.deletion, ticket.propertyChange
Property NamestringNo—The name of the property to watch for changes. Required when using propertyChange events (e.g., “email”, “lifecyclestage”, “dealname”). (shown when Events is contact.propertyChange, company.propertyChange, deal.propertyChange)
Additional FieldscollectionNo{}Additional configuration options for the webhook.
— Max Concurrent RequestsnumberNo5Maximum number of concurrent webhook requests HubSpot will send to this endpoint.

Output Data

HubSpot delivers events in batches. Each event in the batch becomes its own output item, so one delivery can start the workflow with many items:

{
  "eventId": 1,
  "subscriptionId": 12345,
  "portalId": 0,
  "appId": 0,
  "occurredAt": 1767225600000,
  "subscriptionType": "contact.creation",
  "attemptNumber": 0,
  "contactId": 0,
  "changeSource": "CRM",
  "changeFlag": "",
  "_trigger": "hubspot_webhook",
  "_timestamp": "2026-01-01T00:00:00.000Z",
  "_webhookEvent": "contact.creation"
}
  • _trigger — always hubspot_webhook.
  • _timestamp — ISO 8601 timestamp of when the delivery arrived.
  • _webhookEvent — the event’s subscriptionType, or unknown when it is absent.
  • HubSpot’s generic objectId field is renamed to a type-specific field and removed: contactId, companyId, dealId, ticketId or conversationId, chosen from the subscriptionType. Address the record by that field rather than objectId.
  • propertyName and propertyValue appear on propertyChange events; occurredAt is a millisecond epoch timestamp.

Reference values downstream by expression, for example {{ $json.contactId }} or {{ $json.subscriptionType }}.

Deliveries arriving without an X-HubSpot-Signature header, or whose signature does not match, are rejected with 401.

Example Configuration

Fire on new contacts:

{
  "type": "hubspot_trigger",
  "parameters": {
    "events": ["contact.creation"]
  }
}

Watch a specific contact property:

{
  "type": "hubspot_trigger",
  "parameters": {
    "events": ["contact.propertyChange"],
    "propertyName": "lifecyclestage"
  }
}

Track sales pipeline movement:

{
  "type": "hubspot_trigger",
  "parameters": {
    "events": ["deal.creation", "deal.propertyChange"],
    "propertyName": "dealstage"
  }
}

Monitor support tickets:

{
  "type": "hubspot_trigger",
  "parameters": {
    "events": ["ticket.creation", "ticket.propertyChange"],
    "propertyName": "hs_pipeline_stage"
  }
}

Limit delivery concurrency on a high-volume portal:

{
  "type": "hubspot_trigger",
  "parameters": {
    "events": ["contact.creation", "company.creation", "deal.creation"],
    "additionalFields": {
      "maxConcurrentRequests": 3
    }
  }
}

Trigger Behavior

  • Activation: When the workflow is activated, a webhook endpoint is registered with the service.
  • Deactivation: The webhook is automatically unregistered when the workflow is deactivated.
  • Payload: The incoming webhook payload is parsed and output as workflow items.
  • Verification: Supports signature verification where applicable.

Tips

This tool triggers workflows in response to HubSpot CRM events involving contacts, companies, deals, tickets, and conversations. It is ideal for initiating automation when specific changes like creation, deletion, or property updates occur within HubSpot, rather than for direct data manipulation. The tool produces individual workflow items for each detected event, containing relevant object IDs.

HubSpot allows only one webhook target URL per developer app, so a second workflow using the same App ID cannot register its own URL — use a separate App ID for each workflow that needs its own subscription.

Important Notes

  1. Property Name Dependency: The propertyName parameter is only visible when using propertyChange events (contact.propertyChange, company.propertyChange, or deal.propertyChange).

  2. Event Selection: You can select multiple events, but if any are propertyChange events (contact, company, or deal), you must specify a propertyName that applies to all selected property change events.

  3. Concurrent Requests: The maxConcurrentRequests setting in additionalFields helps manage webhook performance and prevents overwhelming your endpoint with too many simultaneous requests.

  4. Collection Structure: The additionalFields parameter uses a flat object structure where fields are nested directly under the additionalFields key, not wrapped in arrays or additional objects.

Frequently asked questions

Can two workflows use the same HubSpot App ID?

No. HubSpot allows only one webhook target URL per developer app, so a second workflow using the same App ID cannot register its own URL. Use a separate App ID for each workflow that needs its own subscription.

How are batched events handled?

HubSpot sends arrays of events. Each event in the batch becomes a separate output item, so the next node runs once per event rather than once per delivery.

Which ID do I get on the item?

The object-type ID — contactId, companyId, dealId or ticketId — extracted from HubSpot's generic objectId field, so you do not have to work out which object the event referred to.

Are the payloads verified?

Yes, signature verification confirms the payload genuinely came from HubSpot before the workflow starts.

Build with HubSpot

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need HubSpot Developer credentials first.

Open BusyBot

Last reviewed . Spotted something wrong? Tell us.