Skip to content

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 ID
  • message (string) — Message text
  • attachmentUrl (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 over buttons and quickReplies. 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 ID
  • message (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