curl --request PATCH \
--url https://api.hubapi.com/conversations/custom-channels/2026-03/{channelId}/messages/{messageId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"statusType": "FAILED",
"errorMessage": "<string>"
}
'{
"archived": true,
"attachments": [
{
"fileId": "<string>",
"fileUsageType": "AUDIO",
"type": "FILE",
"name": "<string>",
"url": "<string>"
}
],
"channelAccountId": "<string>",
"channelId": "<string>",
"client": {
"clientType": "HUBSPOT",
"integrationAppId": 123
},
"conversationsThreadId": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": "<string>",
"direction": "INCOMING",
"id": "<string>",
"recipients": [
{
"deliveryIdentifier": {
"type": "CHANNEL_SPECIFIC_OPAQUE_ID",
"value": "<string>"
},
"actorId": "<string>",
"name": "<string>",
"recipientField": "<string>"
}
],
"senders": [
{
"actorId": "<string>",
"deliveryIdentifier": {
"type": "CHANNEL_SPECIFIC_OPAQUE_ID",
"value": "<string>"
},
"name": "<string>",
"senderField": "<string>"
}
],
"text": "<string>",
"truncationStatus": "NOT_TRUNCATED",
"type": "MESSAGE",
"inReplyToId": "<string>",
"richText": "<string>",
"status": {
"statusType": "FAILED",
"failureDetails": {
"errorMessageTokens": {},
"errorMessage": "<string>"
}
},
"subject": "<string>",
"updatedAt": "2023-11-07T05:31:56Z"
}Update a message’s status to indicate if it was successfully sent, failed to send, or was read. For failed messages, this can also include the error message for the failure.
curl --request PATCH \
--url https://api.hubapi.com/conversations/custom-channels/2026-03/{channelId}/messages/{messageId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"statusType": "FAILED",
"errorMessage": "<string>"
}
'{
"archived": true,
"attachments": [
{
"fileId": "<string>",
"fileUsageType": "AUDIO",
"type": "FILE",
"name": "<string>",
"url": "<string>"
}
],
"channelAccountId": "<string>",
"channelId": "<string>",
"client": {
"clientType": "HUBSPOT",
"integrationAppId": 123
},
"conversationsThreadId": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": "<string>",
"direction": "INCOMING",
"id": "<string>",
"recipients": [
{
"deliveryIdentifier": {
"type": "CHANNEL_SPECIFIC_OPAQUE_ID",
"value": "<string>"
},
"actorId": "<string>",
"name": "<string>",
"recipientField": "<string>"
}
],
"senders": [
{
"actorId": "<string>",
"deliveryIdentifier": {
"type": "CHANNEL_SPECIFIC_OPAQUE_ID",
"value": "<string>"
},
"name": "<string>",
"senderField": "<string>"
}
],
"text": "<string>",
"truncationStatus": "NOT_TRUNCATED",
"type": "MESSAGE",
"inReplyToId": "<string>",
"richText": "<string>",
"status": {
"statusType": "FAILED",
"failureDetails": {
"errorMessageTokens": {},
"errorMessage": "<string>"
}
},
"subject": "<string>",
"updatedAt": "2023-11-07T05:31:56Z"
}Supported products
Required Scopes
The access token received from the authorization server in the OAuth 2.0 flow.
successful operation
Show child attributes
Show child attributes
INCOMING, OUTGOING Show child attributes
Show child attributes
NOT_TRUNCATED, TRUNCATED, TRUNCATED_TO_MOST_RECENT_REPLY MESSAGE Show child attributes
Was this page helpful?