ConversationMessage
A single message within a Conversation. Uses a
discriminated-union pattern where type determines which content
sub-object (system, form, engage, videoCall, order, etc.)
is populated.
Create with conversationMessageAdd, list with
conversationMessages, fetch one with conversationMessage.
ConversationMessageFields
Message type discriminator.
Who sent this message.
Visibility level: 'public', 'internal', or 'hidden'.
Text content (when type='text').
Media content (image, audio, video, document — single or multiple).
Template content (when type='template').
Interactive content (when type='interactive').
Tool call data (when type='tool_call').
Email envelope and body (when type='email').
Threading, forwarding, mention context.
Delivery status and error info.
Reactions on this message.
External origin tracking.
Message edit history.
Extensible metadata bucket.
The resolved original message being replied to.
The resolved customer who sent this message.
The resolved agent who sent this message.
The parent conversation.
The conversation this message belongs to.
When this message was created.
Sticker attachment (when type='sticker').
Location data (when type='location').
Contact cards (when type='contacts').
CTWA ad referral attached to the message.
System event content (populated when type is "system").
Form submission content (populated when type is "form").
Engage/campaign content (populated when type is "engage").
Video call content (populated when type is "videoCall").
Order/commerce content (populated when type is "order").
When this message was last updated (e.g. reaction or visibility change via conversationMessageUpdate).
Live WhatsApp call card (when type='whatsapp_call').