Bulk SMSMarketing

Bulk SMS that reaches every phone — and tells you what it cost first

DLT-ready SMS through your own vendor account. Long campaigns are paced, survive a restart, pause themselves when something is wrong, and are reported number by number.

You see the parts and the pace before sending, the campaign stops itself when it should, and the report says why each message did not arrive.

Your vendor
MSG91 or Fast2SMS, billed to you
From ~₹0.11
per SMS, at the vendor's rate — we add nothing
10am–9pm
enforced for promotional, automatically

What you need to start

  • A DLT registration: principal entity id, an approved sender id (header) and approved templates
  • An account with MSG91 or Fast2SMS, bound as telemarketer on your DLT portal
  • Consent from the people you message

The problem

“An SMS panel that takes your money up front, fires the list in one burst, and shows "sent" for messages the operator silently dropped.”

  • One curly quote pasted from Word turns a 1-part message into 3 parts. You find out on the invoice.
  • Promotional SMS sent at 9:05pm is dropped by the operator — and still billed by the vendor.
  • A wrong DLT template id fails every message, and most panels fail all 40,000 before telling you.

Inside the panel

This is the screen you will work in

Not a stock illustration — the real layout, the real filters, the real labels from the module itself. You will find it at Dashboard → Bulk SMS.

app · Dashboard / Bulk SMS

Bulk SMS

New SMS campaign

Diwali offer — past buyers

Sending600 / minute

48,210

Audience

29,890

Sent

28,102

Delivered

611

Failed

Why messages did not go

NDNC — on the DND registry402
Invalid number164
Handset switched off45
An illustration of the real panel, drawn from the same design system — not a live demo.

Step by step

How it actually works

