Skip to main content
Version: 1.0

Content Types

This page details all supported message types and which channels each one is available on.

Availability by channel

TypeWhatsAppInstagramMessengerTelegramSMSWeb Chatt
Text
Image
Video✅¹
Audio✅¹
Document✅¹
Sticker
Location
Contact(s)
Interactive
Template
Reaction
Reply
Mark as seen
Is typing
Payment Request
Order Status

¹ Media on SMS is available only for Twilio MMS and remains carrier-dependent. Brazilian SMS is text-only. Additional carrier costs may apply.

² Web Chatt uses the same content shape as the examples on this page (WhatsApp-style payloads from Hub). Send with POST /v1/communication/web-chatt2me/message and from / to as in Web Chatt. The endpoint is included in the OpenAPI reference. Messages for offline visitors are accepted and kept pending. WhatsApp-only types (template, payment request, order status) are not used; mark-as-seen is supported on WhatsApp, Instagram, Messenger, and Web Chatt.

³ For WhatsApp, Instagram, Messenger, Telegram, and SMS, from may be the application channel UUID or the channel-specific alternate — see Sending messages overview. Web Chatt accepts only the UUID for from.


Media size summary

The limit is selected from the channel and the media field used in content. MB values below are implemented as MiB (1024 × 1024 bytes). URLs must be reachable by the Hub and by the destination provider.

ChannelImageVideoAudioDocumentSticker
WhatsApp5 MB16 MB16 MB100 MB100 KB outbound
Instagram8 MB25 MB25 MBNot supportedPlatform sticker only
Messenger25 MB25 MB25 MB25 MBNot supported
Telegram10 MB50 MB50 MB50 MBWebP: 50 MB transport; WebM: 256 KB; TGS: 64 KB
Twilio MMS5 MB total500 KB per media; 5 MB total500 KB per media; 5 MB total500 KB per media; 5 MB totalNot supported
Brazilian SMSNot supportedNot supportedNot supportedNot supportedNot supported
Web Chatt25 MB visitor upload / 50 MB API outbound50 MB50 MB50 MBNot supported by the widget upload flow

Telegram media is uploaded by the Hub with multipart. This is why the supported limits are higher than Telegram's remote-URL limits. Telegram bots can download inbound files only up to 20 MB.

The Web Chatt widget uploads files directly to storage with a short-lived signed POST. The Hub confirms the stored object before acknowledging and persisting the canonical URL; message media is not transported as base64 through the WebSocket.

Outbound media normalization

The Hub converts only these source formats before provider submission. All other formats remain subject to the selected channel's documented MIME and size limits.

Source inputConversion
image/webpStatic PNG for WhatsApp and Twilio MMS; retained for Instagram, Messenger, Telegram and Web Chatt. Animated WebP uses its first frame.
audio/webm or video/webm in audioUrlM4A for WhatsApp, Instagram, Messenger, Telegram and Twilio MMS. For WhatsApp with voice: true, OGG/Opus. Retained for Web Chatt.
video/quicktimeH.264/AAC MP4 for WhatsApp, Instagram, Messenger, Web Chatt and Twilio MMS; retained for Telegram.

If conversion fails, the Hub returns a conversion error and does not submit the original file to the provider.

See each channel guide for the explicit formats and inbound behavior.


Text

The simplest type. Available on all channels.

{
"from": "channel-uuid",
"to": "5511993986082",
"content": {
"text": "Hello! How can I help you?"
}
}

Image

Send an image via public URL. The caption (text) is optional.

{
"content": {
"imageUrl": "https://example.com/image.jpg",
"text": "Optional caption"
}
}
tip

The URL must be publicly accessible and return the correct content type. Supported MIME types vary by channel; do not use image/* as the value of mimeType.


Video

{
"content": {
"videoUrl": "https://example.com/video.mp4",
"text": "Optional video description"
}
}

Audio

{
"content": {
"audioUrl": "https://example.com/audio.mp3"
}
}

For WhatsApp only, set voice to true to send a voice note (PTT). Omit or set false for a normal audio file. Voice notes should use Ogg with Opus encoding per Meta.

{
"content": {
"audioUrl": "https://example.com/voice.ogg",
"voice": true
}
}

On Telegram, the text field can be used as audio caption.


Document (WhatsApp, Messenger, Telegram, Twilio MMS, and Web Chatt)

Send files such as PDFs, spreadsheets, presentations, etc.

{
"content": {
"documentUrl": "https://example.com/file.pdf",
"filename": "Commercial Proposal.pdf",
"mimeType": "application/pdf"
}
}
FieldRequiredDescription
documentUrlPublic URL of the file
filenameName displayed to the recipient
mimeTypeMIME type of the file (e.g. application/pdf)

Sticker

WhatsApp

{
"content": {
"stickerUrl": "https://example.com/sticker.webp"
}
}

Instagram

Use the platform sticker identifier:

{
"content": {
"stickerUrl": "like_heart"
}
}

Telegram

{
"content": {
"stickerUrl": "https://example.com/sticker.webp"
}
}

Location (WhatsApp and Telegram)

{
"content": {
"location": {
"latitude": -23.5505,
"longitude": -46.6333,
"name": "Chatt2.me HQ",
"address": "Av. Paulista, 1000, São Paulo, SP"
}
}
}
FieldRequiredDescription
latitudeBetween -90 and 90
longitudeBetween -180 and 180
nameLocation name (WhatsApp)
addressText address (WhatsApp)

Contact(s) (WhatsApp and Telegram)

Single contact

{
"content": {
"contact": {
"name": {
"formatted_name": "John Smith",
"first_name": "John",
"last_name": "Smith"
},
"phones": [
{ "phone": "5511999999999", "type": "CELL" }
]
}
}
}

Multiple contacts

{
"content": {
"contacts": [
{
"name": { "formatted_name": "John Smith", "first_name": "John" },
"phones": [{ "phone": "5511999999999", "type": "CELL" }]
},
{
"name": { "formatted_name": "Jane Smith", "first_name": "Jane" },
"phones": [{ "phone": "5511988888888", "type": "CELL" }]
}
]
}
}

Mark as seen (WhatsApp, Instagram, Messenger, and Web Chatt)

{
"content": {
"markSeen": true
}
}

Use this to signal to the user that you have read their message, activating the "seen" indicator (blue ticks on WhatsApp) in the conversation. On WhatsApp, this marks the conversation as read — no need to specify a particular message.


Is typing (WhatsApp, Instagram, Messenger, Telegram, and Web Chatt)

{
"content": {
"isTyping": true
}
}

Show the typing indicator in the conversation, signaling to the user that the agent is composing a response. Supported on WhatsApp, Instagram, Messenger, Telegram, and Web Chatt.


Reply

Replying to a specific message creates a visual thread — the recipient sees the original message quoted above your reply. Available on WhatsApp and Telegram.

See Reactions and Reply for the context.messageId field reference and examples.


Next steps