HubSpot webhooks notify your application about CRM events, including contact creation, deal updates, and form submissions. They are essential for keeping your systems synchronized with HubSpot's CRM data.
HubSpot webhooks are HTTP POST requests that HubSpot sends to your server when specific events occur in your account. Rather than continuously polling the HubSpot API for updates, webhooks deliver real-time notifications the moment something happens — a payment completes, a user signs up, a deployment finishes, or any other tracked event.
Debugging these webhooks can be challenging because they originate from HubSpot's servers, not your browser. You can't simply open DevTools to inspect them. That's where WebhookVault comes in — capture every HubSpot webhook, inspect the full payload and headers, and replay them to your local development server.
| Event | Description |
|---|---|
| contact.creation | Fired when a new contact is created in the CRM |
| deal.propertyChange | Fired when a deal's properties are updated |
| contact.propertyChange | Fired when a contact's properties change |
| company.creation | Fired when a new company is created |
Follow these steps to start capturing and debugging HubSpot webhooks using WebhookVault.
Sign up for a free WebhookVault API key and create an endpoint to capture HubSpot webhooks.
curl -X POST https://webhookvault.anethoth.com/api/v1/endpoints \
-H "Authorization: Bearer wv_your_key" \
-H "Content-Type: application/json" \
-d '{"name": "HubSpot Webhooks"}'
# Response:
# {"url": "https://webhookvault.anethoth.com/hook/abc123", "inspect_url": "https://webhookvault.anethoth.com/inspect/abc123"}
Go to your HubSpot app settings in the Developer Portal Navigate to Webhooks in the left sidebar Enter your WebhookVault endpoint URL as the target URL Create subscriptions for the object types and events you need
Once HubSpot sends a webhook, you can inspect every detail through the WebhookVault API or web inspector.
curl https://webhookvault.anethoth.com/api/v1/endpoints/abc123/requests \
-H "Authorization: Bearer wv_your_key"
# Returns all captured HubSpot webhook requests with full headers, body, and metadata
Replay any captured HubSpot webhook to your local development server for testing.
curl -X POST https://webhookvault.anethoth.com/api/v1/endpoints/abc123/requests/1/replay \
-H "Authorization: Bearer wv_your_key" \
-H "Content-Type: application/json" \
-d '{"url": "http://localhost:3000/webhook"}'
# The original HubSpot webhook is replayed to your local server
Here is an example of a typical HubSpot webhook payload. Use WebhookVault to capture real payloads from your HubSpot account for accurate testing.
[
{
"objectId": 123456,
"propertyName": "lifecyclestage",
"propertyValue": "customer",
"changeSource": "CRM",
"eventId": 1,
"subscriptionId": 12345,
"portalId": 62515,
"appId": 54321,
"occurredAt": 1706000000,
"subscriptionType": "contact.propertyChange",
"attemptNumber": 0
}
]
Here are the most common issues developers encounter when working with HubSpot webhooks, and how to resolve them.
HubSpot sends webhooks in batches as a JSON array. Your handler must process an array of events, not a single event.
HubSpot signs webhooks with the X-HubSpot-Signature header. Use your app's client secret to verify the SHA-256 hash.
HubSpot may throttle webhook deliveries during high-volume periods. Implement retry logic with exponential backoff.
You can subscribe to specific property changes rather than all changes. This reduces webhook volume significantly.
HubSpot webhooks are HTTP callbacks that HubSpot sends to your server when specific events occur. Instead of polling the HubSpot API for changes, webhooks push real-time notifications to your application, making your integration more efficient and responsive.
Use WebhookVault to capture HubSpot webhooks in the cloud, then replay them to your localhost. Create a WebhookVault endpoint, configure HubSpot to send webhooks to it, and use the replay API to forward captured requests to http://localhost:3000/webhook (or your local port).
Most webhook providers, including HubSpot, sign their webhook payloads to prove authenticity. Check the HubSpot documentation for the specific signature header and verification algorithm. Use WebhookVault to capture and inspect the raw headers to debug signature verification issues.
Unlike ngrok, WebhookVault captures and stores every webhook request with full headers and payloads. You can replay any HubSpot webhook to your local server as many times as needed, inspect historical requests, and share webhook data with your team. No tunnel to maintain or port to expose.
Create a free WebhookVault endpoint in seconds. Capture, inspect, and replay HubSpot webhooks with zero configuration.
Get Free API Key