Fires on every user reply — free-text, suggested reply tap, or action tap. The first reply opens the 24-hour session window; each subsequent reply also fires this event.
Payload
Free-text reply
{
"id": "evt_xxxxx",
"event": "conversation.started",
"timestamp": "2026-03-28T09:05:00Z",
"data": {
"agent_id": "ag_live_xxxx",
"from": "+4917612345678",
"session_expires_at": "2026-03-29T09:05:00Z",
"user_message": {
"type": "text",
"text": "Where is my order?"
}
}
}
Suggested reply tap
{
"id": "evt_xxxxx",
"event": "conversation.started",
"timestamp": "2026-03-28T09:05:10Z",
"data": {
"agent_id": "ag_live_xxxx",
"from": "+4917612345678",
"session_expires_at": "2026-03-29T09:05:10Z",
"user_message": {
"type": "suggested_reply",
"text": "Track order",
"postback_data": "dHJhY2tfMTIzNA=="
}
}
}
RCS agent receiving the inbound interaction.
User’s phone number in E.164 format.
ISO 8601 end of the active conversation window for session-priced replies.
Normalized inbound payload. Shape depends on user_message.type.text for free-form input, or suggested_reply when the user taps a chip.
Visible label or body text from the user.
Present for suggested_reply when you attached opaque data to the chip.
postback_data is the base64-encoded value you set on the suggestion chip. Decode it to recover your intent identifier.
Once conversation.started fires, reply using message_type: "CONVERSATION" within the session_expires_at window. See Receive replies.