Project-based apps should support creating and managing webhook subscriptions dynamically at runtime through an API, as legacy public apps did.
Use case
Our application allows customers to select custom HubSpot properties that should be synchronized with our platform.
With legacy public apps, when a customer selected a property, our backend dynamically created a propertyChange webhook subscription for that property through the Webhooks API. HubSpot then delivered real-time events to our configured webhook endpoint whenever the property changed.
This supported properties selected or created after the application had already been deployed.
Current limitation
In project-based apps, webhook subscriptions must be declared statically in a *-hsmeta.json file and deployed as part of the application.
The previous API can no longer be used to manage these subscriptions dynamically.
This creates several problems:
- Customer-selected custom properties are not known at build time.
- Adding a new property requires changing the app configuration and deploying a new build.
object.propertyChangestill requires a specificpropertyName.- There is no generic push-based
object.updatewebhook for receiving any modification to a CRM object.
Proposed solution
Provide at least one of the following capabilities:
- Restore an API that allows project-based apps to create, activate, pause, and delete webhook subscriptions dynamically at runtime.
- Add a generic push-based object update subscription, for example:
{
"subscriptionType": "object.update",
"objectType": "contact",
"active": true
}
This event should notify the configured targetUrl whenever the object is modified and include the object ID and, ideally, the names of the changed properties.
Why this matters
This functionality existed for legacy public apps. Its removal is therefore a regression rather than a completely new use case.
Without an equivalent mechanism, integrations that previously used real-time webhook delivery must either:
- Redeploy their HubSpot app whenever a customer changes their configuration
- Maintain a global union of every custom property selected by every customer
None of these alternatives offers the flexibility, scalability, or reliability provided by dynamic webhook subscriptions.
Project-based apps should preserve this essential legacy capability or provide a supported real-time replacement.