/v1/message-drafts/{id}/approveApprove a draft
Records that a person read a queued draft and said yes, stamping who and when. APPROVAL IS NOT A SEND — nothing leaves the building, and the row's own status says "approved, not yet sent". A second approval answers not-found, so a double click cannot rewrite the stamp. To actually put the words on a rail, post_comms_send with that recipient and body; to bin the draft instead, post_message-drafts_id_cancel.
Access class: workspace.
Send request
Use the documented inputs to call this endpoint directly.
Parameters
Values are applied to the request and the example on the right.
Request body
application/jsonrequiredResponses
the action's answer
{
"data": {
"aiFlaggedFigures": [
"string"
],
"aiGenerated": true,
"aiIntent": "string",
"aiModel": "string",
"aiPromptHash": "string",
"approvedAt": "string",
"approvedByUserId": 1,
"body": "string",
"cancellationReason": "string",
"cancelledAt": "string",
"channel": "string",
"createdAt": "string",
"createdByKind": "string",
"createdByUserId": 1,
"detail": {},
"entityId": 1,
"entityKind": "string",
"id": 1,
"recipient": "string",
"recordDefinitionKey": "string",
"recordRowId": "",
"ruleId": 1,
"status": "string",
"subject": "string",
"templateId": 1,
"updatedAt": "string"
}
}a refusal: {"error": "<what a person needs to read>"}. 401 no credential, 402 the plan does not include this, 403 the seat does not, 404 the thing does not exist or is not yours to see.
{
"error": "string"
}