Product Manual

CPaaS Platform

User Guide

Version 1.0  |  For User Role  |  Port 8088

Table of Contents

  1. Getting Started
  2. Logging In
  3. Dashboard
  4. Sending a Single Message (Composer)
  5. Managing Templates
  6. Bulk Campaigns
  7. Channel Identities
  8. Sender IDs
  9. Reports & Message Logs
  10. Billing & Balance
  11. Blacklist
  12. Settings & API Keys
  13. Using the API
  14. Glossary

1. Getting Started

Welcome to the CPaaS Platform — a multi-channel messaging solution that lets you send SMS, WhatsApp, RCS, and Voice messages individually or in bulk.

Supported Channels

SMS
RCS
Voice

Quick Start Checklist

1
Log in to the User Portal

Navigate to http://localhost:8088 and log in with your credentials.

2
Create a Template

Go to Templates and create a message template for your chosen channel.

3
Wait for Approval

WhatsApp and RCS templates require admin approval. SMS templates are auto-approved.

4
Send a Message

Use the Composer to send a single test message, or upload a CSV for bulk sends.

2. Logging In

1
Open the User Portal

Go to http://localhost:8088 in your browser.

2
Enter Your Credentials

Enter the username and password provided by your administrator.

3
You're In

You will land on the Dashboard after a successful login.

If you forget your password, contact your administrator to reset it. There is no self-service password reset link.

3. Dashboard

The Dashboard is your home screen. It shows a summary of your messaging activity and account health at a glance.

Stats Cards

CardWhat it Shows
Messages TodayTotal messages sent by your account today
Success RatePercentage of messages delivered successfully
Cost TodayTotal amount charged to your account today
BalanceYour current account balance (prepaid credits)

Channel Breakdown

A visual breakdown of messages sent per channel (SMS, WhatsApp, RCS, Voice) today and all-time.

Failure Insights

Shows a breakdown of failed messages by error reason, so you can identify patterns and fix delivery issues.

AI Insights

The platform uses AI to analyze your usage patterns and provide insights such as:

The dashboard auto-refreshes every 15 seconds. All stats are real-time.

4. Sending a Single Message (Composer)

Navigate to Composer in the sidebar to send individual messages for testing or one-off communications.

4.1 Sending an SMS

1
Select Channel: SMS

Choose SMS from the channel selector.

2
Enter Recipient

Enter the phone number in international format (e.g., +919876543210).

3
Select Sender ID

Choose an approved Sender ID from the dropdown. This is the name that appears in the "From" field.

4
Select Template

Choose an approved SMS template. The message content will auto-fill.

5
Send

Click Send. The message appears in Reports within seconds.

4.2 Sending a WhatsApp Message

1
Select Channel: WhatsApp

The WABA number assigned to your account is used automatically.

2
Enter Recipient

International format phone number. The recipient must have an active WhatsApp account.

3
Select Template

Only APPROVED WhatsApp templates can be sent. Select from the dropdown.

4
Send

Click Send. Status starts as SUBMITTED and updates to DELIVERED or FAILED via webhook.

WhatsApp requires an approved WABA account. If WhatsApp is not available in the channel selector, contact your admin to enable it for your account.

4.3 Sending an RCS Message

1
Select Channel: RCS

Your RCS Bot must be active. Contact admin if RCS is unavailable.

2
Enter Recipient

International format. The recipient's device must support RCS.

3
Select RCS Template

Choose an approved RCS template (text or rich card).

4
Send

Status is SUBMITTED_OPERATOR once accepted by the RCS gateway.

4.4 Configuring Fallback

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

Fallback is especially useful for RCS messages. Since not all devices support RCS, set SMS as a fallback to guarantee delivery.

5. Managing Templates

Navigate to Templates to create and manage your message templates. Templates must be created before you can send messages.

Template Statuses

StatusMeaning
PENDINGSubmitted, waiting for admin approval
APPROVEDReady to use in Composer and Campaigns
REJECTEDRejected by admin — edit and re-submit

5.1 Creating an SMS Template

1
Click "New Template"

Opens the template creation form.

2
Select Channel: SMS
3
Enter Template Name

A unique identifier for this template (e.g., otp_alert).

4
Enter Message Content

Type the SMS body. Use {variable} placeholders for dynamic values if needed.

5
Fill DLT Fields (India)

Enter DLT Template ID and Message Category (UIC/MIC/SIC/Auth) for regulatory compliance.

6
Save

SMS templates are auto-approved and immediately usable.

5.2 Creating a WhatsApp Template

1
Select Channel: WhatsApp
2
Select Type: Text or Media

