We're trying to update the contact marketing status for existing contacts in HubSpot via APi (that integrations is configured in settings to create marketing contacts) and the command we use is (integrated in a bigger sync):
{
"property": "hs_marketable_status",
"value": "true"
}
The response error we get is:
{
"validationResults": [
{
"isValid": false,
"message": ""hs_marketable_status" is a read only property; its value cannot be set.",
Workflows is the best solution now. I brought this up recently. @TimMunro also asked this and I suggested creating an idea for it because I agree that the API request should be able to accomplish this.
@dsecareanu , if Tim hasn't created the idea, please do and we can get the upvotes started.
Yes, why can't we simply edit this field in a list upload? (FYI we use a 3rd party dedupe/data hygiene tool Insycle to import lists into HubSpot so same issue there as well -- even though it lets you select Marketing Contact Status as a field and set the value, HubSpot throws the same error on upload). HubSpot, please fix!!
I haven't tested it but this article actually said we can change that via workflow. So while indirect we can have 2 simple workflows ready. One for making marketing contact and one for making non-marketing contact. When needed, enrol the contact to that workflow and let hubspot system change it for us. Can anyone check if that's possible?
Jan 19, 20214:22 AM - edited Jan 21, 20219:50 AM
Top Contributor | Partner
Cannot set a contact's marketing status via API
SOLVE
I understand that the field is not editable, but contacts can be toggled into marketing or non-marketing contacts through API integrations and form submissions (there are settings that allow you to toggle which API integration or type of form submissions creates a marketable or non-marketable contact) but something is not making sense.
In the end I figured it out going through the field description:
This unique identifier will be used when syncing with integration partners. Once created it can't be edited.
It seems it can be created, but it cannot be edited once created... which is a strange limitation because we have use cases in which a contact is created through an API integration as a marketing contact (or non marketing contact) and then we want to update the status of this contact through another API integration based on additional information we collect on that respective contact.
To give a concrete example:
We use Call Tracking Metrics to create contacts from phone calls and since we do not have an email address at the time of the call, the contact is created with a 12345678@hubspot.com temporary email address (which is, of course, non marketable to).
Once the call (handled by the sales) is done, that contact is updated in another CRM platform with a name, proper email address and other information and that data is passed to HubSpot via API by matching the phone number and updating the email and other relevant contact properties.
Now we have 2 cases: the contact was junk and it doesn't get an update, so it's fine that the @hubspot.com email is non marketable, but also the contact was valid and data is updated, but now it's marketing status cannot be updated because the contact has already been created by another API integration...
How can we go about this to automate this unless we use Pro and workflows (as only the upgrade from Starter seems to be the answer)? Thanks.
Workflows is the best solution now. I brought this up recently. @TimMunro also asked this and I suggested creating an idea for it because I agree that the API request should be able to accomplish this.
@dsecareanu , if Tim hasn't created the idea, please do and we can get the upvotes started.
If we want to change a contact's marketable status (i.e. if it's a marketable or non-marketable contact) how do we go about it via API (if the property is read only)?
Thank you @quentin_lamamy - question though: how can the marketable status pe updated for contacts except the standard configured settings (API & forms)?