RCS Conversation Flows

This guide walks you through designing and implementing RCS conversation flows using the Messages API, with practical examples and best practices for building conversational journeys.

What is an RCS Conversation Flow?

An RCS conversation flow is a structured sequence of messages and user interactions. It guides users through a process, such as making a purchase, getting support, or receiving updates, by using rich media, suggested replies, and automated logic.

A sequence flow of a message from an agent and a response from a user.

Designing Your RCS Flow

  1. Define the Use Case: Identify the goal (e.g., support, sales, notifications).
  2. Map the Journey: Outline each step, user choice, and expected outcome.
  3. Prepare Content: Draft messages, media, and reply options.
  4. Automate Logic: Use webhooks and backend logic to handle user input and trigger responses.

Follow these steps to implement a precise RBM-style conversation flow using Vonage endpoints and payloads.

Agent sends a capability check request

Before sending RCS, verify that the user’s device is RBM-capable.

The agent sends:

POST /v1/channel-manager/rcs/agents/welcome-bot/devices/capabilities 
HTTP/1.1
Host: api-us.vonage.com
Authorization: Bearer {JWT}
Content-Type: application/json

Agent receives capability check response

The platform indicates the device can receive RBM messages.

The agent receives:

{
   "rcs_supported": true,
   "features": [
      "RICHCARD_STANDALONE",
      "ACTION_CREATE_CALENDAR_EVENT",
      "ACTION_DIAL",
      "ACTION_OPEN_URL",
      "ACTION_SHARE_LOCATION",
      "ACTION_VIEW_LOCATION",
      "RICHCARD_CAROUSEL"
   ]
}

Agent sends “Hello, World!”

Send an RCS text message via the Messages API.

The agent sends:

POST /v1/messages 
HTTP /1.1
Host: api-us.vonage.com
Authorization: Bearer {JWT}
Content-Type: application/json
{
   "message_type": "text",
   "text": "Hello, World!",
   "to": "+12223334444",
   "from": "welcome-bot",
   "channel": "rcs"
}

Platform sends DELIVERED event

The message is delivered to the user and a delivery event is sent to your status webhook.

The agent receives:

{
  "messageuuid": "3ca4b881-3e11-46bd-b491-76740a62639a",
  "to": "+12223334444",
  "from": "welcome-bot",
  "timestamp": "2026-02-02T12:00:04Z",
  "status": "delivered",
  "channel": "rcs"
}

Platform sends READ event

The user opens the message. A read event is sent to your status webhook.

The agent receives:

{
  "messageuuid": "3ca4b881-3e11-46bd-b491-76740a62639a",
  "to": "+12223334444",
  "from": "welcome-bot",
  "timestamp": "2026-02-02T12:01:10Z",
  "status": "read",
  "channel": "rcs"
}

User sends a reply

The user sends a message. Vonage delivers it to your inbound webhook.

The agent receives:

{
  "to": "welcome-bot",
  "from": "+12223334444",
  "channel": "rcs",
  "message_uuid": "aaaaaaaa-bbbb-cccc-dddd-0123456789ab",
  "timestamp": "2026-02-02T12:02:23Z",
  "message_type": "text",
  "text": "Hello to you!"
}

Platform acknowledges inbound delivery

Inbound messages are delivered to your webhook (acknowledged implicitly via webhook receipt). Use the webhook payload to route the conversation and log the event.

Agent sends READ acknowledgement

Acknowledge the user’s message by marking it as read.

The agent sends:

PATCH /v1/messages/aaaaaaaa-bbbb-cccc-dddd-0123456789ab 
HTTP/1.1
Host: api-us.vonage.com
Authorization: Bearer {JWT}
Content-Type: application/json
{
  "status": "read"
}

Further information