HubSpot Webhook API

Receive and process webhook events from HubSpot CRM with Notion-based configuration for event routing.

Configuration

The UUID of the Notion page that contains the configuration for processing HubSpot events

Request Preview

URL:
POST /api/hubspot-webhook/550e8400-e29b-41d4-a716-446655440000
Headers:
{
  "Content-Type": "application/json"
}
Body:
"{\n  \"objectId\": 123456,\n  \"propertyName\": \"lifecyclestage\",\n  \"propertyValue\": \"subscriber\",\n  \"portalId\": 123456,\n  \"appId\": 123456,\n  \"occurredAt\": 1783771868189,\n  \"subscriptionId\": 123456,\n  \"attemptNumber\": 0\n}"

API Reference

Endpoint

POST /api/hubspot-webhook/[uuid]

Parameters

uuid
UUID of the Notion page containing the webhook configuration

Request Body

The request body contains the HubSpot webhook payload with contact and deal event information.

Standard HubSpot Webhook Fields:

  • objectId - The ID of the HubSpot object (contact, deal, etc.)
  • propertyName - The property that changed (e.g., lifecyclestage, email)
  • propertyValue - The new value of the property
  • portalId - Your HubSpot portal ID
  • occurredAt - Unix timestamp of when the event occurred

Response

{
  "success": true,
  "data": {
    "processed": true,
    "objectId": 123456,
    "timestamp": "2026-07-11T12:11:08.190Z"
  }
}

Supported Events

  • Contact property changes (lifecyclestage, email, etc.)
  • Deal updates (stage changes, property updates)
  • Custom object events
  • Association changes

Features

  • Support for multiple HubSpot event types
  • Notion page-based configuration for flexible routing
  • Event validation and processing
  • Error recovery and detailed logging