A transfer to HubSpot can fail with a 403 and a MISSING_SCOPES error even when the operation and data are otherwise correct. This can mean either that our app truly lacks the scope, or that the authorizing HubSpot user doesn't have the right permission level for that object - the error looks identical either way. This article shows how to tell the two apart and resolve each.
Connection: HUBSPOT001
Data sent:
json
{ "inputs": [{ "id": "25669941041", "properties": { "bc_item_no": "ITEM0071" } }] }Status code: 403 Forbidden
Response body:
{
"status": "error",
"message": "This app hasn't been granted all required scopes to make this call...",
"errors": [
{ "message": "One or more of the following scopes are required.",
"context": { "requiredGranularScopes": ["e-commerce", "crm.objects.products.write"] } }
],
"category": "MISSING_SCOPES"
}Look at the object named in requiredGranularScopes (here: Products) and check whether it's part of our standard supported objects list.
The app has the scope - Check this Supported HubSpot Objects page for more information. This is a user permission issue: the HubSpot user who authorized the connection most likely has read-only access to that object, not write.
Fix:
The app itself doesn't have the scope at all.
Fix:
Comment Editor X