Public Beta: Generic Webhook Subscriptions
Starting on August 6th, 2024, you can now use 24 additional CRM object types with webhook subscriptions for both private and public apps. We are updating the format to follow the "object.*" pattern to standardize the subscription types.
Key Format Changes
- Old Format: subscriptionType: contact.creation (legacy)
- New Format: subscriptionType: object.creation (generic format) with the related object defined in the response objectTypeId field
Supported Object Types
Webhook subscriptions now support all of the following object types for private and public apps:
CALL | CART | COMMERCE_PAYMENT |
COMMUNICATION | COMPANY | CONTACT |
DEAL | DISCOUNT | |
FEE | FEEDBACK_SUBMISSION | GOAL_TARGET |
LINE_ITEM | MEETING_EVENT | NOTE |
ORDER | POSTAL_MAIL | PRODUCT |
QUOTE | QUOTE_TEMPLATE | TASK |
TAX | TICKET | INVOICE |
LEAD | SUBSCRIPTION | USER |
PARTNER_CLIENT |
Subscription Type Format Changes
Subscription type |
Legacy format (example) |
New format |
Creation |
contact.creation |
object.creation |
Deletion |
contact.deletion |
object.deletion |
Merge |
contact.merge |
object.merge |
Restore |
contact.restore |
object.restore |
Property change |
contact.propertyChange |
object.propertyChange |
Association change |
contact.associationChange |
object.associationChange |
Creation, deletion, merge, restore, and property change events will now include objectTypeId in the response payload in raw ID format (e.g., 0-1 for contact) as defined here.
Additional Information
Association Change Events
New fields added:
- fromObjectTypeId
- toObjectTypeId
- associationTypeId
- associationCategory
These events will be triggered for both objects related to the association change. This means that, for an association change made to a deal record, an object.associationChange for objectName=contact will also be triggered by a change in the DEAL_TO_CONTACT association with toObjectTypeId=0-1 and the appropriate associationTypeId in the payload. Previously, only the deal.associationChange would be triggered for DEAL_TO_CONTACT associations.
Legacy Format Support
CONVERSATION objects and contact.privacyDeletion events will continue to be supported in the old format. We do not have generic webhooks for these subscriptions, so developers can continue to use the old format for these cases.
What does this mean for developers?
Developers can now use the generic format to extend subscriptions to newly supported object types for their application use case. While immediate deprecation of legacy webhooks are not planned, it is advisable to start adapting to the new format. Consider modifying existing endpoints to adapt to the new format or create new ones as needed. Users should publish events to both subscription versions during the transition period. The HubSpot UI supports maintaining both legacy and new versions simultaneously, ensuring a smooth migration process.
Please refer to this documentation to learn more about setting up generic webhook subscriptions using the new CRM object types.
When is it happening?
This public beta goes into effect on Tuesday, August 6th, 2024.
Important update:
- ENGAGEMENT: The ENGAGEMENT object type is no longer supported in generic webhook subscriptions.
- EMAIL: Subscriptions to the EMAIL object type are allowed, but creation of subscriptions for the
hs_email_html
andhs_email_subject
properties is restricted. - COMMUNICATION: Subscriptions to the COMMUNICATION object type are also allowed, but creation of subscriptions for the
hs_communication_body
property is restricted.
- Note: Existing subscriptions for
hs_communication_body
in COMMUNICATION objects will be left as-is and continue functioning as expected.
Questions or comments? Join us in the developer forums.