Home » SMS Broadcast Software » How to Send Bulk SMS

How to Send Bulk SMS: Planning and Sending Your First Broadcast

A bulk SMS broadcast is one message sent to your whole subscriber list, or a targeted slice of it. Done right, it lands at a sensible local time for every recipient, spreads through the day so replies stay manageable, and reports back exactly who received it and who clicked. This guide walks through sending a broadcast with SMS Campaign Engine, the free open source engine behind our SMS Broadcast app. The same steps apply to the hosted version, since it runs the same engine.

Before You Start

Three things need to be in place before your first broadcast:

Step 1: Load Your Contacts

Upload in the admin area or push through the API. The admin contacts page accepts bulk uploads, and the API has contacts/add for wiring up a signup form plus contacts/upload for bulk imports. Give every contact a feed tag, a short code naming where the contact came from, like webform or store-signup. Feeds let you filter broadcasts later and trace results back to a source.

The engine keeps a profile on every contact: carrier, name, state, how many messages they have received, and an activity level that starts at inactive and upgrades to clicker or converter as they engage. That activity level matters, because when a broadcast has fewer slots than you have contacts, engaged people get queued first.

Step 2: Write the Message

Short, specific, and time bound. You have 160 characters in a single segment. Say what the offer is, why to act now, and where to go. "Flash sale, 40% off all jackets until midnight" beats "Check out our new collection" every time. Our guide on writing SMS marketing messages goes deeper.

Personalize with placeholders. ##FNAME## becomes the contact's first name, and a tracked link is written as https://yourdomain.com/click.php/##SUBID##, which the engine turns into a unique link per recipient so clicks get counted and your landing page receives the tracking id. Include opt-out language, like "Reply STOP to opt out", in the message.

Step 3: Create a List

A list is a sending profile. It defines who a broadcast targets: optionally filtered by state, by feed, and with per-carrier caps so you never exceed what your registration supports on a given network. Create one list per audience you regularly send to.

Carrier caps deserve a word. Your 10DLC trust score limits how much volume each carrier will accept from you per day. Setting caps for tmobile, att, verizon, and the rest keeps the engine inside those limits automatically, which protects your delivery rate instead of burning messages that carriers will silently drop.

Step 4: Schedule the Broadcast

Pick the list, the message, and the volume. From the dashboard, choose how many messages to send today. The engine fills the queue from the list, engaged contacts first, and spreads the sends across hour buckets through the day rather than blasting everything at once.

Sends are shifted to each recipient's local timezone based on their area code, so a 10 AM bucket goes out at 10 AM in New York and 10 AM in Los Angeles, not at the same moment everywhere. Spreading also keeps inbound replies and support questions at a pace your team can handle.

If you would rather not schedule by hand at all, the auto scheduler builds the day's broadcasts for you, one per list, rotating through whichever messages you enabled for that weekday. Turn it on in settings and check the weekday boxes on each message you want in the rotation.

Developers can do the same thing programmatically: the broadcast/schedule API endpoint takes the list ID, the message ID, and the total to send. The API documentation has the full field reference and examples.

Step 5: Watch Delivery and Results

The reports tell you what actually happened. Delivery webhooks from your provider record delivered and undelivered counts as reports come in. Click tracking counts every real click and filters out bots. The daily stats show delivered, undelivered, clicks, and unsubscribes in one place.

A healthy broadcast delivers above 95%. If yours comes in well under that, the usual causes are an unregistered or under-registered number, content that trips spam filters, or volume beyond your trust score. Our deliverability guide covers the fixes.

Start small. For a first broadcast, send to a few hundred contacts rather than your whole list. Confirm delivery looks right, clicks are tracking, and STOP replies are being processed, then scale up. Carriers reward gradual, consistent volume and punish sudden spikes.

Common Questions

How fast does it go out? Across the day, in hour buckets. This is deliberate: carriers throttle sudden bursts, and replies arrive at a manageable pace. If you need one message out immediately, the send API endpoint sends a single SMS right away.

What happens to STOP replies mid-broadcast? They are processed automatically and immediately. The number goes on the suppression list and gets no further messages, including any still queued.

Can I send the same broadcast to two lists? Yes, schedule it once per list. Suppression and per-contact history prevent double sends to a contact that appears in both.

More answers in the SMS broadcast software FAQ.

SMS Campaign Engine is free and open source. Install it in minutes and send your first broadcast today.

Get the Code on GitHub

Prefer it managed? Contact our team about the hosted SMS Broadcast app.