How HubSpot Webhooks Work
HubSpot doesn’t have a traditional webhook system where you register a URL and pick events. Instead, webhooks are triggered through workflows. You create a workflow with a trigger condition, and one of the actions in that workflow sends a webhook to our endpoint.
This is more flexible in some ways (you can add conditions and branching before the webhook fires) but less straightforward than platforms with dedicated webhook settings.
You’ll need a Professional or Enterprise HubSpot plan to access workflows with webhook actions.
Step-by-Step Setup
1. Open Workflows
- Log into HubSpot
- Navigate to Automations, then Workflows
- Click to create a new workflow
- Choose the workflow type based on what you want to trigger on — Contact-based, Deal-based, or Company-based
2. Set the Enrollment Trigger
This determines when the workflow runs. Common triggers we use:
- Contact property change: When a specific field is updated (e.g., lifecycle stage changes)
- Deal stage change: When a deal moves to a specific pipeline stage
- Form submission: When a contact fills out a specific form
- Contact created: When a new contact is added to HubSpot
Choose the trigger that matches your integration requirements. We’ll specify which trigger to use.
3. Add the Webhook Action
- In the workflow editor, add a new action after the trigger
- Search for webhook in the action list — you should see an option to send a webhook or trigger a webhook
- Set the method to POST
- Enter the webhook URL we provided
- Configure the request body — HubSpot lets you include specific properties from the enrolled record
4. Select the Payload Properties
Choose which properties to include in the webhook payload. At minimum, we usually need:
- The record ID (
hs_object_id) - The properties relevant to the integration (names, emails, deal amount, etc.)
- Any custom properties we created for the integration
Don’t include everything — keep the payload focused on what the integration needs.
5. Activate the Workflow
- Review the workflow settings
- Choose whether to enroll existing records that match the criteria, or only new events going forward
- Turn the workflow on
Which Triggers We Typically Use
| Use Case | Trigger Type | Notes |
|---|---|---|
| New lead routing | Contact created | Sends new contacts to external system |
| Deal sync | Deal stage change | Fires when deals move stages |
| Form capture | Form submission | Routes form data to another platform |
| Status update | Property change | When specific field changes value |
Limitations
- One-way only. HubSpot workflow webhooks send data out. They don’t receive responses that update HubSpot records. For two-way sync, we handle the return path through the API.
- No retry configuration. If the webhook delivery fails, HubSpot may retry, but you don’t have control over the retry schedule.
- Rate limits apply. Workflows have execution limits based on your HubSpot plan.
- Payload size. You’re limited to the properties you select — you can’t send the entire record with all associations in a single webhook.
Common Issues
Webhook Action Not Available
The webhook action requires a Professional or Enterprise plan. If you don’t see it in the action list, check your plan level.
Workflow Not Firing
If the trigger conditions are too narrow, the workflow may not enroll any records. Test with a broad trigger first, then narrow it down once you’ve confirmed it works.
Wrong Data in Payload
If the properties in the payload don’t match what we need, edit the webhook action and update the included properties. You don’t need to recreate the workflow.
Workflow Fires Too Often
If a property change trigger fires on every edit (not just the change you care about), add an if/then branch to the workflow that checks the specific property value before sending the webhook.
Next Steps
- Need to create custom properties for the webhook payload? HubSpot Custom Properties
- Set up your private app for the return API calls: HubSpot Private App Setup
- Learn more about our HubSpot Implementation Services
Need help with the full integration?
This guide covers the setup. If you want us to handle the integration end to end, we can do that.
See Integration Services