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.
Navigate to http://localhost:8088 and log in with your credentials.
Go to Templates and create a message template for your chosen channel. Use AI Assist to generate content automatically.
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 Quick Message 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, rich card, or carousel).
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. The template list shows the template name, channel, content preview, identity, category, type, status, and the date and time the template was created.
| Status | Meaning |
|---|---|
| PENDING | Submitted, waiting for admin approval |
| APPROVED | Ready to use in Composer and Campaigns |
| REJECTED | Rejected by admin — edit and re-submit |
| FAILED | Submission to external provider failed — failure reason is shown inline |
Opens the template creation form.
A unique identifier for this template (e.g., otp_alert). Only alphanumeric characters, underscores, and hyphens are allowed.
Type the SMS body. The live preview on the right updates as you type.
Enter DLT Template ID and Message Category (UIC/MIC/SIC/Auth) for regulatory compliance.
SMS templates are auto-approved and immediately usable.
Choose the WABA number for this template.
Media supports image, video, or document attachments.
Choose from MARKETING, UTILITY, AUTHENTICATION, etc. This affects per-message pricing.
Fill in the Header (optional), Body, Footer (optional), and add buttons if needed. The live preview updates in real time.
Click the AI Assist button to auto-generate compliant template content based on your topic and instructions.
Template goes to PENDING status. Admin must approve before use.
RCS supports three 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 suggestion buttons. Live preview shows the uploaded image immediately. |
| Carousel | 2–10 scrollable cards, each with its own image, title, description, and 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.
Choose Vertical or Horizontal orientation, and card width/height.
Upload an image (JPG/PNG) or video (MP4). The live preview on the right will show the uploaded image immediately.
The rich card template is submitted to Virtuoso RBM for registration.
Applies uniformly to all cards in the carousel.
Click "Add Card" to add cards (minimum 2, maximum 10). Each card has its own image upload, title, description, and suggestion buttons.
For each card: upload an image, enter title and description, and optionally add suggestion buttons.
The carousel template is submitted to Virtuoso RBM. The live preview shows a scrollable carousel as you build it.
When creating a WhatsApp template, an AI Assist button appears in the content section. Click it to open the AI panel:
The AI uses the template name as the topic for generation.
Add any specific instructions (e.g., "formal tone", "include a discount offer").
The AI generates compliant message content and fills the content field automatically.
Review the generated content and edit as needed before saving.
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:
| Check | What it Looks For |
|---|---|
| CHECK-1 | Prohibited content (fraud, phishing, adult content) |
| CHECK-2 | Unsolicited promotional content without opt-in |
| CHECK-3 | Calls to action that violate TRAI rules |
| CHECK-4 | Invalid phone number format in message body |
| CHECK-5 | Duplicate content within the message |
| CHECK-6 | URL shorteners (bit.ly, tinyurl, etc.) |
| CHECK-7 | Urgency/pressure language (ACT NOW, URGENT, etc.) |
| CHECK-8 | Prize/lottery language |
| CHECK-9 | Credential 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.
Navigate to Bulk Campaign 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 Campaign Intelligence in the sidebar for AI-powered analytics on your messaging performance. This page combines visual charts, traffic analysis, and AI-generated recommendations.
| Card | What it Shows |
|---|---|
| Best Channel | The channel with the highest delivery rate for your account |
| Best Hour | The hour of day with the highest delivery success rate |
| Avg. Delivery Rate | Your overall average delivery rate across all channels |
| Total Messages | Total messages sent across all time |
A bar chart comparing delivery rates across SMS, WhatsApp, RCS, and Voice channels. Use this to identify which channel performs best for your audience.
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.
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.
Click the Get AI Insights button to generate AI-powered recommendations based on your traffic data. The AI analyzes your hourly patterns and provides:
A searchable, paginated table listing all your campaigns with their performance metrics including total records, processed count, failed count, and current status.
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 |
| READ | WhatsApp/RCS only — message was read by the recipient |
| 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) |
| 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 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.
| Card | What it Shows |
|---|---|
| Risk Level | Overall risk level: LOW / MEDIUM / HIGH based on detected anomalies |
| Risk Score | Numeric score 0–100 representing the highest anomaly severity in the last 24 hours |
| Fraud Probability | AI-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 |
A paginated table listing all detected anomalies with:
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.
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.
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.
| Card | What it Shows |
|---|---|
| Risk Level | Overall spam risk level: LOW / MEDIUM / HIGH |
| Risk Score | Numeric 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 Senders | Number of distinct senders active in the last 24 hours |
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.
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.
Click Run Detection Now to trigger an immediate spam scan. Useful after sending a large campaign to verify no spam patterns were triggered.
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 Management 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. Leave blank or set to * to allow all IPs.
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 |
| Carousel | An RCS message type with 2–10 scrollable rich cards |
| 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 |
| AI Assist | AI-powered feature that generates compliant message template content automatically |
| Compliance Check | AI evaluation of message content against 9 TRAI/DLT regulatory rules |
| Traffic Anomaly | AI-detected unusual pattern in message traffic, such as OTP flooding or velocity spikes |
| Risk Score | A 0–100 numeric score representing the severity of detected anomalies or spam patterns |
| Campaign Intelligence | Analytics page with AI insights on channel performance, hourly traffic, and delivery trends |
| Virtuoso RBM | The Rich Business Messaging platform used for RCS template registration and delivery |