Product Manual

CPaaS Platform

User Guide

Version 2.0  |  For User Role  |  Port 8088

Table of Contents

  1. Getting Started
  2. Logging In
  3. Dashboard
  4. Sending a Single Message (Quick Message)
  5. Managing Templates
  6. Bulk Campaigns
  7. Campaign Intelligence
  8. Channel Identities
  9. Sender IDs
  10. Reports & Message Logs
  11. Traffic Anomaly Detection
  12. Spam Detection
  13. Billing & Balance
  14. Blacklist
  15. Settings & API Keys
  16. Using the API
  17. 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. The platform includes AI-powered features for template generation, compliance checking, traffic analysis, and anomaly detection.

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. Use AI Assist to generate content automatically.

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 your session expires, you will be automatically redirected to the login page. Simply log in again to continue. If you forget your password, contact your administrator to reset it.

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 (Quick Message)

Navigate to Quick Message 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, rich card, or carousel).

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. When a fallback is triggered, the original message cost is automatically refunded and the fallback channel cost is charged instead.

5. Managing Templates

Navigate to Templates to create and manage your message templates. Templates must be created before you can send messages. The template list shows the template name, channel, content preview, identity, category, type, status, and the date and time the template was created.

Template Statuses

StatusMeaning
PENDINGSubmitted, waiting for admin approval
APPROVEDReady to use in Composer and Campaigns
REJECTEDRejected by admin — edit and re-submit
FAILEDSubmission to external provider failed — failure reason is shown inline

5.1 Creating an SMS Template

1
Click "Create Template"

Opens the template creation form.

2
Select Channel: SMS
3
Enter Template Name

A unique identifier for this template (e.g., otp_alert). Only alphanumeric characters, underscores, and hyphens are allowed.

4
Enter Message Content

Type the SMS body. The live preview on the right updates as you type.

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 WhatsApp Account

Choose the WABA number for this template.

3
Select Type: Text or Media

Media supports image, video, or document attachments.

4
Select Message Category

Choose from MARKETING, UTILITY, AUTHENTICATION, etc. This affects per-message pricing.

5
Enter Content

Fill in the Header (optional), Body, Footer (optional), and add buttons if needed. The live preview updates in real time.

6
Use AI Assist (optional)

Click the AI Assist button to auto-generate compliant template content based on your topic and instructions.

7
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 three 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 suggestion buttons. Live preview shows the uploaded image immediately.
Carousel2–10 scrollable cards, each with its own image, title, description, and 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
Select Orientation and Size

Choose Vertical or Horizontal orientation, and card width/height.

3
Upload Media File

Upload an image (JPG/PNG) or video (MP4). The live preview on the right will show the uploaded image immediately.

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

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

Carousel Template Steps

1
Select Type: Carousel
2
Select Card Width and Height

Applies uniformly to all cards in the carousel.

3
Add Cards

Click "Add Card" to add cards (minimum 2, maximum 10). Each card has its own image upload, title, description, and suggestion buttons.

4
Fill Each Card

For each card: upload an image, enter title and description, and optionally add suggestion buttons.

5
Submit

The carousel template is submitted to Virtuoso RBM. The live preview shows a scrollable carousel as you build it.

Carousel templates require at least 2 cards. Each card image must be JPEG/JPG/PNG and under 2MB.

5.4 AI Assist & Compliance Check

AI Template Generator

When creating a WhatsApp template, an AI Assist button appears in the content section. Click it to open the AI panel:

1
Enter a Template Name first

The AI uses the template name as the topic for generation.

2
Enter Optional Instructions

Add any specific instructions (e.g., "formal tone", "include a discount offer").

3
Click Generate

The AI generates compliant message content and fills the content field automatically.

4
Review and Edit

Review the generated content and edit as needed before saving.

AI Compliance Check

Before submitting a template, you can run an AI compliance check to verify your message content against TRAI/DLT regulations. The checker evaluates 9 rules:

CheckWhat it Looks For
CHECK-1Prohibited content (fraud, phishing, adult content)
CHECK-2Unsolicited promotional content without opt-in
CHECK-3Calls to action that violate TRAI rules
CHECK-4Invalid phone number format in message body
CHECK-5Duplicate content within the message
CHECK-6URL shorteners (bit.ly, tinyurl, etc.)
CHECK-7Urgency/pressure language (ACT NOW, URGENT, etc.)
CHECK-8Prize/lottery language
CHECK-9Credential solicitation (OTP, PIN, CVV requests)

The compliance check returns a Risk Score (0–100), a Risk Level (LOW / MEDIUM / HIGH), a list of warnings for triggered checks, and actionable suggestions for each warning.

Run the compliance check before submitting any template to reduce the chance of DLT rejection. The AI also considers past rejection history for the template if it has been rejected before.

6. Bulk Campaigns

Navigate to Bulk Campaign 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. Campaign Intelligence

