Appearance
Send message
Send a message in a conversation. Supports text, attachments, quick replies, buttons, templates, and message tags. Attachment and interactive message support varies by platform.
WhatsApp rich interactive messages (list, CTA URL, Flow) are available via the interactive field. Tap events are delivered through the message.received webhook with WhatsApp-specific metadata fields (interactiveType, interactiveId, flowResponseJson, flowResponseData).
POST /v1/inbox/conversations/{conversationId}/messages
Send a message in a conversation. Supports text, attachments, quick replies, buttons, templates, and message tags. Attachment and interactive message support varies by platform.
WhatsApp rich interactive messages (list, CTA URL, Flow) are available via the interactive field. Tap events are delivered through the message.received webhook with WhatsApp-specific metadata fields (interactiveType, interactiveId, flowResponseJson, flowResponseData).
Parameters
conversationId(path, string) required — The conversation ID (id field from list conversations endpoint). This is the platform-specific conversation identifier, not an internal database ID.
Request body
Content-Type: application/json
accountId(string) required — Social account IDmessage(string) — Message textattachmentUrl(string) — URL of the attachment to send (image, video, audio, or file). The URL must be publicly accessible. For binary file uploads, use multipart/form-data instead.attachmentType(string) (enum: image, video, audio, file) — Type of attachment. Defaults to file if not specified.quickReplies(array) — Quick reply buttons. Mutually exclusive with buttons. Max 13 items.buttons(array) — Action buttons. Mutually exclusive with quickReplies. Max 3 items.template(object) — Generic template for carousels (Instagram/Facebook only, ignored on Telegram).interactive(object) — WhatsApp-only. Rich interactive payload for list messages, CTA URL buttons, and Flow prompts. When set, takes priority overbuttonsandquickReplies. The shape mirrors Meta's Cloud API `interactiv...replyMarkup(object) — Telegram-native keyboard markup. Ignored on other platforms.messagingType(string) (enum: RESPONSE, UPDATE, MESSAGE_TAG) — Facebook messaging type. Required when using messageTag.messageTag(string) (enum: CONFIRMED_EVENT_UPDATE, POST_PURCHASE_UPDATE, ACCOUNT_UPDATE, HUMAN_AGENT) — Facebook message tag for messaging outside 24h window. Requires messagingType MESSAGE_TAG. Instagram only supports HUMAN_AGENT.replyTo(string) — Platform message ID to quote-reply to. For WhatsApp, pass the wamid (available in message.platformMessageId from webhooks). For Telegram, pass the Telegram message ID.
Content-Type: multipart/form-data
accountId(string) required — Social account IDmessage(string) — Message text (optional when sending attachment)attachment(string) — File attachment (images, videos, documents). Supported formats: JPEG, PNG, GIF, MP4, AAC, WAV. Max 25MB.quickReplies(string) — JSON string of quick replies array (same schema as application/json body)buttons(string) — JSON string of buttons array (same schema as application/json body)template(string) — JSON string of template object (same schema as application/json body)replyMarkup(string) — JSON string of replyMarkup object (same schema as application/json body)messagingType(string) — Messaging type (Facebook only). RESPONSE, UPDATE, or MESSAGE_TAG.messageTag(string) — Message tag (requires messagingType MESSAGE_TAG)replyTo(string) — Platform message ID to quote-reply to. For WhatsApp, pass the wamid (available in message.platformMessageId from webhooks). For Telegram, pass the Telegram message ID.
Responses
200 — Message sent
success(boolean)data(object)
400 — Bad request (e.g., attachment not supported for platform, validation error)
error(string)code(string) (enum: PLATFORM_LIMITATION)
401
403 — Inbox addon required