Blog / Marketing

Bulk SMS marketing for small business: what actually works

October 22, 2026·7 min read·By Kodefoundry

SMS gets read. That is the whole appeal, and the reason small businesses keep coming back to it after a year of shouting into an empty inbox. Most marketing platforms quote open rates somewhere above 90 percent for text, against roughly 20 percent for email. Treat those numbers as directional rather than gospel, because every vendor publishing them sells SMS. The underlying point still holds: a text lands on a lock screen, and an email lands in a pile.

The catch is that SMS punishes sloppiness in a way email never does. A bad email costs you an unsubscribe. A bad text costs you money per send, and if enough people report it, your number gets filtered by the carrier.

Start with the list, not the platform

Almost everyone does this backwards. They sign up for a provider, land in an empty dashboard, and then go hunting for numbers to paste in. By the time the list arrives it's a mess of duplicates, landlines, and numbers saved without a country code back in 2019.

Your contact list already exists on your phone. The job is getting it out in a shape a provider will accept. That means one row per person, numbers in international format, and no repeats. If you're on iPhone, exporting your contacts to CSV is the first step, and it takes about thirty seconds with the right tool.

Clean before you upload, not after

Every provider charges per message segment. Duplicates are the quiet tax here: if 8 percent of your list is the same people saved twice, you pay 8 percent more forever, and some of those people get the same promo twice in one minute. That second part is what generates complaints.

The iPhone's built-in duplicate finder only matches on exact name strings, so "Sam Hadid" and "Samir Hadid" with the same number sail straight through. Finding the duplicates iOS misses before you upload is cheaper than discovering them in a send report.

Formatting is not optional

Providers want E.164: a plus sign, a country code, then the number, no spaces or dashes. +9613123456, not 03 123 456. Twilio rejects anything else at send time rather than upload time, which means you find out after you have already queued the campaign. We wrote up what E.164 is and why it breaks campaigns separately, because it accounts for more failed sends than any other single cause.

Get consent, and keep the proof

In the US this is the TCPA, and the fines are not theoretical. The FCC's telemarketing rules are the place to start. In the EU and UK, it's GDPR and PECR. The short version is that having someone's number is not the same as having permission to market to them. A customer who texted you about an order has not opted into your Black Friday blast.

Keep a record of when and how each person opted in. If a complaint ever lands, that record is the entire defence.

Write like a person, send like a business

Identify yourself in the first few words, because the number means nothing to them. Say the one thing you're texting about. Include an opt-out. That's the whole template. Messages over 160 characters split into multiple segments and get billed as multiple messages, so brevity has a direct line to your invoice.

Send during business hours in the recipient's timezone. If your list spans countries, grouping contacts by country before you schedule is the difference between a 10am promo and a 3am wake-up call.

Pick a provider for your volume, not your ambition

Twilio is the default recommendation and it is a developer tool. If nobody on your side writes code, the setup cost is real: API keys, a messaging service, a webhook for replies. SimpleTexting, Sendlane and Klaviyo wrap the same carrier plumbing in something a marketer can drive, and charge for the privilege.

At under a thousand contacts the monthly platform fee usually dwarfs the per-message cost, so pick on usability. Past ten thousand, per-segment pricing starts to dominate and it is worth reading the rate card properly.

Measure replies, not opens

Open rate for SMS is close to meaningless because a notification counts as an open. The numbers that tell you anything are reply rate, click rate on a shortened link, and opt-out rate per campaign.

Watch the opt-out rate in particular. A campaign that pulled good sales and a 4 percent opt-out has borrowed against next quarter. Anything over 2 percent means the message, the frequency, or the consent behind the list needs looking at.

Get Pluck for iPhone

Pluck does the steps in this guide on your iPhone, with no server, no account, and no analytics. Group your contacts by country, find duplicates the iOS tool misses, and export to CSV, Excel, TXT, or vCard.

Download Pluck on the App Store