Channel Constraints

Which channels can start a conversation, and what each channel requires

ChannelSend to an existing chatStart a new conversation
WhatsApp✅ Free-form inside the 24-hour window✅ Approved template required outside the 24-hour window (sendWhatsAppTemplateMessage in GraphQL, templateName in MCP)
Telegram✅❌ The user must start the bot first
Viber✅❌ The user must subscribe first
Instagram✅ Human-agent tag applied❌ Can't cold-start
Web widget✅❌ Visitor-initiated only

Starting a conversation on a channel that doesn't allow it returns 400.

Media

Upload media to the acting org first, then reference it by ID in media (GraphQL) or mediaIds (MCP). Arbitrary URLs aren't accepted.

Delivery Failures

If the channel provider rejects a send, you get a message back with deliveryStatus: FAILED rather than an error. Check deliveryStatus on every send.

On this page