Skip to main content
Webhooks enable your app to receive real-time notifications when specific events occur in a HubSpot account. Instead of repeatedly polling HubSpot’s APIs to check for changes, webhooks push event data to your application as soon as it happens. When you configure a webhook subscription, HubSpot will send a POST request to your specified endpoint whenever subscribed events occur. Your application receives the event payload, processes it, and returns a 2xx status code to acknowledge receipt.

When to use webhooks

Use webhooks when you need to:
  • Sync data in real-time between HubSpot and external systems (e.g., updating a contact in your database when they’re modified in HubSpot).
  • Trigger automated workflows based on HubSpot events (e.g., sending a Slack notification when a deal closes).
  • Monitor specific changes without constant API polling (e.g., tracking when contacts unsubscribe from emails).
Common use cases include CRM synchronization, notification systems, data warehousing, and integration platforms that need to stay current with HubSpot data.

Project structure

To define a set of webhook subscriptions for an app, create a webhooks directory within src/app/. Then, add a configuration file to that directory using the naming convention *-hsmeta.json.

Webhook configuration

Below are the available configuration options for the *-hsmeta.json file.

Fields marked with * are required.

For each subscription object, the following fields can be specified, based on the subscription definition type you’re subscribed to (i.e., crmObjects, legacyCrmObjects, or hubEvents) or whether you’re subscribing to a specific property change (e.g., contact.propertyChange).
Last modified on March 29, 2026