How to Debug HubSpot Webhooks

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.

What are HubSpot Webhooks?

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.

Common HubSpot Webhook Events

EventDescription
contact.creationFired when a new contact is created in the CRM
deal.propertyChangeFired when a deal's properties are updated
contact.propertyChangeFired when a contact's properties change
company.creationFired when a new company is created

Setting Up HubSpot Webhooks with WebhookVault

Follow these steps to start capturing and debugging HubSpot webhooks using WebhookVault.

1Create a WebhookVault endpoint

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"}

2Configure HubSpot to send webhooks

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

3Inspect captured requests

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

4Replay to your local server

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

Sample HubSpot Webhook Payload

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
  }
]

Common HubSpot Webhook Issues

Here are the most common issues developers encounter when working with HubSpot webhooks, and how to resolve them.

Batch delivery

HubSpot sends webhooks in batches as a JSON array. Your handler must process an array of events, not a single event.

Signature verification

HubSpot signs webhooks with the X-HubSpot-Signature header. Use your app's client secret to verify the SHA-256 hash.

Rate limiting

HubSpot may throttle webhook deliveries during high-volume periods. Implement retry logic with exponential backoff.

Property-level subscriptions

You can subscribe to specific property changes rather than all changes. This reduces webhook volume significantly.

Frequently Asked Questions

What are HubSpot webhooks?

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.

How do I test HubSpot webhooks locally?

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).

How do I verify HubSpot webhook signatures?

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.

Why is WebhookVault better than ngrok for HubSpot webhook testing?

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.

Start debugging HubSpot webhooks now

Create a free WebhookVault endpoint in seconds. Capture, inspect, and replay HubSpot webhooks with zero configuration.

Get Free API Key