---
title: "How to Build an RCS Business Messaging Campaign with Twilio"
description: "Rich Communication Services (RCS) upgrades SMS with branded conversations, images, carousels, and read receipts delivered through the default messaging app. Twilio Programmable Messaging supports RCS as a first-class channel, reusing the same API as SMS. This tutorial covers building an RCS campaign in Node.js, including RCS Sender registration (a manual review process with test device support), creating a twilio/card content template with dynamic variables, and broadcasting personalized messages from a JSON list. Delivery status is tracked through a status callback webhook exposed via ngrok, and replies are captured through an inbound webhook when users tap suggested reply buttons. The guide also includes troubleshooting for common issues such as messages falling back to SMS, error codes 30001 and 63001, and webhook configuration errors."
---

# How to Build an RCS Business Messaging Campaign with Twilio

[Twilio](https://yomu.fyi/company/twilio) · Dhruv Patel · Sep 28, 2026

**Type:** Tutorial

## Summary

Rich Communication Services (RCS) upgrades SMS with branded conversations, images, carousels, and read receipts delivered through the default messaging app. Twilio Programmable Messaging supports RCS as a first-class channel, reusing the same API as SMS. This tutorial covers building an RCS campaign in Node.js, including RCS Sender registration (a manual review process with test device support), creating a twilio/card content template with dynamic variables, and broadcasting personalized messages from a JSON list. Delivery status is tracked through a status callback webhook exposed via ngrok, and replies are captured through an inbound webhook when users tap suggested reply buttons. The guide also includes troubleshooting for common issues such as messages falling back to SMS, error codes 30001 and 63001, and webhook configuration errors.

## Context

RCS Business Messaging is an upgrade to SMS that enables branded conversations with images, carousels, and interactive buttons. Twilio Programmable Messaging supports RCS as a first-class channel, allowing developers to reuse the same API they use for SMS. This tutorial walks through building an RCS campaign in Node.js, covering sender registration, content template creation, broadcasting, and webhook integration for delivery tracking and reply capture.

## Approach / What changed

The tutorial provides a step-by-step approach: register an RCS Sender and add it to a Messaging Service, create a twilio/card content template with dynamic variables using the Content API, build a Node.js application that reads a JSON recipient list and sends personalized messages via the Twilio helper library, and configure webhooks using ngrok to track delivery status and capture replies. It also includes troubleshooting steps for common errors.

## Takeaways

- RCS Sender registration requires manual brand review, but test devices can receive messages immediately during the review process.
- The twilio/card content type supports dynamic variables for personalization and actions including URL buttons and quick replies with IDs.
- Delivery status and inbound replies are handled via webhooks; status callbacks provide real-time message state changes, and inbound webhooks capture suggested reply taps.

## FAQ

### How do I register an RCS Sender with Twilio?

Log in to the Twilio Console, navigate to RCS under Numbers & Senders, click Create new Sender, and submit your brand details. Add test devices to the Tester sender section to receive messages immediately during the manual review process.

### What content types does RCS support in Twilio?

Twilio supports the twilio/card type for rich cards with title, subtitle, body, media, and actions such as URL buttons and QUICK\_REPLY buttons with IDs. Dynamic variables like {{1}} allow personalization per recipient.

### How do I track delivery status of RCS messages?

Set up a status callback webhook URL in the Twilio Console for your RCS Sender. Twilio will POST status updates (queued, sent, delivered, read, failed) to that URL, allowing real-time campaign measurement.

**Tags:** [API](https://yomu.fyi/topic/api), [Messaging](https://yomu.fyi/topic/messaging), [Node.js](https://yomu.fyi/topic/node-js), [Twilio](https://yomu.fyi/topic/twilio), [Webhooks](https://yomu.fyi/topic/webhooks)

- Source: [Twilio](https://www.twilio.com/en-us/blog/developers/tutorials/product/build-rcs-business-messaging-campaign-twilio)
- Source URL: https://www.twilio.com/en-us/blog/developers/tutorials/product/build-rcs-business-messaging-campaign-twilio
- Ingested by Yomu: 2026-10-02T03:00:10.384Z

[Read original post](https://www.twilio.com/en-us/blog/developers/tutorials/product/build-rcs-business-messaging-campaign-twilio)
