Why SMS still wins
98% open rate. 90% read within 3 minutes. 30%+ click rates on well-written texts. No algorithm rationing your reach. SMS is the highest-ROI channel most marketers underuse because they're scared of compliance.
The 160-character converting formula
Structure every SMS as: name + value + clear CTA + opt-out.
"Hi Sarah — your free 500 numbers are ready. Claim before Friday: dn.xyz/s1 · Reply STOP to opt out"
That's 105 characters. You can fit a brand mention if needed but every extra word drops conversion. Why this structure works:
- First name = personal, not blast
- Verb-led value ("your free X is ready") feels like a notification, not an ad
- Time pressure ("before Friday") doubles CTR vs no deadline
- Branded short link on your domain (dn.xyz) — much higher CTR than bit.ly
- STOP — legally required in US, builds trust everywhere
Send times that work (by use case)
| Use case | Best window | Worst |
| B2C retail / e-comm | Tue-Thu 11am-1pm or 6-8pm local | Sunday morning |
| B2B (SaaS/services) | Tue-Thu 9-11am local | Friday afternoon |
| Restaurant / food | Thu-Sat 11am or 5pm local | Late night |
| Fitness / wellness | Mon-Wed 6-8am or 5-7pm local | Weekend evenings |
| Real estate / high-ticket | Tue-Thu 10am-12pm local | Before 9am, after 8pm |
| Forex / iGaming (allowed markets) | Sat-Sun 10am-2pm local | Mon-Fri working hours |
Test for your audience — these are starting points, not laws.
TCPA compliance (US): the bare minimum
Send a single non-compliant SMS to a US number = $500-1,500 fine per message. The rules in plain English:
- Express written consent required for promotional SMS. "Express" means a checkbox they actively ticked. Pre-checked = no good. Implied = no good.
- Identify yourself in the message ("From [Brand Name]")
- Always include opt-out ("Reply STOP")
- Honor opt-outs immediately. Don't message that number again. Ever.
- Don't send between 9pm and 8am recipient local time
- Don't message numbers on national/state DNC lists for promotional purposes
- Keep proof of consent for 4+ years
For non-US markets the rules vary: Canada CASL is similar to TCPA, EU GDPR is stricter (specific consent per channel), Australia Spam Act, India DLT registration. Full compliance cheatsheet here →
Short codes vs long codes vs toll-free
- Short codes (5-6 digit) — best deliverability, $1-3K/month, 4-12 week setup
- 10DLC (10-digit long code) — current US standard, requires brand registration ($4-50/mo per brand) + campaign approval
- Toll-free SMS — alternative to short codes, faster setup, must be verified
- International long codes — for cross-border, varies by country
Most US marketers should be on 10DLC in 2026. If you're not registered, carriers will silently throttle and eventually block your traffic.
A/B test these 5 things first
- Opener — name vs no name vs emoji prefix
- Length — 1 SMS (160 chars) vs concatenated (320 chars)
- CTA wording — "Claim now" vs "Get yours" vs "See offer"
- Time of day — 11am vs 4pm vs 7pm
- Send day — Tuesday vs Thursday vs Saturday
Test one variable at a time, minimum 1,000 sends per arm to get statistical significance.
Common SMS mistakes
- ❌ Sending the same message twice in a week — opt-out spike
- ❌ Using all caps — looks like spam, lower CTR
- ❌ More than one link per SMS — confuses recipient, lower CTR
- ❌ Vague CTA ("learn more") — be specific ("get your $5 off")
- ❌ Skipping the opt-out — TCPA fine waiting to happen
- ❌ Long shortened URLs — branded short links 2-3x higher CTR than bit.ly
Combining SMS with WhatsApp
SMS gets read fast but doesn't allow rich media. WhatsApp allows images/PDFs/voice but takes longer. Best practice: send SMS first, follow with WhatsApp 24h later if no response. Recipients who didn't engage with the SMS often respond to the richer WhatsApp follow-up.
Where to source numbers
For SMS to work at scale you need fresh, verified, opt-in mobile numbers — not scraped junk. Browse country-targeted lists by category →
Your first SMS campaign — checklist
- ☐ Brand registered on 10DLC (US) or local equivalent
- ☐ Sender ID + branded short-link domain set up
- ☐ Opt-in proof for every number on the list
- ☐ DNC scrubbed list
- ☐ STOP keyword auto-handled by your platform
- ☐ Send window respects 9pm-8am rule
- ☐ A/B test set up with 1,000+ per arm
- ☐ Tracking URLs with UTM parameters
- ☐ Reply auto-responder ready