Send a message in a conversation
POST/api/conversations/:conversationId/messages
Sends a reply to the customer on the conversation's channel (WhatsApp, Instagram, e-mail, …) as the calling member. It LEAVES the workspace and cannot be taken back reliably. 201 means stored and handed to the channel; the delivery outcome arrives later on the message's status. Allowed to whoever may reply in the conversation.
The channel's own rules are checked before anything is stored: outside
a 24-hour service window (WhatsApp, Messenger) free text is refused
with a 422 that says why — send an approved template instead (or,
where the account supports it, Direct Send or a Messenger utility
template); a body longer than the channel carries is refused too. For
a note only colleagues see, use createConversationNote.
Request
Responses
- 201
- 401
- 404
- 409
- 422
Created message.
Not authenticated. code: account_disabled means the member's seat was deactivated in this workspace: the session is over even though the token was not revoked (clients sign out and clean up).
Resource not found (or not visible to the current tenant).
A call-permission request whose template is MARKETING, to a contact still inside Meta's per-user marketing limit on this number. Nothing was stored or sent; repeat with confirm_marketing_cooldown: true to send anyway.
The message failed validation and was NOT stored. When the body is longer than the channel carries (capabilities.text_limits), the response also has code: message_too_long and a text_limit object with the ceiling, the measured length and the unit — checked before anything is written, so no client can create a message that could only fail at the platform.