Navigate to Campaign Intelligence in the sidebar for AI-powered analytics on your messaging performance. This page combines visual charts, traffic analysis, and AI-generated recommendations.

Summary Cards

CardWhat it Shows
Best ChannelThe channel with the highest delivery rate for your account
Best HourThe hour of day with the highest delivery success rate
Avg. Delivery RateYour overall average delivery rate across all channels
Total MessagesTotal messages sent across all time

Channel Delivery Rate Comparison

A bar chart comparing delivery rates across SMS, WhatsApp, RCS, and Voice channels. Use this to identify which channel performs best for your audience.

Hourly Traffic Distribution

A line chart showing message volume broken down by hour of the day across the last 7 days. Helps you identify peak sending times and plan campaigns accordingly.

Traffic Heatmap

A day-of-week × hour-of-day heatmap showing when your messages are most frequently sent. Darker cells indicate higher traffic volume. Use this to find your optimal sending windows.

AI Recommendations

Click the Get AI Insights button to generate AI-powered recommendations based on your traffic data. The AI analyzes your hourly patterns and provides:

Campaign Report

A searchable, paginated table listing all your campaigns with their performance metrics including total records, processed count, failed count, and current status.

Campaign Intelligence data refreshes automatically. Click "Get AI Insights" any time to get a fresh analysis based on the latest data.

8. Channel Identities

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

8.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

8.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.

9. 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.

10. 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
READWhatsApp/RCS only — message was read by the recipient
RETRYINGPrimary delivery failed; fallback is being attempted
FAILEDDelivery failed on all channels (including fallbacks)
UNDELIVEREDNot delivered (e.g., number out of service)

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.

11. Traffic Anomaly Detection

Navigate to Traffic Anomaly in the sidebar to monitor AI-detected unusual patterns in your messaging traffic. This feature helps identify potential fraud, OTP abuse, or sudden traffic spikes before they cause significant damage.

Summary Cards

CardWhat it Shows
Risk LevelOverall risk level: LOW / MEDIUM / HIGH based on detected anomalies
Risk ScoreNumeric score 0–100 representing the highest anomaly severity in the last 24 hours
Fraud ProbabilityAI-calculated probability of fraudulent activity (0.00–1.00)
Anomalies (24h)Number of anomalies detected in the last 24 hours
Anomalies (1h)Number of anomalies detected in the last 1 hour

Anomaly Log

A paginated table listing all detected anomalies with:

Filtering and Acknowledging

Filter the anomaly log by type and status. Click Acknowledge on an anomaly to mark it as reviewed. Acknowledged anomalies are removed from the active alert count.

Manual Detection Scan

Click Run Detection Now to trigger an immediate anomaly scan on your account's recent traffic. The platform normally runs detection automatically on a schedule.

A HIGH risk level or fraud probability above 0.7 should be investigated immediately. Contact your admin if you suspect unauthorized use of your account.

12. Spam Detection

Navigate to Spam Detection in the sidebar to monitor sender-level spam patterns across your account. While Traffic Anomaly focuses on volume spikes, Spam Detection focuses on content and sender behaviour patterns.

Summary Cards

CardWhat it Shows
Risk LevelOverall spam risk level: LOW / MEDIUM / HIGH
Risk ScoreNumeric score 0–100
Alerts (24h)Number of spam alerts raised in the last 24 hours
Alerts (1h)Number of spam alerts raised in the last 1 hour
Active SendersNumber of distinct senders active in the last 24 hours

Sender Performance (Last 24h)

A table showing each Sender ID used in the last 24 hours with their message count, delivery rate, and failure rate. High failure rates on a specific sender may indicate spam behaviour or an invalid Sender ID.

Spam Alert Log

A paginated log of all spam alerts raised by the platform. Each alert includes the sender, alert type, timestamp, and current status. Use the pagination controls to browse through historical alerts.

Manual Detection Scan

Click Run Detection Now to trigger an immediate spam scan. Useful after sending a large campaign to verify no spam patterns were triggered.

Regularly review the Sender Performance table after bulk campaigns. A sudden drop in delivery rate for a specific Sender ID may mean the sender has been flagged by the telecom carrier.

13. 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.

14. Blacklist

Navigate to Blacklist Management 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.

15. 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. Leave blank or set to * to allow all IPs.

Profile Settings

16. 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.

17. 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
CarouselAn RCS message type with 2–10 scrollable rich cards
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
AI AssistAI-powered feature that generates compliant message template content automatically
Compliance CheckAI evaluation of message content against 9 TRAI/DLT regulatory rules
Traffic AnomalyAI-detected unusual pattern in message traffic, such as OTP flooding or velocity spikes
Risk ScoreA 0–100 numeric score representing the severity of detected anomalies or spam patterns
Campaign IntelligenceAnalytics page with AI insights on channel performance, hourly traffic, and delivery trends
Virtuoso RBMThe Rich Business Messaging platform used for RCS template registration and delivery