Conversation flows

Sending and receiving messages and events are the core aspects of communication between an agent and a user. Agents send messages, events, and requests to users via HTTP POST requests to the RBM API but receive user-created messages and events as JSON from Cloud Pub/Sub.

Below is an example conversation flow that uses sample data to illustrate how messages, events, and requests can create useful and meaningful interactions.

Hello, World!

A basic conversation between an agent and a user.

In this example, the agent sends Hello, World! as a message to the user, and the user responds with Hello to you!.

A sequience diagram of a message from an agent and a response from a user.

  1. The agent sends a capability check request to verify that the user's device is RBM-capable.

    The agent sends:

    GET
    /v1/phones/+12223334444/capabilities?requestId=147547143069602483572&agentId=welcome-bot
    HTTP/1.1
    Host: us-rcsbusinessmessaging.googleapis.com
    Content-Type: application/json
  2. The RBM platform sends the agent a capability check response indicating that the user's device can receive RBM messages.

    The agent receives:

    {
      "rbmEnabled": true,
      "features": [
        "REVOCATION",
        "RICHCARD_STANDALONE",
        "RICHCARD_CAROUSEL",
        "ACTION_CREATE_CALENDAR_EVENT",
        "ACTION_DIAL",
        "ACTION_OPEN_URL",
        "ACTION_SHARE_LOCATION",
        "ACTION_VIEW_LOCATION"
       ]
    }
  3. The agent sends the Hello, World! message to the RBM API, which passes it to the user's device.

    The agent sends:

    POST
    /v1/phones/+12223334444/agentMessages?messageId=123&agentId=welcome-bot
    HTTP/1.1
    Host: us-rcsbusinessmessaging.googleapis.com
    Content-Type: application/json
    {
      "contentMessage": {
        "text": "Hello, World!",
      }
    }
  4. The RBM platform sends the message to the user's device and sends a DELIVERED event to the agent.

    The agent receives:

    {
      "senderPhoneNumber": "+12223334444",
      "agentId": "welcome-bot@rbm.goog",
      "eventType": "DELIVERED",
      "eventId": "Ms6oOiEli6QS-fe8QFrmhfIg",
      "messageId": "123"
    }
  5. The user opens the message on their device, which sends a READ event to the agent.

    The agent receives:

    {
      "senderPhoneNumber": "+12223334444",
      "agentId": "welcome-bot@rbm.goog",
      "eventType": "READ",
      "eventId": "Ms6oOiEli6QS-ge9ZFsmgTj",
      "messageId": "123"
    }
  6. The user writes and sends a reply to the agent.

    The agent receives:

    {
      "senderPhoneNumber": "+12223334444",
      "agentId": "welcome-bot@rbm.goog",
      "messageId": "msg000999888777a",
      "sendTime": "2018-12-31T15:01:23.045123456Z",
      "text": "Hello to you!",
    }
  7. The RBM platform automatically sends the user's device a DELIVERED event when it receives the user's message.

  8. The agent sends a READ event in response to the user's message to let them know it was received and acknowledged.

    The agent sends:

    POST
      /v1/phones/+12223334444/agentEvents?eventId=1234&agentId=welcome-bot
      HTTP/1.1
      Host: us-rcsbusinessmessaging.googleapis.com
      Content-Type: application/json
      {
        "eventType": "READ",
        "messageId": "msg000999888777a"
    }