Before You Begin
RCS Business Scenarios
This topic gives examples of how you can design an RCS message using multimedia, rich cards, and action buttons. We start by showing how an SMS message looks and then show how different types of RCS messages display on a mobile phone. We also show the corollary code for each example.
For context we'll use a marketing use case since it’s easy to see how to go beyond just giving users information and instead providing compelling content that's appealing and more interesting to engage with. Our fictitious business is called SeattleSlaps. It’s a small but growing food business that has a fleet of food trucks servicing the busy high-tech sections of metropolitan Seattle. SeattleSlaps became an overnight hit with their creative sandwiches featuring locally sourced ingredients and served in recyclable packaging. They are already using SMS to let customers order online, but the marketing manager, Ellen, wants to make their messages more enticing.
Ellen calls OpenMarket for advice. “Steve, I'm looking for ways to make our mobile messages more appealing. Any ideas?"
“Definitely,” Steve replies, “I've got to show you how RCS works. I'll get a couple pictures from your website and build you a demo.”
“Awesome,” says Ellen. “Can't wait to see it!"
SMS messages: reach is unmatched, visual appeal not so great
SeattleSlaps began using SMS as soon as they launched their business because they knew it was the best way to reach their audience. Busy, hungry people need a quick and reliable way to order a good lunch, and SMS let SeattleSlaps send information to consumers and drive online orders.
Here's how a typical SeattleSlaps SMS message looks, along with the sample JSON for the MT message request. (Note that the code sample does not include all of the optional parameters. See the HTTP Global SMS API for details.)
Sample SMS text message
Sample JSON for an SMS text message (using our HTTP Global SMS API)
{
"mobileTerminate" : {
"interaction": "two-way",
"options": {
"note1": "Seattle customers",
"programId": "1234",
"flash": "false"
},
"destination": {
"address": "12125550123",
"mobileOperatorId": 383
},
"source": {
"ton": 3,
"address": "222111"
},
"message": {
"content": "Monday special for daily members: $4.99 sand w/chips. Valid 11:00am-1:00pm today only! Head to: https://seaslaps.com/mon-special.",
"type": "text",
"validityPeriod": "259200"
},
"delivery": {
"receiptRequested": "final",
"url": "https:my.example.com/receiver.php"
}
}
}
Branding the message with a company logo
Simply branding a text message with the SeattleSlaps logo gives the message more visual appeal and lets SeattleSlaps customers instantly recognize who the message is from.
Another important point Steve makes to Ellen is that a branded message can be delivered to mobile devices that are and aren't RCS-compatible. This capability is called "SMS fallback" and allows for the fact that not all devices are capable (yet) of displaying an RCS message. SMS fallback means the message is delivered as an SMS when necessary. You can read more about SMS fallback in Before You Begin.
Sample branded message
Sample JSON for a branded message
{
"endUser":{
"phoneNumber":"12065551234",
"mobileOperatorId":"77"
},
"variables":{
"request":{
"rcs":{
"text":{
"message":"Monday special for club members! Get a SeattleSlap sandwich for only $4.99. Valid between 11:30AM and 1:00PM."
},
"sms":{
"messageContent":"Monday special for club members! Get a SeattleSlap sandwich for only $4.99. Valid between 11:30AM and 1:00PM."
}
}
}
}
}
Adding visual pizzazz with images
Who isn’t more tempted to order a panini for lunch when a picture of one is right front of you? That’s exactly what Ellen thinks after seeing the RCS demo. And in fact, between 2018 and 2019, OpenMarket observed a five-fold increase in MMS traffic. That’s because just about any mobile message is going to attract more attention, help communicate your information, and drive sales. For technical details see the API reference.
Sample messages with images
Sample JSON to include an image
{
"endUser":{
"phoneNumber":"12065551234",
"mobileOperatorId":"77"
},
"variables":{
"request":{
"rcs": {
"text":"Monday special for club members! Get a SeattleSlap sandwich for only $4.99. Valid between 11:30AM and 1:00PM."
},
"media": {
"fileUrl":"https://www.aws.com/sandwich.jpeg",
"mimeType":”image/jpeg",
"fileSize": 5663
}
},
"sms": {
"messageContent": "Monday special for club members! Get a SeattleSlap sandwich for only $4.99. Valid between 11:30AM and 1:00PM."
}
}
}
Getting customers to engage via action buttons
With an RCS message, not only is the communication richer with multimedia content, but customers can interact with elements like action buttons. In RCS lingo these are called chip lists. When Steve shows Ellen a demo, she immediately sees how app-like the message is becoming.
“Wow,” says Ellen, “RCS makes it really easy for my customers to order just what they want...right from their message inbox. That’s amazing!”
In addition to letting customers order more easily, she can also use action buttons to gather feedback, manage a customer inquiry, or even let her customers vote for their most popular sandwich. For technical details see the API reference.
Sample message with image and action buttons
Sample code to include an image and action buttons
{
"endUser":{
"phoneNumber":"12065551234",
"mobileOperatorId":"77"
},
"variables":{
"request":{
"rcs": {
"text":"Today's special! Get our famous panini for just $4.99. Valid July 10 between between 11:30AM and 1:00PM."
},
"media": {
"fileUrl":"https://www.aws.com/sandwich2.jpeg",
"mimeType":"image/jpeg",
"fileSize": 5663,
"suggestions": [{
"action": {
"displayText": "Our website!",
"urlAction": {
"url": "http://www.seattleslaps.com"
}
}
}]
}
},
"sms": {
"messageContent": "Monday special for club members! Get a SeattleSlap sandwich for only $4.99. Valid between 11:30AM and 1:00PM."
}
}
}
}
Combining images and action buttons
RCS supports rich cards for an even fuller user experience. A rich card combines an image with one or more action buttons to give the end user an experience they’re very familiar with on web pages and mobile apps.
Ellen is sending a rich card, which allows her to send a "card" that includes a number of clickable actions, along with a photo and text of the shop's latest deal. With one tap, a customer can choose to download the Seattle Slaps app, open the shop's location using the default map application, and call the closest shop to place an order. For technical details see the API reference.
Sample message with rich card
Sample code for a rich card
{ "endUser":{ "phoneNumber":"12065551234", "mobileOperatorId":"77" }, "variables":{ "request":{ "rcs": { "richCard": { "cardOrientation": "VERTICAL", "imageAlignment": "LEFT", "cardHeight": "MEDIUM", "cards": [{ "title": "Today's DEAL", "description": "Today's special! Get our famous panini for just $4.99. Valid July 10 between 11:30AM and 1:00PM", "media": { "fileUrl": "http://www.aws.com/panini.jpeg", "mimeType": "image/jpeg", "fileSize": 1234567 }, "suggestions": [{ "action": { "displayText": "Our Website!", "urlAction": { "url": "http://www.seattleslaps.com/" } } }, { "action": { "displayText": "Map", "locationAction": { "latitude": 47.611618, "longitude": -122.347666, "label": "Seattle Slaps" } } }, { "action": { "displayText": "Call Us to Order", "dialAction": { "phoneNumber": "+18774126189" } } } ] }] } }, "sms": { "messageContent": "Monday special for club members! Get a SeattleSlap sandwich for only $4.99. Valid between 11:30AM and 1:00PM." } } } }
Adding a carousel with actions
Once Steve demonstrates how an RCS message can include a carousel, Ellen is eager to showcase several lunch offerings in one message.
A carousel contains multiple rich cards, each one having its own actions or suggestions. With one tap of an action on a rich card, a SeattleSlaps customer can pre-order a sandwich or retrieve nutritional value of a featured sandwich. For technical details see the API reference.
Sample message with carousel and actions
Sample code to include a carousel and actions
{
"endUser":{
"phoneNumber":"12065551234",
"mobileOperatorId":"77"
},
"variables":{
"request":{
"rcs": {
"text": {
"message": "Monday special for club members! Get a SeattleSlap sandwich for only $4.99. Valid between 11:30AM and 1:00PM."
},
"richCard": {
"cardOrientation": "VERTICAL",
"imageAlignment": "LEFT",
"cardHeight": "MEDIUM",
"cards": [
{
"title": "Chicken Slap",
"description": "Healthy choice with chicken and lots of veggies, with a small salad and vitamin water.",
"media": {
"fileUrl": "http://www.aws.com/chickenslap.jpeg",
"mimeType": "image/jpeg",
"fileSize": 1234567
},
"suggestions": [ {
"action": {
"displayText": "Pre-Order",
"urlAction": {
"url": "http://www.seattleslaps.com/chickenslap/order"
}
}
},
{
"action": {
"displayText": "Nutritional Info",
"urlAction": {
"url": "http://www.seattleslaps.com/chickenslap/nutrition"
}
}
}
]
},
{
"title": "Spicy Pork",
"description": "BBQ pork on a hoagie, with achiote, pineapple sambal, cilantro, and serrano chili.",
"media": {
"fileUrl": "http://www.aws.com/.jpeg",
"mimeType": "image/jpeg",
"fileSize": 1234567
},
"suggestions": [ {
"action": {
"displayText": "Pre-Order",
"urlAction": {
"url": "http://www.seattleslaps.com/porkbelly/order"
}
}
},
{
"action": {
"displayText": "Nutritional Info",
"urlAction": {
"url": "http://www.seattleslaps.com/porkbelly/nutrition"
}
}
}
]
}
]
}
},
"sms": {
"messageContent": "Monday special for club members! Get a SeattleSlap sandwich for only $4.99. Valid between 11:30AM and 1:00PM."
}
}
}
}
Nuances and limitations to be aware of
When using a leading edge technology, it’s always wise to be aware of the little-but-significant requirements as well as limitations. Following are some that we’ve encountered in our work with early adopters. Always feel welcome to reach out to OpenMarket (in the US, UK, and Australia) with questions about your own implementation.
Messages
- Message size must be between 1 and 8192 bytes
- Message concatenation is not supported
- If the message size exceeds the allowed limit the message will be rejected
Buttons (actions)
- The text can contain up to 25 characters
Images
- Image file size should not exceed 2 MB
- Image sizes can be short, medium, or tall. In structured content, a card will be set by default to medium
- When sharing a vertical image (horizontal card), the optimal resolution is 764 x 1024 (3:4 ratio)
- When sharing a horizontal image (vertical card), the optimal resolution is is 1440 x 720 (3:4 ratio)
- If image size added doesn’t fit the dimensions of the card’s height, the image preview is chosen by zooming and cropping the image
Rich cards and carousels
- A rich card must at a minimum contain one image or title.
- A rich card can have up to 4 action buttons
- Carousels can have up to 10 scrollable cards