Conversations
Conversations represent message threads between your agent’s phone number and an external participant. Each conversation tracks the full message history, supports custom metadata for storing session state, and is sorted by most recent activity.
The channel field on each message tells you how it was delivered. Your code works the same across channels — the differences are in what features are available.
In this guide
- Channel behavior: SMS/MMS vs iMessage capabilities, media, and reactions
- API reference: list/get/update conversations and list conversation messages
- Webhook behavior: see Webhooks for event payloads
SMS vs iMessage
SMS
Standard text messaging over the cellular network. Works with any phone number.
- Outbound requires 10DLC registration (carrier requirement for US numbers)
- Inbound works immediately — no registration needed
- Images arrive as MMS (
channel: "mms")
iMessage
Apple’s messaging protocol. Delivered over the internet to Apple devices, with automatic SMS fallback for non-Apple recipients.
- No 10DLC registration required
- Supports reactions (tapbacks), rich media, and image carousels
channelis"imessage"for messages delivered via iMessage
Capabilities
API reference
List conversations
List all conversations for this project, sorted by most recent activity.
Query parameters
Example
Get conversation
Get a conversation with its recent messages.
Query parameters
Example
Update conversation
Update conversation metadata (state). Use this to store custom context for AI agents, such as customer information, business context, or session state.
The metadata is included in webhook payloads as conversationState, enabling your AI backend to maintain context across messages.
Request body
Example
Get conversation messages
Get paginated messages for a conversation. Use before/after for cursor-based pagination through large message histories.
Query parameters
Example
Message fields
Media
When someone sends an image, video, or file, the message includes a mediaUrl pointing to the hosted media. The body may be empty if only media was sent.
Image carousels (multiple images sent at once) arrive as separate messages, each with its own mediaUrl.
Media works on both iMessage and MMS (SMS with images). When an image arrives via SMS, the channel is "mms".
Reactions
iMessage supports tapback reactions — the emoji responses users can add to individual messages (heart, thumbs up, etc.). Reactions are only available on iMessage channels.
Send a reaction
Reacting to an image in a carousel works the same way — use the message ID of the specific image.
Reactions are an iMessage feature. Attempting to react to a message on an SMS number will return a 400 error.
Receive reactions
When someone reacts to a message your agent sent, an agent.reaction webhook event is fired. See Webhooks for the payload format.
