RCS Business Messaging: 5 Templates You Can Use Today
Building for RCS? The GSMA Universal Profile is 200+ pages. Most developers just need working templates and a validation checklist.
After building RCS X — an RCS emulator for developers — we distilled the most useful patterns into this guide.
Template 1: Text Message with Suggested Actions
The most useful RCS message type. Adds quick-reply buttons to guide user interaction.
{
"contentMessage": {
"text": "What would you like to do today?",
"suggestions": [
{
"action": {
"text": "📦 Track Order",
"postbackData": "track_order"
}
},
{
"action": {
"text": "🛒 Place Order",
"postbackData": "place_order"
}
},
{
"action": {
"text": "📞 Contact Support",
"postbackData": "contact_support"
}
},
{
"action": {
"text": "📍 Find Store",
"postbackData": "find_store"
}
}
]
}
}
Key rules:
- Max 4 suggestions per message
- Suggestion text: max 25 characters
-
postbackData: max 200 characters - Use emoji sparingly for visual hierarchy
Template 2: Rich Card (Vertical + Media)
The workhorse of RCS messaging. Image + title + description + buttons.
{
"contentMessage": {
"richCard": {
"standaloneCard": {
"cardOrientation": "VERTICAL",
"cardContent": {
"title": "Coffee Time ☕",
"description": "Start your morning with the perfect cup. Fresh roasted beans delivered to your door.",
"media": {
"height": "MEDIUM",
"contentInfo": {
"fileUrl": "https://your-cdn.com/images/coffee-hero.jpg",
"mimeType": "image/jpeg"
}
},
"suggestions": [
{
"action": {
"text": "Order Now",
"postbackData": "order_coffee"
}
},
{
"action": {
"text": "View Menu",
"postbackData": "view_menu"
}
}
]
}
}
}
}
}
Media height options:
-
SHORT— 112dp (thumbnail/icon) -
MEDIUM— 168dp (standard, recommended) -
TALL— 280dp (hero/feature image)
Image specs: Max 3.5MB JPEG, 1MB PNG. Recommended 600x340px for MEDIUM.
Template 3: Carousel (2 Cards)
Multiple cards in a swipeable carousel. Max 10 cards per carousel.
{
"contentMessage": {
"richCard": {
"carouselCard": {
"cardWidth": "MEDIUM",
"cardContents": [
{
"title": "Eiffel Tower",
"description": "Iconic landmark of Paris.",
"media": {
"height": "MEDIUM",
"contentInfo": {
"fileUrl": "https://your-cdn.com/images/eiffel.jpg",
"mimeType": "image/jpeg"
}
},
"suggestions": [
{
"reply": {
"text": "Book Eiffel Tour",
"postbackData": "book_eiffel"
}
}
]
},
{
"title": "Louvre Museum",
"description": "Worlds largest art museum.",
"media": {
"height": "MEDIUM",
"contentInfo": {
"fileUrl": "https://your-cdn.com/images/louvre.jpg",
"mimeType": "image/jpeg"
}
},
"suggestions": [
{
"reply": {
"text": "Book Louvre Tour",
"postbackData": "book_louvre"
}
}
]
}
]
}
}
}
}
Carousel rules: cardWidth is SMALL or MEDIUM. All cards must have the same width. Best engagement: 2-5 cards.
Template 4: Calendar Action
Add events directly to the users calendar from an RCS message.
{
"contentMessage": {
"text": "Join our product launch event!",
"suggestions": [
{
"action": {
"text": "Add to Calendar",
"postbackData": "add_launch_calendar",
"fallbackUrl": "https://your-site.com/event.ics",
"createCalendarEventAction": {
"startTime": "2026-06-15T10:00:00Z",
"endTime": "2026-06-15T12:00:00Z",
"title": "Product Launch 2026",
"description": "Join us for the live launch of our new product line."
}
}
}
]
}
}
Always include fallbackUrl for devices that dont support calendar actions.
Template 5: AI Agent Message (MCP-Compatible)
For AI agents sending to RCS via MCP server.
{
"rcsMessage": {
"messageId": "msg_agent_001",
"conversationId": "conv_abc123",
"participantId": "+1234567890",
"type": "text",
"text": "Hello from your AI assistant! 🤖 How can I help you today?",
"suggestions": [
{ "action": { "text": "Ask a Question", "postbackData": "ask_question" } },
{ "action": { "text": "View Options", "postbackData": "view_options" } }
]
}
}
GSMA Validation Quick Checklist
Before carrier submission, verify:
- [ ]
contentMessagewrapper is present - [ ] Valid JSON (no trailing commas, proper quotes)
- [ ] Text length ≤ 3072 characters
- [ ] UTF-8 encoding throughout
- [ ]
cardOrientationis VERTICAL or HORIZONTAL (required for rich cards) - [ ]
titlemax 200 chars,descriptionmax 2000 chars - [ ] Media
heightis SHORT, MEDIUM, or TALL - [ ]
fileUrlis HTTPS (HTTP is rejected) - [ ] Image max 3.5MB JPEG, 1MB PNG
- [ ] Video max 100MB, MP4 H.264
- [ ] Max 4 suggestions per message/card
- [ ] Suggestion text max 25 characters
- [ ]
postbackDatamax 200 characters - [ ] No duplicate
postbackDatawithin same message - [ ]
messageIdis unique (UUID recommended) - [ ] Brand is registered with carrier
- [ ] Fallback SMS message prepared
Need Your Campaign Validated?
RCS Campaign Validation Service — $49/campaign
We validate your RCS payloads against GSMA specs, test rendering across devices on our emulator, and send you a detailed report with fixes.
- ✓ GSMA compliance check
- ✓ Cross-device rendering test
- ✓ Carrier submission review
- ✓ Detailed fix report with code corrections
- ✓ 24-hour turnaround
- ✓ 2 free re-validations
Email morsy@specialized.live to get started.
SMS → RCS Migration: The 3 Patterns That Matter Most
Pattern 1: Text → Rich Card
SMS: "Your order shipped! Track: https://..."
RCS: Rich card with tracking image + Track Package button
Pattern 2: Keyword → Suggested Action
SMS: "Reply YES to confirm"
RCS: Suggestion button (one tap, zero parsing errors)
Pattern 3: Plain Date → Calendar Action
SMS: "Appointment at 3pm on Friday"
RCS: Calendar Action (one tap to add to calendar)
Key principle: Replace typed input with suggested actions wherever possible. This eliminates parsing errors, reduces user effort, and captures intent precisely.
Free Templates on GitHub
All 5 templates are available on GitHub: Dr-Agentic/rcs-templates
Test Your Payloads Free
Use RCS X to verify rendering, test interactions, and validate payloads — without burning carrier API quotas.
Built by the team behind RCS X — the professional RCS emulator for developers.
Top comments (0)