Welcome to the CPaaS Platform — a multi-channel messaging solution that lets you send SMS, WhatsApp, RCS, and Voice messages individually or in bulk.
Navigate to http://localhost:8088 and log in with your credentials.
Go to Templates and create a message template for your chosen channel.
WhatsApp and RCS templates require admin approval. SMS templates are auto-approved.
Use the Composer to send a single test message, or upload a CSV for bulk sends.
Go to http://localhost:8088 in your browser.
Enter the username and password provided by your administrator.
You will land on the Dashboard after a successful login.
The Dashboard is your home screen. It shows a summary of your messaging activity and account health at a glance.
| Card | What it Shows |
|---|---|
| Messages Today | Total messages sent by your account today |
| Success Rate | Percentage of messages delivered successfully |
| Cost Today | Total amount charged to your account today |
| Balance | Your current account balance (prepaid credits) |
A visual breakdown of messages sent per channel (SMS, WhatsApp, RCS, Voice) today and all-time.
Shows a breakdown of failed messages by error reason, so you can identify patterns and fix delivery issues.
The platform uses AI to analyze your usage patterns and provide insights such as:
Navigate to Composer in the sidebar to send individual messages for testing or one-off communications.
Choose SMS from the channel selector.
Enter the phone number in international format (e.g., +919876543210).
Choose an approved Sender ID from the dropdown. This is the name that appears in the "From" field.
Choose an approved SMS template. The message content will auto-fill.
Click Send. The message appears in Reports within seconds.
The WABA number assigned to your account is used automatically.
International format phone number. The recipient must have an active WhatsApp account.
Only APPROVED WhatsApp templates can be sent. Select from the dropdown.
Click Send. Status starts as SUBMITTED and updates to DELIVERED or FAILED via webhook.
Your RCS Bot must be active. Contact admin if RCS is unavailable.
International format. The recipient's device must support RCS.
Choose an approved RCS template (text or rich card).
Status is SUBMITTED_OPERATOR once accepted by the RCS gateway.
Fallback automatically re-sends a message on a different channel if the primary delivery fails. You can configure up to 2 fallback levels:
Example: Primary = RCS, Fallback 1 = WhatsApp, Fallback 2 = SMS
Navigate to Templates to create and manage your message templates. Templates must be created before you can send messages.
| Status | Meaning |
|---|---|
| PENDING | Submitted, waiting for admin approval |
| APPROVED | Ready to use in Composer and Campaigns |
| REJECTED | Rejected by admin — edit and re-submit |
Opens the template creation form.
A unique identifier for this template (e.g., otp_alert).
Type the SMS body. Use {variable} placeholders for dynamic values if needed.
Enter DLT Template ID and Message Category (UIC/MIC/SIC/Auth) for regulatory compliance.
SMS templates are auto-approved and immediately usable.
Media supports image, video, or document attachments.
Choose the WABA number for this template.
For Text: enter the message body. For Media: provide a media URL and the text body.
Template goes to PENDING status. Admin must approve before use.
RCS supports two template types:
| Type | What it Contains |
|---|---|
| Text Only | A text message body with up to 4 suggestion buttons (reply, call, URL) |
| Rich Card | An image or video with a title, description, and up to 4 suggestion buttons |
Choose the RCS bot associated with your account.
Add up to 4 buttons: Quick Reply, Dial (phone number), or Open URL.
The template is submitted directly to the Virtuoso RBM platform for registration.
Upload an image (JPG/PNG) or video (MP4) for the card visual.
The rich card template is submitted to Virtuoso RBM for registration.
Navigate to Campaigns to send messages to large lists of recipients by uploading a CSV file.
Your CSV file must have phone numbers in the first column in international format:
+919876543210 +919123456789 +919000012345
A descriptive name for tracking (e.g., diwali_promo_2025).
SMS, WhatsApp, or RCS.
Only approved templates appear here.
For SMS campaigns only.
Set a fallback channel and template for failed deliveries.
Upload your phone number file.
The campaign starts processing immediately. Messages are sent in the background.
| Status | Meaning |
|---|---|
| CREATED | Campaign created, not yet started |
| QUEUED | Messages are being queued for sending |
| PROCESSING | Messages actively being sent |
| COMPLETED | All records processed |
| FAILED | Campaign encountered a critical error |
The campaign list shows Total / Processed / Failed counts with a live progress update.
Navigate to Channels to manage your WhatsApp WABA accounts and RCS Bots.
A WABA (WhatsApp Business Account) is required before you can send WhatsApp messages.
On the Channels page, the WhatsApp tab shows your linked WABA numbers with their status and credentials.
| Field | Description |
|---|---|
| WABA Number | Your registered WhatsApp Business phone number |
| API Key | Authentication key for the WhatsApp gateway |
| Status | Active / Inactive |
An RCS Bot is your registered business identity on the Virtuoso RBM (Rich Business Messaging) platform.
| Field | Description |
|---|---|
| Display Name | Bot name shown to recipients |
| Bot ID | Virtuoso-assigned bot identifier |
| Bot Handle | Unique handle for the bot |
| API Key | Bot secret for authentication |
| Status | PENDING / ACTIVE / SUSPENDED |
Navigate to Sender IDs to manage the alphanumeric names that appear as the sender of your SMS messages.
Up to 11 characters, alphanumeric (e.g., MYBRAND). No spaces allowed.
Your Principal Entity ID registered on India's DLT portal. Required for compliance.
The request goes to PENDING and is reviewed by the admin.
| Status | Meaning |
|---|---|
| PENDING | Waiting for admin approval |
| APPROVED | Ready to use in SMS messages |
| REJECTED | Rejected by admin — check PE ID validity |
Navigate to Reports to view detailed delivery logs for all messages sent from your account.
| Status | Meaning |
|---|---|
| SUBMITTED | Message accepted and queued for delivery |
| SUBMITTED_OPERATOR | Message accepted by the carrier/gateway (RCS/WA) |
| DELIVERED | Confirmed delivered to the recipient's device |
| RETRYING | Primary delivery failed; fallback is being attempted |
| FAILED | Delivery failed on all channels (including fallbacks) |
| UNDELIVERED | Not delivered (e.g., number out of service) |
| READ | WhatsApp only — message was read by the recipient |
| Field | Description |
|---|---|
| Recipient | Destination phone number |
| Channel | Messaging channel used |
| Template | Template name used for this message |
| Sender ID | Sender name (SMS only) |
| Cost | Amount charged for this message |
| Created At | When the message was submitted |
| Sent At | When the message was dispatched to the carrier |
| Delivered At | When delivery was confirmed |
| Error Code | Carrier error code if delivery failed |
| Campaign | Campaign name (for bulk sends) |
Navigate to Report Summary for visual analytics — charts showing message volumes, success rates, and channel breakdowns over custom time periods.
Navigate to Billing to monitor your account balance and transaction history.
Contact your administrator to add credits to your account. Admins can adjust your balance directly from the User Management panel.
The Billing page shows a log of all credits and debits including:
| Category | Type |
|---|---|
| UIC | Utility-Initiated Conversation |
| MIC | Marketing-Initiated Conversation |
| SIC | Service-Initiated Conversation |
| Auth | Authentication (domestic) |
| Auth INT | Authentication (international) |
Navigate to Blacklist to manage a list of phone numbers that should never receive messages from your account.
Enter in international format (e.g., +919876543210).
Any future messages to this number from your account will be automatically blocked.
Click the delete icon next to a number to remove it from the blacklist. Future messages to that number will be allowed again.
Navigate to Settings to manage your account configuration.
Your API key is used to authenticate programmatic message submissions via the REST API. It is displayed on the Settings page.
Set a webhook URL to receive real-time delivery receipts (DLRs) to your own server. When a message is delivered, failed, or read, the platform will POST the status to this URL.
{
"messageId": "msg_abc123",
"recipient": "+919876543210",
"status": "DELIVERED",
"channel": "SMS",
"deliveredAt": "2025-03-06T14:30:00"
}
Optionally restrict API access to specific IP addresses. Only requests from whitelisted IPs will be accepted for API message submission.
The platform provides a REST API for programmatic message sending. Use this to integrate messaging into your own applications.
Include your API key in every request as a header:
X-API-Key: your-api-key-here
POST http://localhost:8081/api/v1/messages/submit
Content-Type: application/json
X-API-Key: your-api-key
{
"recipient": "+919876543210",
"channel": "SMS",
"templateId": 42,
"senderId": "MYBRAND"
}
POST http://localhost:8081/api/v1/messages/submit
Content-Type: application/json
X-API-Key: your-api-key
{
"recipient": "+919876543210",
"channel": "WHATSAPP",
"templateId": 15
}
GET http://localhost:8081/api/v1/messages/reports?accountId=1&recipient=+919876543210 X-API-Key: your-api-key
| Term | Definition |
|---|---|
| Template | A pre-defined message structure that must be approved before use |
| Sender ID | The alphanumeric name that appears as the SMS sender (e.g., MYBRAND) |
| WABA | WhatsApp Business Account — your registered WhatsApp business identity |
| RCS Bot | Your business identity on the Virtuoso Rich Business Messaging platform |
| DLT | Distributed Ledger Technology — India's regulatory system for commercial SMS |
| PE ID | Principal Entity ID — your registered entity ID on India's DLT portal |
| DLR | Delivery Receipt — a webhook notification when a message is delivered or fails |
| Fallback | Automatic retry on a different channel when the primary channel fails |
| Campaign | A bulk message send using a CSV file of phone numbers |
| Rich Card | An RCS message type with image/video + title + description + buttons |
| Blacklist | A list of phone numbers blocked from receiving messages |
| API Key | A secret token for authenticating programmatic API requests |
| UIC/MIC/SIC | WhatsApp conversation categories: Utility, Marketing, and Service |
| SUBMITTED_OPERATOR | Message accepted by the carrier/gateway and awaiting final delivery confirmation |