Media supports image, video, or document attachments.

3
Select WhatsApp Account

Choose the WABA number for this template.

4
Enter Content

For Text: enter the message body. For Media: provide a media URL and the text body.

5
Submit

Template goes to PENDING status. Admin must approve before use.

WhatsApp only allows pre-approved templates to be sent. Meta (WhatsApp's parent company) has its own approval process in addition to the platform's admin approval.

5.3 Creating an RCS Template

RCS supports two template types:

TypeWhat it Contains
Text OnlyA text message body with up to 4 suggestion buttons (reply, call, URL)
Rich CardAn image or video with a title, description, and up to 4 suggestion buttons

Text Only Template Steps

1
Select Type: Text Only
2
Select RCS Bot

Choose the RCS bot associated with your account.

3
Enter Message Body
4
Add Suggestion Buttons (optional)

Add up to 4 buttons: Quick Reply, Dial (phone number), or Open URL.

5
Submit to Virtuoso

The template is submitted directly to the Virtuoso RBM platform for registration.

Rich Card Template Steps

1
Select Type: Rich Card
2
Upload Media File

Upload an image (JPG/PNG) or video (MP4) for the card visual.

3
Enter Card Title & Description
4
Add Suggestion Buttons (optional)
5
Submit

The rich card template is submitted to Virtuoso RBM for registration.

6. Bulk Campaigns

Navigate to Campaigns to send messages to large lists of recipients by uploading a CSV file.

CSV File Format

Your CSV file must have phone numbers in the first column in international format:

+919876543210
+919123456789
+919000012345
Do not include a header row in the CSV file. Each row should be a single phone number.

Creating a Campaign

1
Click "New Campaign"
2
Enter Campaign Name

A descriptive name for tracking (e.g., diwali_promo_2025).

3
Select Channel

SMS, WhatsApp, or RCS.

4
Select Template

Only approved templates appear here.

5
Select Sender ID

For SMS campaigns only.

6
Configure Fallback (optional)

Set a fallback channel and template for failed deliveries.

7
Upload CSV

Upload your phone number file.

8
Submit

The campaign starts processing immediately. Messages are sent in the background.

Monitoring Campaign Progress

StatusMeaning
CREATEDCampaign created, not yet started
QUEUEDMessages are being queued for sending
PROCESSINGMessages actively being sent
COMPLETEDAll records processed
FAILEDCampaign encountered a critical error

The campaign list shows Total / Processed / Failed counts with a live progress update.

Campaign processing happens asynchronously. Large campaigns (100k+ numbers) may take several minutes to complete.

7. Channel Identities

Navigate to Channels to manage your WhatsApp WABA accounts and RCS Bots.

7.1 WhatsApp WABA Management

A WABA (WhatsApp Business Account) is required before you can send WhatsApp messages.

Your admin needs to assign WhatsApp access to your account. If WhatsApp is not visible, contact your admin.

On the Channels page, the WhatsApp tab shows your linked WABA numbers with their status and credentials.

FieldDescription
WABA NumberYour registered WhatsApp Business phone number
API KeyAuthentication key for the WhatsApp gateway
StatusActive / Inactive

7.2 RCS Bot Management

An RCS Bot is your registered business identity on the Virtuoso RBM (Rich Business Messaging) platform.

FieldDescription
Display NameBot name shown to recipients
Bot IDVirtuoso-assigned bot identifier
Bot HandleUnique handle for the bot
API KeyBot secret for authentication
StatusPENDING / ACTIVE / SUSPENDED
RCS Bots require platform-level registration with Virtuoso RBM. Contact your admin to activate or create a new bot.

8. Sender IDs

Navigate to Sender IDs to manage the alphanumeric names that appear as the sender of your SMS messages.

Sender IDs are only used for SMS. WhatsApp and RCS use your registered business account identity instead.

Requesting a New Sender ID

1
Click "Request Sender ID"
2
Enter Sender ID

Up to 11 characters, alphanumeric (e.g., MYBRAND). No spaces allowed.

3
Enter PE ID

Your Principal Entity ID registered on India's DLT portal. Required for compliance.

4
Submit

The request goes to PENDING and is reviewed by the admin.

Sender ID Status

StatusMeaning
PENDINGWaiting for admin approval
APPROVEDReady to use in SMS messages
REJECTEDRejected by admin — check PE ID validity
You can only use APPROVED sender IDs in Composer and Campaigns. Using an unregistered sender ID may result in message rejection by the telecom carrier.

9. Reports & Message Logs

Navigate to Reports to view detailed delivery logs for all messages sent from your account.

Filtering Reports

Message Statuses Explained

StatusMeaning
SUBMITTEDMessage accepted and queued for delivery
SUBMITTED_OPERATORMessage accepted by the carrier/gateway (RCS/WA)
DELIVEREDConfirmed delivered to the recipient's device
RETRYINGPrimary delivery failed; fallback is being attempted
FAILEDDelivery failed on all channels (including fallbacks)
UNDELIVEREDNot delivered (e.g., number out of service)
READWhatsApp only — message was read by the recipient

Key Report Fields

FieldDescription
RecipientDestination phone number
ChannelMessaging channel used
TemplateTemplate name used for this message
Sender IDSender name (SMS only)
CostAmount charged for this message
Created AtWhen the message was submitted
Sent AtWhen the message was dispatched to the carrier
Delivered AtWhen delivery was confirmed
Error CodeCarrier error code if delivery failed
CampaignCampaign name (for bulk sends)

Report Summary

Navigate to Report Summary for visual analytics — charts showing message volumes, success rates, and channel breakdowns over custom time periods.

10. Billing & Balance

Navigate to Billing to monitor your account balance and transaction history.

How Billing Works

Balance Top-Up

Contact your administrator to add credits to your account. Admins can adjust your balance directly from the User Management panel.

Transaction History

The Billing page shows a log of all credits and debits including:

WhatsApp Pricing Categories

CategoryType
UICUtility-Initiated Conversation
MICMarketing-Initiated Conversation
SICService-Initiated Conversation
AuthAuthentication (domestic)
Auth INTAuthentication (international)
Always maintain a sufficient balance before launching large campaigns. Messages will fail if your balance reaches zero mid-campaign.

11. Blacklist

Navigate to Blacklist to manage a list of phone numbers that should never receive messages from your account.

Adding a Number to Blacklist

1
Click "Add Number"
2
Enter Phone Number

Enter in international format (e.g., +919876543210).

3
Save

Any future messages to this number from your account will be automatically blocked.

Removing from Blacklist

Click the delete icon next to a number to remove it from the blacklist. Future messages to that number will be allowed again.

Blacklisted numbers are silently dropped — no error is shown to the recipient, and no charge is applied for blocked messages.

12. Settings & API Keys

Navigate to Settings to manage your account configuration.

API Key

Your API key is used to authenticate programmatic message submissions via the REST API. It is displayed on the Settings page.

Keep your API key confidential. Anyone with your API key can send messages billed to your account. If compromised, contact your admin to regenerate it immediately.

DLR Webhook URL

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.

Webhook Payload Format

{
  "messageId": "msg_abc123",
  "recipient": "+919876543210",
  "status": "DELIVERED",
  "channel": "SMS",
  "deliveredAt": "2025-03-06T14:30:00"
}

Whitelisted IPs

Optionally restrict API access to specific IP addresses. Only requests from whitelisted IPs will be accepted for API message submission.

Profile Settings

13. Using the API

The platform provides a REST API for programmatic message sending. Use this to integrate messaging into your own applications.

Authentication

Include your API key in every request as a header:

X-API-Key: your-api-key-here

Send a Message

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"
}

