Email Subscribtion tracking

New Contributor

Hello, I need to regular sync HubSpot's Email Subscribtion status to external system. But there is no batch method for getting current status for all of contacts and there are no any webhook with such data (Contact Changes webhook has only contact property change). Which is the best way to sync?

1 Reply 1
Community Manager

Hi @gpiskorsky,


When looking at the email subscription information return from the email subscription status endpoint if the contact has opted out, the subscribed value will be false. If a contact subscription have never been changed, the contact are not opted out of that type. 


With this, I'd like to share that when a contact opt out of an email subscription type or opt out from all email; their email information properties will change - Learn more here: Email information properties


With that said, I do have two suggestions here:

#1 Webhook

Now that we know, when a contact opt out of an email subscription type or opt out from all emails, their contact property will change; we can use the webhook subscription to listen to updated contact property event. 

Note: While the standard properties only include hs_email_optout which means if a contact opt out of all email, this property will change and if you're looking to receive subscription status for an individual email type and if your team is either professional/enterprise subscription, we can use a workflow to set up something like this:

  • Set the enrollment trigger to "Contact has opted out of all of e.g. email subscription type A"
  • Set a custom contact property to TRUE

Having the custom property update in the workflow, we can use it to create the webhook subscription and listen to update on those custom properties.


#2 Using the Get contacts API


We can use the property hs_email_optout to get the status of the contact. For each subscription type that your team have set up, you will also have other hs_email_optout_[subscription id] properties.


Hope this helps to clarify!