Best practices

This page provides best practices for creating effective and engaging RCS Business Messaging experiences, covering both technical implementation and conversational design.

Technical guidelines

Check the device's capabilities

Before starting a conversation with a user, verify that the user's device can receive RCS messages. To identify the user's capabilities, send a capability check, and tailor your agent's interactions accordingly. Only interact with users in ways that their devices support. If a user's device isn't RCS enabled, set up a fallback method of communication with another channel, such as SMS.

Respect the maximum message size

There are limits on the maximum size of an RBM message and the media file it can contain. See Maximum messages sizes for details.

Make sure your logo and hero image display well

  • Leave enough space around the logo to accommodate cropping and maintain visual integrity.
  • Avoid stretching or distorting the logo or hero image, as this can negatively impact brand perception.
  • Test the logo and hero image in both light and dark modes to ensure optimal visibility and aesthetics.

For more resources to help you design your logo or troubleshoot issues, see Logo design guidelines.

  • Design the logo with circular cropping in mind, ensuring it maintains balance and clarity.
  • Center the logo within the image to avoid cropping issues.
  • For logos with transparent backgrounds, ensure sufficient contrast against both light and dark backgrounds to accommodate dark mode. If unsure, use a solid white background.

Hero image

  • Use the 45:14 aspect ratio to prevent unwanted cropping and ensure a visually appealing display.

Consider the logo overlap when designing the hero image, ensuring key elements aren't obscured.

Check for duplicate incoming messages

When you check for and respond to incoming messages from users, check the messageId and verify that you haven't already received and responded to the message.

With distributed systems, there are two ways of sending messages:

  • At most once: The system sends a message once, but if there are network or communication errors along the way, the message may not be received.
  • At least once: The system might send a message multiple times, but the message can be received even when there are network or communication errors.

Google Cloud Pub/Sub uses the at least once system. While this can lead to duplicate incoming messages, it's straightforward to de-duplicate messages by tracking messageId strings. If you've already received a message, it's safe to disregard any additional messages you receive with the same messageId.

For more information about receiving messages, see Handle incoming events.

Implement retries with exponential backoff

When calling any API, it's possible for a call to fail because of infrastructure issues, service overload, QPS limits, and other errors. To recover gracefully from failed API calls, implement retries with exponential backoff.

Using retries with exponential backoff, your infrastructure automatically does the following:

  1. Identifies a failed API call.
  2. Sets the initial wait duration and the maximum number of retries.
  3. Pauses for the wait duration.
  4. Retries the API call.
  5. Assesses the API call response:

    • If a success, proceeds with the next step in the workflow.
    • If a failure, increases the wait duration and returns to step 3.
    • If a failure after the maximum number of retries, enters a fail state.

Ideal wait durations and the ideal maximum number of retries vary by use case. Determine these numbers based on your infrastructure and workflow latency requirements.

Optimize API performance with regional endpoints

To optimize API performance for better latency:

  • Use the closest endpoints to the user's region.

    The following table provides recommendations on which regional RBM endpoints to use depending on the user's phone number.

    Phone number prefix Recommended endpoint Geographic region
    +1 us-rcsbusinessmessaging.googleapis.com Americas
    +2 europe-rcsbusinessmessaging.googleapis.com Europe
    +3 europe-rcsbusinessmessaging.googleapis.com Europe
    +4 europe-rcsbusinessmessaging.googleapis.com Europe
    +5 us-rcsbusinessmessaging.googleapis.com Americas
    +6 asia-rcsbusinessmessaging.googleapis.com Asia
    +7 europe-rcsbusinessmessaging.googleapis.com Europe
    +8 asia-rcsbusinessmessaging.googleapis.com Asia
    +9 asia-rcsbusinessmessaging.googleapis.com Asia
    Default us-rcsbusinessmessaging.googleapis.com Americas
  • Consider locating servers near the chosen endpoint.

    See https://www.google.com/about/datacenters/locations/ for Google's data centers.

For more information about identifying the agent's region, see the Create an agent documentation.

Conversational UI and user experience

Conversational UI, not app UI

RBM agents are well suited for providing efficient and specific tasks to users in a conversational user interface. The best-designed agents keep interactions focused, clear to understand, and structured like natural conversation.

Agents can't rely on the visual UI of an app or web page and shouldn't attempt to mimic it. Instead, agents need to rely on carefully crafted conversations that address users' needs by guiding them with verbal cues, suggestions, and good error-handling.

Agents also shouldn't mimic phone trees, or interfaces that rely on users responding with a number that represents a given action. Users should be able to communicate with agents naturally, much like they would communicate with another person in a conversation.

Start a conversation

The start of a conversation sets the user's expectations of what an agent can do. Begin conversations on a strong note: show your agent's personality, front-load information your users care about, and share what your agent is capable of. Give users clear options for interacting with your agent and continuing the conversation.

  • Show your agent's personality: Set the tone by greeting the user and introducing your brand. If you create a persona for the agent, such as a virtual assistant or digital concierge, be clear that it's a chatbot and not a real person. You can set the agent name to match the persona. An avatar is a great way to reinforce your image. It can be your logo, but a graphic cartoon-style character works well too.

  • Share what your agent is capable of: A good greeting message makes it clear what the conversation offers. It explains the agent's capabilities at a high level. It also includes suggested replies and actions to guide users down specific paths. Use these suggestions to help users navigate the conversation and understand the tasks the agent can assist with.

