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 subscribe contact endpoint allows you to subscribe an email address to any given subscription type in an account, butwill 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. Pleasereview applicable laws and regulationsbefore 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.
100% agreed. We need the ability to resubscribe people via the API. We use a WordPress plugin for many of our media / publishing clients that allows us much better control over sub forms (inline, modal, top/bottom bar, etc.) than we can get using native HubSpot forms. This plugin connects directly to HubSpot via the API, but if people can't resubscribe, they aren't getting what they asked for. Significant problem ...
Upvote! It would be nice to let the api have the resubscribe function, so that contacts no need to re-subscribe through hubspot form. It will bring a lot of convenience to our contacts.
Can't agree more with eshanfelt. Currently working on a pretty big project with a fullfledged TYPO3 integration. That this isn't possible is pretty hard to communicate with the project lead ...
Absolutely necessary with API usage... why should e.g. an ecommerce customer not be able to resubscribe in checkout processes? Thats a BIG missing link...!!
Another user case could be to have an api call that initiates sending an email to a contact with a link to the subscription setting page for this user.