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=="
    }
  }
}
agent_id
string
RCS agent receiving the inbound interaction.
from
string
User’s phone number in E.164 format.
session_expires_at
string
ISO 8601 end of the active conversation window for session-priced replies.
user_message
object
Normalized inbound payload. Shape depends on user_message.type.
type
string
text for free-form input, or suggested_reply when the user taps a chip.
text
string
Visible label or body text from the user.
postback_data
string
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.