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 EMAIL
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 and hs_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.

Every other property and every other subscription type for these objects is allowed.

Questions or concerns? Join our peer-to-peer developer forum below.

Is this update the cause for errors when I try to creake a webhook trigger in my workflows?

Hey @austinsine - Could you provide more details about the error you’re receiving?

Thank you for this update, it’s perfect for our integration! I’m already implementing this.
Just two things:

1) I’ve fired an object.deletion event for Note. I can see it from the Events Subscription dashboard but not on the Monitoring Logs:

2) When do you plan to fix the problem on the Email object? I would like to move to this integration and remove the previous workaround that I needed to implement to detect new emails.

Edit: about 1) the event arrived after some delay (I think more than 30 minutes). I write this just in case it could be helpful on your side

@hseligson any update on the bug for EMAILS and ENGAGEMENT?

@mmaddiona - Thank you for your follow-up! As far as providing EMAILS and ENGAGEMENT support, at this time, we can confirm that ENGAGEMENT will not be supported since types like notes, tasks, and other engagement activities are already supported by generic webhooks.

We’re still awaiting an update on EMAIL. Once I receive confirmation from our engineering team and PM, I’ll update this thread. Stay tuned!

Thank you for the information and for the reply!
I’ll wait for updates and I’m ready to make tests and send everything in prod :grinning_face_with_smiling_eyes:

Hi HubSpot Developers,

We have an important update related to this recent launch for generic webhook subscriptions. Please see below:

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 and hs_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.

Every other property and every other subscription type for these objects is allowed.