RCS Messaging
RCS (Rich Communication Services) is the SMS upgrade for Android phones. It delivers rich cards with images, carousels, suggested actions, and read receipts—all natively on Android without requiring an app.
What is RCS?
RCS is like iMessage for your brand. Instead of plain text SMS, you can send:
- Rich cards — Images, descriptions, action buttons
- Carousels — Swipeable product catalogs
- Suggested actions — Quick reply buttons
- Read receipts — Know when messages are read
- Typing indicators — Show when you're responding
RCS is delivered natively on Android (70%+ of global phones) without requiring an app download.
RCS Setup
RCS requires carrier partnership. Contact us to set up RCS for your business.
- Go to Settings → Channels → RCS
- Click Request RCS Setup
- Our team will guide you through carrier registration
- Once approved, you can start sending RCS messages
Sending RCS Messages
Rich Card
A rich card is a single card with an image, title, description, and action buttons.
curl -X POST \
https://your-msghub.com/api/v1/messages/send \
-H "X-API-Key: mk_live_..." \
-H "Content-Type: application/json" \
-d '{
"channel": "rcs",
"to": "+919876543210",
"type": "card",
"card": {
"title": "Sony WH-1000XM5",
"description": "Industry-leading noise cancellation. 30-hour battery.",
"media": {
"url": "https://example.com/headphones.jpg",
"type": "image"
},
"suggestions": [
{
"action": "OPEN_URL",
"text": "Buy Now",
"url": "https://example.com/product/headphones"
},
{
"action": "OPEN_URL",
"text": "See More Colors",
"url": "https://example.com/product/headphones/colors"
}
]
}
}'
Carousel
A carousel is multiple cards that users can swipe through.
curl -X POST \
https://your-msghub.com/api/v1/messages/send \
-H "X-API-Key: mk_live_..." \
-H "Content-Type: application/json" \
-d '{
"channel": "rcs",
"to": "+919876543210",
"type": "carousel",
"carousel": {
"cards": [
{
"title": "Laptop",
"description": "15-inch display, 16GB RAM",
"media": {
"url": "https://example.com/laptop.jpg",
"type": "image"
},
"suggestions": [
{
"action": "OPEN_URL",
"text": "View",
"url": "https://example.com/product/laptop"
}
]
},
{
"title": "Phone",
"description": "6.7-inch AMOLED, 128GB storage",
"media": {
"url": "https://example.com/phone.jpg",
"type": "image"
},
"suggestions": [
{
"action": "OPEN_URL",
"text": "View",
"url": "https://example.com/product/phone"
}
]
}
]
}
}'
Suggested Actions
Add quick reply buttons to any message.
curl -X POST \
https://your-msghub.com/api/v1/messages/send \
-H "X-API-Key: mk_live_..." \
-H "Content-Type: application/json" \
-d '{
"channel": "rcs",
"to": "+919876543210",
"type": "text",
"body": "Do you want to confirm your order?",
"suggestions": [
{
"action": "REPLY",
"text": "Yes, confirm",
"postbackData": "order_confirmed"
},
{
"action": "REPLY",
"text": "No, cancel",
"postbackData": "order_cancelled"
}
]
}'
RCS Message Types
| Type | Description | Use Case |
|---|---|---|
| text | Plain text with optional suggestions | Quick messages, confirmations |
| card | Single rich card with image and buttons | Product showcase, offers |
| carousel | Multiple swipeable cards | Product catalog, recommendations |
| file | Document, PDF, or media file | Receipts, invoices, reports |
Suggested Actions
Suggested actions are quick reply buttons that users can tap.
Action Types
- REPLY — Send a text reply
- OPEN_URL — Open a URL
- DIAL — Call a phone number
- COPY_CODE — Copy a code to clipboard
- CREATE_CALENDAR_EVENT — Add event to calendar
Example: REPLY Action
{
"action": "REPLY",
"text": "Yes, confirm",
"postbackData": "order_confirmed"
}
When the user taps "Yes, confirm", Msghub receives:
{
"event": "message.received",
"channel": "rcs",
"from": "+919876543210",
"message": {
"type": "text",
"text": "Yes, confirm",
"postbackData": "order_confirmed"
}
}
Example: OPEN_URL Action
{
"action": "OPEN_URL",
"text": "Buy Now",
"url": "https://example.com/product"
}
Example: DIAL Action
{
"action": "DIAL",
"text": "Call us",
"phoneNumber": "+1-800-EXAMPLE"
}
CTR Tracking
RCS provides click-through rate (CTR) tracking. Know exactly which users clicked which buttons.
Receiving Click Events
{
"event": "message.clicked",
"messageId": "msg_abc123",
"channel": "rcs",
"from": "+919876543210",
"action": "OPEN_URL",
"url": "https://example.com/product",
"clickedAt": "2024-04-08T10:30:05Z"
}
CTR Analytics
View CTR in the dashboard:
- Go to Campaigns → [Campaign Name]
- Scroll to Analytics
- See:
- Total sent — Number of messages sent
- Delivered — Number delivered
- Clicked — Number of clicks
- CTR — Click-through rate (%)
Delivery Status
RCS provides detailed delivery status:
{
"event": "message.delivered",
"messageId": "msg_abc123",
"channel": "rcs",
"status": "delivered",
"deliveredAt": "2024-04-08T10:30:05Z"
}
Possible statuses:
sent— Message sent to carrierdelivered— Message delivered to phoneread— Message read by recipientfailed— Message delivery failed
RCS Campaigns
Send RCS messages to multiple contacts using campaigns.
Create a Campaign
curl -X POST \
https://your-msghub.com/api/v1/campaigns \
-H "X-API-Key: mk_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "Product Launch",
"channel": "rcs",
"message": {
"type": "carousel",
"carousel": {
"cards": [
{
"title": "New Laptop",
"description": "15-inch display, 16GB RAM",
"media": {
"url": "https://example.com/laptop.jpg",
"type": "image"
},
"suggestions": [
{
"action": "OPEN_URL",
"text": "Buy Now",
"url": "https://example.com/product/laptop"
}
]
}
]
}
},
"recipients": {
"segment": "tech_enthusiasts"
},
"sendAt": "2024-04-08T18:00:00Z"
}'
Monitor Campaign
curl -X GET \
https://your-msghub.com/api/v1/campaigns/camp_xyz789 \
-H "X-API-Key: mk_live_..."
Response includes:
- Sent — Number of messages sent
- Delivered — Number delivered
- Clicked — Number of clicks
- CTR — Click-through rate
Best Practices
Rich Card Design
- Use high-quality images — 1200x628px recommended
- Keep descriptions short — 2-3 sentences max
- Clear call-to-action — "Buy Now", "Learn More", "View Details"
- Mobile-first — Design for small screens
Carousel Design
- Limit to 3-5 cards — More than 5 is overwhelming
- Consistent styling — Same layout for all cards
- Swipeable — Make it obvious users can swipe
- Clear navigation — Show which card is active
Suggested Actions
- Limit to 3 buttons — More than 3 is confusing
- Clear labels — "Yes/No", "Buy/Cancel", "Call/Email"
- Relevant actions — Match the message context
- Mobile-friendly — Large enough to tap easily
Timing
- Send during business hours — 9 AM - 6 PM
- Respect time zones — Schedule for recipient's local time
- Avoid weekends — Unless it's time-sensitive
Troubleshooting
Messages not sending
- Check phone number — Must be E.164 format (+919876543210)
- Check RCS setup — Is RCS connected in Settings?
- Check carrier — Is the recipient's carrier RCS-enabled?
- Check content — Is the message properly formatted?
Low delivery rate
- Check carrier coverage — RCS is not available on all carriers
- Check phone — Is the recipient using an Android phone?
- Check network — Is there a connectivity issue?
Low CTR
- Check design — Is the card visually appealing?
- Check CTA — Is the call-to-action clear?
- Check timing — Are you sending at the right time?
- Check relevance — Is the message relevant to the recipient?