We use cookies to make HubSpot's community a better place. Cookies help to provide a more personalized experience and relevant advertising for you, and web analytics for us. To learn more, and to see a full list of cookies we use, check out our Cookie Policy (baked goods not included).
During the course of implementing our own "Communication Preferences" page as part on an on-boarding process, we encountered (during testing) the problem of not being able to resubscribe to a subscription type if it had been previously unsubscribed.
The API documentation includes this:
Subscribe contact
The subscribe contact endpoint allows you to subscribe an email address to any given subscription type in an account, but will not allow you to resubscribe contacts who have opted out.
Example use case: This endpoint is ideal for when you have an integration or external form that needs to opt contacts into a subscription type.
Note: The subscribe contact endpoint should only be used to honor requests from contacts who have given you permission to subscribe them. Please review applicable laws and regulations before resubscribing a contact.
The first part (in bold) does say "will not allow", but then the note ends with "…before resubscribing a contact." I initially interpretted this to mean a global "opt out" or why would there be any talk of "resubscribing" at all.
While the initial on-boarding process won't be directly impacted as they have certainly never been subscribed so leaving any (or even all) of the subscription types unselected simply means they are not subscribed — which isn't the same as having unsubscribed. This will definitely become a problem over time for those who wish to tweak their subscription preferences from time-to-time.
I've read the many posts that lament this situation and there seems to be many who want some kind of solution. I'm creating this new post to outline several potential improvements.
A. Track whether an unsubscribe was via the API and allow resubscribe via API
B. If a subscribe request via API is declined (whether due to previous unsubscribe or a global opt-out), return a link to the HubSpot preferences page in the response which could be presented to the user. (Thus saving the steps/hassle of having/finding an existing email.)
C. Provide an API call to obtain the link to the HubSpot preferences page.
D. Provide a simple way (API or link?) to cause an email containing the link to the HubSpot preferences page to be sent. (I realize that this might not be feasible for a global opt-out because they probably can't be sent an email.)
In case it isn't obvious, these are listed in my preferred order. I am already leveraging the fact that the legalBasis being null means that a "subscribe" is possible so I can at least indicate on our own "Communication Preferences" page that a particular subscription cannot be "resubscribed", but without at least one of the options above the most we'll be able to do is provide a page of instruction on how to overcome an unsubscribe that is later regretted.