Conversation showing logo, name, and description

Write clear and consistent messages

Send messages that are easy for users to understand and respond to. Create message text that prompts users to respond. Maintain a consistent style, format, and pace to establish trust with users.

Keep the following additional best practices in mind when creating message text:

  • Don't create dead ends. Each message should lead to a meaningful next step.

    • If the user journey has a task with multiple steps, use discourse markers to guide the user through the process.

    For example, Now…, And…, Got it! Here you go…

    • Be concise because suggested replies and actions have a maximum of 25 characters.
    • If the conversation includes a handoff, a quick acknowledgement can smooth the transition.

    For example, "Alright. Your account manager will take over from here."

    For example, "Perfect! I think I know what you're looking for." and provide a link to your website.

  • Acknowledge the user's message with a word or phrase of recognition.

    For example, "Great choice!", "OK", "Alright", or "Got it".

  • Address the user directly by using their name (if known) or the pronoun "you." Avoid referring to the user as "me" or "I," as this can create confusion.

  • For titles and labels, use sentence case, not title case.

    For example, "Account statement", not "Account Statement".

  • Use contractions, which is appropriate even for agents with a serious or elevated tone.

    For example, "it's" is more conversational than "it is."

  • Use exclamation points sparingly.

  • Use the serial comma, that is, "A, B, and C", not "A, B and C".

  • Write numbers as digits.

    For example, "1, 2, 3", not "one, two, three".

  • When using emoji, make sure a playful tone fits the use case.

    For example, users who are booking a tow truck or looking up their health test results might not be in the mood.

Keep messages in order

If you send multiple messages in sequence, it's important that users receive those messages in order. Messages with media take longer to process than text-only messages. To make sure users receive messages in the correct order, wait until you receive a 200 OK response for a message before sending the next one in the sequence.

Create engaging conversations with suggested replies and suggested actions

Suggested replies and actions are powerful tools to guide and enhance user conversations. They can follow a message or a rich card and offer options to continue or change the topic of the conversation.

  • Suggested replies: Help users quickly respond to your agent by providing predefined options. Use suggested replies whenever possible, especially when specific responses are expected.

    Sample dialogs with and without suggested replies

  • Suggested actions: Allow your agent to integrate with device features, streamlining tasks like calling support or finding locations.

Follow these key considerations to create more engaging and efficient conversations:

  • Relevance: Ensure suggestions align with the current conversation.
  • Conciseness: Limit the number of suggestions to avoid overwhelming users.
  • Clarity: Use clear and concise language for the suggestion text.

Help the user

Your agent should respond to HELP messages from users and educate them about your agent's capabilities. A list of suggested replies tailored to your agent's capabilities can transform a poor user experience into a useful one.

Respect when users don't want messages

When a user indicates that they'd like to stop receiving messages from your agent, you need to respect their choice. Your agent must understand when users reply 'STOP' and react appropriately. Your agent should understand the various ways that users might communicate their want to stop receiving messages, including any and all languages they might use to communicate this.

Consult the laws and best practices for your country of operation on how to respond to 'STOP' and other mandatory commands.

For example, refer to the CTIA best practices.

Rich cards guidelines

Create effective rich cards

Rich cards let you combine media, text, and suggestions in one message. As such, media shouldn't be the only element in a rich card, and suggested replies or suggested actions should always accompany a standalone rich card.

Rich card displaying only an image and action

Vertical rich cards

Vertical rich cards display horizontal media at the top of the card. Horizontal media should have an aspect ratio of 2:1, 16:9, or 7:3.

When you send media to a user, you should be respectful of the user's resources. When horizontal media has a 2:1 ratio, the optimal resolution for the media is 1440x720 px with a maximum recommended file size of 2 MB for images and 10 MB for video. The optimal resolution for the media's thumbnail is 770x335 px with a recommended file size of 40 kB and a recommended maximum size of 100 kB.

Horizontal rich cards

Horizontal rich cards display vertical media on the left or right side of the card. Vertical media should have an aspect ratio of 3:4.

When you send media to a user, you should be respectful of the user's resources. When vertical media has a 3:4 ratio, the optimal resolution for the media is 768x1024 px with a maximum recommended file size of 2 MB for images and 10 MB for video. The optimal resolution for the media's thumbnail is 250x330 px with a recommended file size of 40 kB and a recommended maximum size of 100 kB.

Rich card carousels

Rich card carousels are ideal for browsing content or various options, but they should only be used when there are multiple items to read or compare, such as data plans or devices. The first item in a carousel should be the optimal choice in any given situation, and the reasoning for why it is the optimal choice should be communicated to the user.

The suggestion chips that appear after a carousel should help move the conversation forward or change its direction. Suggestion chips shouldn't repeat the options listed within the carousel and are not selection tools for the items presented in the carousel.

Example of a rich card carousel

Media in rich card carousels

Rich card carousels display horizontal media at the top of rich cards. Horizontal media in carousels should have an aspect ratio of 4:3.

When you send media to a user, you should be respectful of the user's resources. When the media has a 4:3 aspect ratio, the optimal resolution for the media is 960x720 px with a maximum file size of 1 MB for images and 5 MB for video. The optimal resolution for the media's thumbnail is 605x452 px with a recommended file size of 40 kB and a recommended maximum size of 100 kB.