Send via WhatsApp

POST http://localhost:8081/api/v1/messages/submit
Content-Type: application/json
X-API-Key: your-api-key

{
  "recipient": "+919876543210",
  "channel": "WHATSAPP",
  "templateId": 15
}

Check Message Status

GET http://localhost:8081/api/v1/messages/reports?accountId=1&recipient=+919876543210
X-API-Key: your-api-key
Full API documentation with all endpoints and response schemas is available in the API reference section of your account settings page.

14. Glossary

TermDefinition
TemplateA pre-defined message structure that must be approved before use
Sender IDThe alphanumeric name that appears as the SMS sender (e.g., MYBRAND)
WABAWhatsApp Business Account — your registered WhatsApp business identity
RCS BotYour business identity on the Virtuoso Rich Business Messaging platform
DLTDistributed Ledger Technology — India's regulatory system for commercial SMS
PE IDPrincipal Entity ID — your registered entity ID on India's DLT portal
DLRDelivery Receipt — a webhook notification when a message is delivered or fails
FallbackAutomatic retry on a different channel when the primary channel fails
CampaignA bulk message send using a CSV file of phone numbers
Rich CardAn RCS message type with image/video + title + description + buttons
BlacklistA list of phone numbers blocked from receiving messages
API KeyA secret token for authenticating programmatic API requests
UIC/MIC/SICWhatsApp conversation categories: Utility, Marketing, and Service
SUBMITTED_OPERATORMessage accepted by the carrier/gateway and awaiting final delivery confirmation