From the first day to steady state, in 6 steps. Every one of these is something the panel genuinely does — nothing here is on a roadmap.

  1. 01

    Connect your own SMS vendor

    5 minutes

    Paste the API key of your MSG91 or Fast2SMS account. The key is tested the moment you save it, and the vendor bills you directly.

    • MSG91 recommended: one key for SMS and RCS
    • Fast2SMS for the lowest entry cost — ₹100 to start
    • The key is encrypted and never shown again
  2. 02

    Bring in your DLT templates

    2 minutes each

    Paste the vendor's template id and we read the exact approved text, the sender id and the DLT id from them — so nothing can be mistyped.

    • Live count of characters, encoding and billable parts
    • One click to fix punctuation that forces Unicode
    • Category sets the rules: transactional, service or promotional
  3. 03

    Choose who gets it

    2 minutes

    All contacts, a segment, a tag, a pasted list or a CSV. Numbers are normalised, duplicates and invalid numbers are dropped, and you see the real count before sending.

    • "+91 98765-43210" and "09876543210" are recognised as one person
    • CSV columns can fill the message's variables
    • Your do-not-message list is applied automatically
  4. 04

    Map the variables

    1 minute

    Say where each {#var#} comes from — the contact's name, a custom field, a CSV column — and what to use when it is empty.

    • A fallback stops "Hi ," going out
    • Values over DLT's 30-character limit are flagged
  5. 05

    Check it, test it, then send or schedule

    2 minutes

    The check lists anything that would make the campaign fail, and the cost in billable parts. Send one real message to your own phone, then send now, schedule, or repeat daily, weekly or monthly.

    • "3 parts × 12,000 people = 36,000 billable SMS" — before, not after
    • A scheduled campaign starts even if nobody is logged in
  6. 06

    Let it run, and read the report

    as long as it takes

    A steady pace instead of a burst. Close the page; it keeps going. If the wallet runs out or failures spike, it pauses and says why.

    • Delivered, failed and replied, per number
    • Failure reasons grouped and counted
    • Export everything, or just what failed, as CSV

An SMS is billed per part and dropped silently when a rule is broken. Showing both before you send is the whole product.

Setting it up

What you actually click

Six steps, in order, with the screen each one lives on. No developer and no integration project — this is all done in the panel.

Time to set up
about 20 minutes, once your DLT registration exists
Before you start
A DLT entity, an approved sender id and templates; an MSG91 or Fast2SMS account
Start free
  1. 1

    Connect the vendor

    Bulk SMS → Vendor → Connect a vendor

    Choose MSG91 or Fast2SMS and paste the API key. It is tested as you save; a wrong key or a blocked IP is reported in plain words.

  2. 2

    Add the delivery-report URL

    Bulk SMS → Vendor → Copy

    Copy the webhook URL shown on the connection and paste it into the vendor's webhook settings. Without it messages stay at "sent" and never show "delivered".

  3. 3

    Add your sender ids

    Bulk SMS → Vendor → Edit

    The six-character headers approved on your DLT portal. Fast2SMS can import them for you.

  4. 4

    Add a template

    Bulk SMS → Templates → Add template

    Paste the vendor's template id and press Read: the approved text, sender and DLT id are filled in. Set the category — it decides whether the 10am–9pm window applies.

  5. 5

    Create the campaign

    Bulk SMS → Campaigns → New

    Pick the template and the audience, map each variable with a fallback, and set the pace. 300–600 a minute is a sensible start.

  6. 6

    Check, test, send

    Campaign → Check this campaign

    Fix anything red, read the cost estimate, send one test to your own phone, then send now or schedule.

The short version

What it does about it

01

Know the cost before you send

Encoding and billable parts are counted live as you type, and multiplied by the real audience size in the pre-send check.

02

Long campaigns that do not break

The list becomes a queue in the database, sent at a steady pace. A deploy or a restart loses nothing and sends nothing twice.

03

It stops itself when it should

Empty wallet, rejected template, or a third of recent messages failing: the campaign pauses with the reason instead of burning through the list.

04

TRAI rules built in

Promotional messages go only between 10am and 9pm. A campaign still running at 9pm parks itself and carries on at 10am.

05

Opt-outs that actually work

STOP replies, DND and dead numbers are suppressed automatically and checked again for every batch — even mid-campaign.

In detail

Everything it does

The whole list, grouped. If something you need is not here, ask — we would rather tell you it does not exist than let you find out in week two.

Sending

  • Bulk API calls — hundreds of numbers per request
  • Pace in messages a minute, with a per-vendor ceiling
  • Pause, resume and cancel at any moment
  • Automatic retry with back-off when the vendor hiccups
  • Schedule once, or repeat daily, weekly, monthly

Compliance

  • DLT template, sender id and entity id on record
  • 10am–9pm window for promotional and service-explicit
  • Do-not-message list shared with RCS
  • STOP replies and DND failures suppressed automatically
  • Frequency cap: not more than N messages in D days

Audience

  • Contacts, segments and tags
  • Paste numbers or upload a CSV
  • Number normalisation and de-duplication
  • Per-person variables from contact fields or CSV columns

Reporting and control

  • Per-number delivery status from vendor webhooks
  • Failure reasons grouped and counted
  • Billable parts as the vendor reported them
  • Circuit breaker on failure rate
  • CSV export and one-click retry of what failed

Beyond campaigns

  • "Send an SMS" as an automation action
  • Developer API for order and payment alerts
  • Sandbox vendor to rehearse without spending

In practice

Three businesses, three ways

A coaching institute

18,000 parents need the exam timetable tonight.

→A transactional template, paced at 600 a minute, finished in half an hour — with a list of the 212 numbers that failed and why.

A retailer running a festival sale

Promotional SMS to 60,000 past buyers, started at 7pm.

→It sends until 9pm, parks itself, and finishes the next morning from 10am. Nothing was dropped for being late.

A lender

Payment reminders from their own system.

→One API call per reminder through the Developer API, honouring the same opt-out list as the campaigns.

Before you commit

The specifics

Limits and facts

Vendors
MSG91 (recommended), Fast2SMS — your own account
Message cost
Billed by your vendor at their rate; no markup
Audience size
Up to 5,00,000 numbers per campaign
SMS a month
Metered per plan
Delivery reports
Vendor webhook, per number

What you need first

  • A DLT registration: principal entity id, an approved sender id (header) and approved templates
  • An account with MSG91 or Fast2SMS, bound as telemarketer on your DLT portal
  • Consent from the people you message

Pricing

Two ways to get it

Take this module on its own, or as part of a plan that includes it. Either way the price is the software only — WhatsApp conversations are billed to you by Meta at their rates.

On its own

Bulk SMS

Included in every plan

Start free

Or as part of a plan

Plans that include it

This module is sold on its own at the moment.

A bundle is usually cheaper than three modules bought separately — and add-ons only ever add, so nothing you already have is affected.

Questions

Do I buy SMS credits from you?

No. You connect your own MSG91 or Fast2SMS account and they bill you at their rate — roughly ₹0.11 to ₹0.25 an SMS depending on volume. We charge for the software only.

Which vendor should I choose?

MSG91 if you also want RCS or send at volume: one key covers both channels. Fast2SMS if you want the cheapest possible start — ₹100, no monthly plan.

What is DLT and do I need it?

TRAI requires every business SMS in India to come from a registered entity, under a registered sender id, using a registered template. Without it operators drop the message. Registration is done once on an operator's DLT portal; your vendor will walk you through it.

What happens if I close the browser during a big campaign?

Nothing. The campaign is a queue on the server and keeps sending at the pace you set. If the server itself restarts, it resumes where it stopped, without sending anyone twice.

Why did some messages fail?

The report groups failures by reason — DND, invalid number, template mismatch — with counts. Numbers that are dead or on DND are added to your do-not-message list so you do not pay for them again.

Try it before you pay anything

Connect a number, import your contacts, and see whether it fits how you work.