SMS Marketing Best Practices
Learn how to create effective SMS marketing campaigns that drive engagement, maintain compliance, and deliver measurable results through the most direct communication channel.
Understanding SMS Marketing
Why SMS Marketing Matters
SMS (Short Message Service) remains a powerful marketing channel with exceptional performance:
- 98% open rate (highest of all channels)
- 90% of messages read within 3 minutes of delivery
- 45% response rate (vs 6% for email)
- No app required – works on all mobile phones
- Immediate delivery – perfect for time-sensitive offers
- 17% proven ROI channel and growing (2025 Lifecycle Insights Report)
SMS vs Other Channels
| Feature | SMS | ||
|---|---|---|---|
| Open Rate | 98% | 21% | 98% |
| Read Time | 3 min | Hours/Days | Minutes |
| Character Limit | 160 | Unlimited | Unlimited |
| Rich Media | No | Yes | Yes |
| Cost per Message | Medium | Low | Medium-High |
| Global Reach | Universal | Universal | 2B users |
Best Strategy: Use SMS for urgent, time-sensitive communications and layer with email for detailed content.
Getting Started
Building Your SMS List
Ethical List Building:
Get clear, written permission before sending any marketing SMS.
State message frequency, purpose, and how to opt-out during signup.
Purchased lists violate regulations, harm reputation, and generate complaints.
Having email doesn't mean you can send SMS without separate consent.
Compliant Opt-in Examples
Website Signup Form:
<form>
<h3>Get 20% off your first order!</h3>
<input type="tel" placeholder="Mobile Number" required>
<label>
<input type="checkbox" required>
I agree to receive promotional SMS from [Company].
Msg frequency varies. Msg & data rates may apply.
Reply STOP to opt-out. <a href="/terms">Terms</a> |
<a href="/privacy">Privacy</a>
</label>
<button>Get My Discount</button>
</form>
Keyword Opt-in:
Text DEALS to 12345 for exclusive offers!
Msg & data rates may apply. 4 msgs/month.
Reply HELP for help, STOP to cancel.
Terms: company.com/terms
Double Opt-in Confirmation:
Welcome to [Company] SMS! 🎉
Reply YES to confirm & get 20% off.
4 msgs/month. Msg & data rates may apply.
Reply STOP to cancel anytime.
Required Opt-in Elements
Every opt-in must include:
- Clear Description: What messages will contain
- Frequency: How often you'll send (e.g., "up to 4 msgs/month")
- Cost Disclosure: "Msg & data rates may apply"
- Opt-out Instructions: "Reply STOP to cancel"
- Help Information: "Reply HELP for assistance"
- Terms & Privacy Links: Accessible policies
Compliance and Regulations
TCPA (USA) - Telephone Consumer Protection Act
Key Requirements:
- Prior Express Written Consent required for marketing messages
- Time Restrictions: 8 AM - 9 PM recipient's local time
- Clear Identification: Identify your business in every message
- Opt-out Mechanism: Honor within 10 days (immediate recommended)
- No Autodialers without consent
- Penalties: $500-$1,500 per violation
TCPA-Compliant Message:
[Company]: Flash Sale! 50% off sitewide today only.
Shop now: bit.ly/sale50
Msg3/4 this month. Reply STOP to opt-out.
CTIA Guidelines (USA Mobile Carriers)
Messaging Principles:
- Messages must provide value
- Respect sending limits (avoid spam)
- Use registered phone numbers
- Proper content filtering
- Maintain clean sender reputation
Restricted Content:
- Cannabis and CBD
- Alcohol (without age gate)
- Firearms and weapons
- Adult content
- Phishing or fraud
- Misleading information
International Regulations
GDPR (Europe):
- Explicit consent required
- Right to data access and deletion
- Data minimization
- Breach notification (72 hours)
India's Telecom Regulations:
- DLT (Distributed Ledger Technology) registration required
- Template approval for promotional SMS
- Time restrictions: 9 AM - 9 PM
- TRAI guidelines compliance
- Sender ID registration
Canada (CASL):
- Express consent required
- Clear identification
- Unsubscribe mechanism
- Penalties up to $10M CAD
DND Registry Compliance (India)
Do Not Disturb:
- Check numbers against DND registry
- Don't send promotional SMS to DND numbers
- Transactional SMS allowed for existing customers
- Register as entity with TRAI
- Use approved sender IDs
Message Crafting Best Practices
Writing Effective SMS Copy
The 160-Character Challenge:
SMS has a 160-character limit per message. Make every character count:
❌ Bad (172 chars):
Hey there! We hope you're doing great today.
We wanted to let you know that we're having an
amazing sale on all our products. Check it out!
✓ Good (155 chars):
[Brand] Flash Sale! 🔥
50% off everything today only.
Shop: brand.co/50off
Code: FLASH50
Ends midnight. Reply STOP to opt-out
Character-Saving Tips:
- Use URL shorteners (bit.ly, custom domains)
- Abbreviate when clear (% instead of percent)
- Remove unnecessary words
- Use emojis sparingly (1-2 max)
- Front-load important information
Message Structure
Winning Formula:
[Sender] + [Hook] + [Value] + [CTA] + [Opt-out]
Example:
[Fitness+] LAST CHANCE! ⏰
50% off annual membership.
Join 10k+ members: fit.plus/join
Reply STOP to opt-out
Component Breakdown:
Sender (6-11 chars):
- Brand name or recognizable identifier
- Consistent across all messages
- Example: [Nike], [Amazon], [Fitness+]
Hook (10-20 chars):
- Grab attention immediately
- Create urgency or curiosity
- Examples: "FLASH SALE!", "NEW ARRIVAL", "EXPIRES TODAY"
Value Proposition (40-60 chars):
- Clear benefit or offer
- Specific details (amounts, products)
- Examples: "50% off all sneakers", "Free shipping on $50+"
Call-to-Action (20-40 chars):
- Short, trackable URL
- Clear next step
- Examples: "Shop: nke.co/sale", "Claim: bit.ly/offer"
Opt-out (20-30 chars):
- Required by law
- Example: "Reply STOP to opt-out" or "Text STOP2end"
Tone and Voice
Best Practices:
- Conversational: Write like you're texting a friend
- Urgent: Create appropriate FOMO (fear of missing out)
- Personal: Use "you" language
- Clear: No ambiguity in 160 characters
- Branded: Consistent with overall brand voice
Examples by Industry:
E-commerce (Casual):
[Store] Hey! Your cart's getting lonely 😢
Those sneakers you loved are still waiting.
Checkout now: store.co/cart
STOP2end
B2B (Professional):
[Company] Your trial ends in 3 days.
Continue with 25% off annual plans.
Upgrade: co.link/save25
Txt STOP2unsub
Restaurant (Friendly):
[Bistro] Hungry? 🍕
Today's special: 2 pizzas for $20!
Order: bistro.me/2for20
Open till 10PM. Txt STOP2end
Timing and Frequency
Best Send Times
General Guidelines:
| Day | Best Times | Avoid |
|---|---|---|
| Monday | 12 PM - 1 PM, 5 PM - 6 PM | 8 AM - 10 AM (commute) |
| Tuesday-Thursday | 10 AM - 12 PM, 5 PM - 7 PM | During lunch |
| Friday | 10 AM - 12 PM, 3 PM - 5 PM | After 6 PM |
| Saturday | 10 AM - 12 PM | Before 10 AM |
| Sunday | 12 PM - 3 PM | Before 11 AM |
Never Send:
- Before 8 AM or after 9 PM (illegal in many jurisdictions)
- During major holidays
- Late at night or early morning
- During typical work hours (for B2C)
Industry-Specific Timing:
Restaurants: 11 AM - 12 PM, 5 PM - 6 PM (meal times)
Retail: 10 AM - 12 PM, 6 PM - 8 PM (free time)
B2B: 10 AM - 3 PM (business hours)
Entertainment: 6 PM - 9 PM (evening plans)
Fitness: 6 AM - 8 AM, 5 PM - 7 PM (workout times)
Message Frequency
Recommended Frequency:
- High: 8-12 messages per month (every 2-3 days)
- Medium: 4-6 messages per month (1-2 per week)
- Low: 1-3 messages per month (occasional)
Frequency by Message Type:
Promotional: 1-2 per week maximum
Transactional: As needed (no limit)
Reminders: Based on user actions
Alerts: Time-sensitive only
More than 2-3 promotional messages per week leads to high opt-out rates and spam complaints.
Send Time Optimization
Test and Learn:
- Send to small segment at different times
- Measure open rate, click rate, response rate
- Identify best-performing time slots
- Implement for larger sends
- Continue testing quarterly
Use Oblic's AI Optimization:
- Predicts optimal send time per contact
- Based on historical engagement
- Timezone-aware delivery
- Automatically adjusts over time
Message Types and Use Cases
Promotional Messages
Flash Sales:
[Brand] ⚡ Flash Sale Alert!
60% off for 6 hours ONLY
Shop now: brand.co/flash60
Ends 6PM EST today!
New Arrivals:
[Fashion] NEW IN: Summer Collection 🌞
First look for SMS subscribers only.
Shop: fash.co/summer26
Reply STOP to opt-out
Exclusive Offers:
[VIP] Just for you! 💎
Extra 20% off sale items.
Code: VIP20 at checkout
Valid 48hrs: shop.co/vip
Transactional Messages
Order Confirmation:
[Store] Order #12345 confirmed! ✅
Total: $89.99
Est. delivery: May 15-17
Track: store.co/track/12345
Shipping Updates:
[Store] Your order has shipped! 📦
Tracking: 1Z999AA10123456784
Expected delivery: Tomorrow by 8PM
Track: ups.com/track
Appointment Reminders:
[Clinic] Reminder: Dr. Smith appt
Tomorrow, May 15 at 2:30 PM
Location: 123 Main St
Reply C to confirm, R to reschedule
Abandoned Cart Recovery
Sequence Strategy:
Message 1 (1 hour):
[Store] You left something behind! 🛒
3 items in your cart ($89)
Complete order: store.co/cart
Free shipping today!
Message 2 (24 hours):
[Store] Still interested?
Your cart is waiting + 10% off!
Code: CART10
Checkout: store.co/cart10
Message 3 (72 hours):
[Store] Last chance! ⏰
Cart expires in 24hrs + 15% off
Code: SAVE15
Checkout: store.co/save15
Two-Way Conversations
Conversational SMS:
Customer: "Do you have size 10 in stock?"
Business: "Yes! Air Max in size 10 available
in Black & White. Which color?
Reply 1 for Black, 2 for White"
Customer: "1"
Business: "Perfect! Black size 10 reserved.
Complete order: store.co/abc123
Held for 2 hours. Reply HELP for assistance"
Keyword Responses:
STOP → "You're unsubscribed from [Brand].
No more messages. Text START to rejoin."
HELP → "[Brand] Help: Msg & data rates apply.
4 msgs/month. support@brand.com
or call 1-800-XXX-XXXX"
START → "Welcome back to [Brand]!
You'll receive exclusive offers.
Reply STOP to opt-out anytime."
Personalization Strategies
Dynamic Content
Basic Personalization:
Generic:
"Flash sale happening now! Shop today."
Personalized:
"Hi Sarah! Your favorite brand Nike is
50% off today only. Shop: nike.co/sarah50"
Advanced Personalization:
Hi {{first_name}},
{{product_viewed}} you checked out yesterday
is now {{discount}}% off!
Only {{stock_count}} left in your size.
Shop: {{tracking_url}}
Behavioral Triggers
Post-Purchase:
Day 3: "How's your new {{product}}?
Reply with feedback & get 15% off next order!"
Day 14: "Love your {{product}}?
Leave a review: review.co/{{order_id}}
Get $10 off your next purchase!"
Browse Abandonment:
"Still thinking about {{product_name}}?
Get 10% off + free shipping today!
Code: THINK10
Shop: store.co/{{product_id}}"
Milestone Messages:
Birthday:
"Happy Birthday {{name}}! 🎉
Celebrate with 25% off your order today.
Code: BDAY25
Treat yourself: store.co/bday"
Anniversary:
"1 year with us! 🎊
Thanks for being a loyal customer.
Here's 30% off: store.co/thanks30"
Segmentation Tactics
Key Segments
By Engagement:
- Super Engaged: Opens/clicks 80%+ → Premium offers
- Moderately Engaged: Opens 40-80% → Regular promotions
- At Risk: Opens less than 40% → Win-back campaigns
- Inactive: No opens 60+ days → Re-engagement
By Purchase Behavior:
- First-time buyers: Welcome series
- Repeat customers: Loyalty rewards
- High-value: VIP exclusive offers
- Lapsed: Special comeback discounts
By Demographics:
- Location: Local store events, weather-based offers
- Age: Age-appropriate products
- Gender: Targeted product recommendations
By Preferences:
- Product categories of interest
- Preferred shopping times
- Communication frequency choice
- Channel preferences
Segmentation Examples
Location-Based:
NYC: "[Store] ❄️ Snow alert!
Hot coffee & cozy wear 40% off.
Visit us: 5th Ave store open till 8PM"
LA: "[Store] ☀️ Beach weather!
Swimwear sale starts now!
Shop: store.co/swim26"
Purchase History:
Sneaker buyer: "[Brand] NEW Jordan drop! 🏀
Early access for top customers.
Limited stock: jord.co/early"
Never bought: "[Brand] First order? Get 25% off!
Code: FIRST25 at checkout.
Shop: store.co/welcome"
URL Shortening and Tracking
Link Best Practices
Use Short URLs:
- Saves precious characters
- Looks cleaner and more professional
- Enables tracking and analytics
- Increases click-through rates
Custom vs Generic:
❌ Generic: https://bit.ly/3xK9mP2
✓ Custom: brand.co/sale50
Tracking Parameters:
Base URL: https://store.com/summer-sale
Add UTM parameters:
?utm_source=sms
&utm_medium=promotional
&utm_campaign=summer_sale_2026
&utm_content=may_15
Shorten to: store.co/summer26
Link Tracking Metrics
Track these metrics for every link:
- Click-through rate (CTR)
- Unique clicks
- Time to click
- Device type
- Geographic location
- Conversion rate
Compliance Checklist
Pre-Send Checklist
All recipients explicitly opted in for SMS marketing.
Sending between 8 AM - 9 PM recipient's local time.
Company name clearly identified in message.
"Reply STOP to opt-out" or similar included.
All short URLs work and point to correct destinations.
Message under 160 characters (or accounting for multiple segments).
No restricted content, spam triggers, or misleading claims.
Opt-out Management
Immediate Processing:
- Remove from marketing list instantly
- Confirm opt-out with final message
- Never send promotional messages again
- Keep transactional for existing orders
Opt-out Confirmation:
You've been unsubscribed from [Brand]
marketing messages. You may still receive
order updates. Text START to rejoin.
Questions? support@brand.com
Analytics and Optimization
Key Metrics
Delivery Metrics:
- Sent messages
- Delivered (aim for >95%)
- Failed/bounced
- Carrier filtering
Engagement Metrics:
- Click-through rate (aim for 15-25%)
- Conversion rate (aim for 5-10%)
- Response rate for 2-way messaging
- Opt-out rate (keep less than 1%)
Revenue Metrics:
- Revenue per message
- Revenue per recipient
- ROI (Revenue / Cost)
- Customer lifetime value
A/B Testing
Test Variables:
Timing: 10 AM vs 2 PM vs 6 PM
Copy: Urgent vs Casual tone
Offer: 20% off vs $10 off vs Free Shipping
CTA: "Shop Now" vs "Get Offer" vs "Claim Deal"
Personalization: Name vs No Name
Emojis: With 🔥 vs Without
Testing Process:
- Split list (minimum 1,000 per variant)
- Test one variable at a time
- Wait 24 hours for results
- Analyze statistical significance
- Implement winner
Common Mistakes to Avoid
Biggest compliance violation. Always get explicit opt-in first.
More than 2-3 promotional messages per week causes fatigue and opt-outs.
With 160 characters, be crystal clear. No ambiguity allowed.
Sending at 3 AM recipient time destroys trust and causes complaints.
Every message needs obvious next step. What should they do?
Always test short URLs before sending. Broken links waste your message.
Integration with Other Channels
SMS + Email Strategy
Anchor on Email, Layer SMS:
- Use email for detailed content, newsletters, nurture
- Use SMS for urgent, time-sensitive messages
- Test combined campaigns vs single-channel
Example Combined Campaign:
Day 1: Email - "Summer Sale Preview"
Day 2: SMS - "Sale starts NOW! 50% off"
Day 3: Email - "Popular items from sale"
Day 5: SMS - "Last 24 hours of sale!"
Day 6: Email - "Thanks for shopping"
SMS + WhatsApp
Channel Selection:
- SMS: Universal reach, time-sensitive, promotional
- WhatsApp: Rich media, conversational, support
Coordinated Strategy:
- SMS for flash sales and alerts
- WhatsApp for order updates with tracking
- Both for cart abandonment (test which performs better)