SMS Campaigns
Send text message campaigns to your contacts with 90-98% open rates, instant delivery, and guaranteed mobile reach. Perfect for time-sensitive updates, reminders, and urgent communications.
What You Can Do
- Promotional Messages: Sales, offers, flash sales
- Transactional Alerts: Order updates, delivery notifications
- Appointment Reminders: Bookings, reservations, calendar events
- OTP & Verification: One-time passwords, 2FA codes
- Emergency Notifications: Urgent updates, service alerts
- Link Sharing: Drive traffic with shortened, trackable links
Prerequisites
1. Connect SMS Gateway Integration
Navigate to Settings → Integrations and connect an SMS provider:
| Provider | Best For | Coverage | Features |
|---|---|---|---|
| Fast2SMS | India market | India | Promotional + Transactional, DLT support |
| Twilio | Global reach | Worldwide | Advanced features, programmable SMS |
| Msg91 | India + International | 190+ countries | Bulk SMS, OTP, Unicode support |
| Vonage (Nexmo) | Enterprise | Global | Delivery tracking, analytics |
Setup Requirements:
- Sender ID: Your brand name (6-11 characters, alphanumeric)
- DLT Registration (India): Required for commercial SMS
- API Credentials: Obtain from your SMS provider
- Phone Number Verification: For two-way messaging (optional)
2. Create SMS Template (Optional)
While not mandatory like WhatsApp, templates help maintain consistency:
- Go to Channel → Templates
- Click + New Template → Select SMS
- Write your message:
- Character Count: Aim for 160 characters (1 SMS)
- Variables: Use merge tags for personalization (contact name, etc.)
- Link: Include shortened URL if needed
- Opt-out: Include unsubscribe instructions
- Save template
SMS Template Example:
Hi {{contact.first_name}},
Flash Sale! Get 30% off on {{product.category}}.
Use code: FLASH30
Valid until midnight.
Shop: https://yourstore.com/sale
Reply STOP to opt out.
3. Create Audience Segment
Define who receives your SMS campaign:
- Go to Channel → Segments
- Click + New Segment
- Add filters:
- Phone is not empty: Required
- SMS Opted In: Ensure consent (critical!)
- Country Code: Validate phone format
- Additional targeting filters
- Save segment
Important: Only message contacts who have explicitly opted in to receive SMS from you.
SMS Message Guidelines
Character Limits & Pricing
Single SMS (160 characters):
- 160 characters for standard GSM charset
- 70 characters for Unicode (emojis, non-Latin scripts)
- Costs: 1 SMS credit
Multi-Part SMS:
- Messages over 160 characters split into parts
- 153 characters per part (overhead for concatenation)
- Costs: Credits per part
Example:
161 characters = 2 SMS credits
306 characters = 3 SMS credits
Character Count Tips:
- Use URL shorteners to save characters
- Avoid emojis if not necessary (uses Unicode)
- Abbreviate where appropriate but stay professional
Message Structure
Effective SMS Format:
[SENDER NAME]
[MESSAGE CONTENT]
[CALL-TO-ACTION]
[OPT-OUT]
Example:
YourStore: Flash sale! 30% off all items. Shop now: https://bit.ly/sale30 Reply STOP to opt out.
Key Elements:
- Sender Identification: Brand name or sender ID
- Value Proposition: What's in it for them
- Urgency (if applicable): Limited time, stock running out
- Call-to-Action: What they should do
- Link: Shortened, trackable URL
- Opt-Out: Required for compliance
Content Rules
Allowed:
- ✅ Promotional offers (with opt-in)
- ✅ Transactional updates
- ✅ Appointment reminders
- ✅ OTPs and verification codes
- ✅ Service notifications
- ✅ Surveys and feedback requests
Not Allowed (varies by region):
- ❌ Unsolicited messages (spam)
- ❌ Misleading information
- ❌ Prohibited content (varies by provider and region)
- ❌ Messages to DND/Do Not Disturb numbers (without consent)
India-Specific (DLT Requirements):
- All commercial SMS must be registered with DLT
- Template approval required before sending
- Strict DND compliance
- Sender ID registration mandatory
Creating an SMS Campaign
Step-by-Step Guide
Step 1: Basic Details
- Navigate to Channel → Campaigns
- Click + New Campaign
- Fill in basic information:
- Campaign Name: Internal identifier (e.g., "Weekend Flash Sale")
- Description: Campaign purpose
- Channel: Select SMS
Step 2: Compose Message
Choose your approach:
Option A: Use Template
- Select existing SMS template
- Preview and adjust if needed
- Template variables auto-populate from contact data
Option B: Write Custom Message
- Type message directly in composer
- Character counter shows: used/limit
- Preview how message will look
- Add personalization variables
Message Composer:
Hi {{contact.first_name}},
Your appointment with {{company.name}} is confirmed for {{appointment.date}} at {{appointment.time}}.
Location: {{location.address}}
Reply YES to confirm or CANCEL to reschedule.
For help, call {{company.phone}}.
Character Counter Shows:
- Characters used: 187
- SMS parts: 2
- Cost per recipient: 2 credits
- Total cost: 2,000 credits (for 1,000 recipients)
Step 3: Add Link Tracking (Optional)
To track link clicks:
- Enable Link Tracking
- Enter your URL
- System generates short URL (e.g.,
https://s.expedify.ai/abc123) - Insert short URL in message
- Track clicks in analytics
Link Shortening Benefits:
- Saves characters
- Tracks click-through rate
- Provides click analytics
- Custom branded domains (optional)
Step 4: Select Audience
- Choose your target segment
- Critical Validation:
- ✅ All contacts have valid phone numbers
- ✅ Phone numbers include country code (+91, +1, etc.)
- ✅ SMS opt-in consent verified
- ✅ No DND numbers (if applicable)
- Preview audience size
- Estimated cost calculation shown
Audience Preview:
Segment: Weekend Shoppers
Total Contacts: 5,247
Valid Phone Numbers: 5,180
SMS Opted In: 4,856
Final Audience: 4,856
Estimated Cost:
- 1 SMS per contact × 4,856 = 4,856 credits
- At $0.01 per SMS = $48.56
Step 5: Configure SMS Settings
Sender Configuration:
- Sender ID: Your registered brand name (e.g., "YOURSTORE")
- Alpha format: Letters only, 6-11 characters
- Must be pre-registered with provider
- Sender Type: Promotional or Transactional
- Unicode Enabled: For emojis and non-Latin characters
Message Options:
- Flash Message: Display on screen without saving (use rarely)
- Track Delivery: Monitor delivery status (default: on)
- Track Links: Enable link click tracking (default: on)
- DLT Template ID: (India only) Enter approved DLT template ID
Compliance:
- Opt-out Text: Include in message (e.g., "Reply STOP to opt out")
- Time Restrictions: Don't send 9 PM - 9 AM local time
- Frequency Cap: Max messages per contact per day
Step 6: Scheduling Options
Choose when to send:
| Option | Description | Best For |
|---|---|---|
| Send Now | Immediate delivery | Urgent alerts, flash sales |
| Schedule | Specific date and time | Planned promotions |
| Recipient's Timezone | Same local time for all | Global audiences |
| Business Hours Only | 9 AM - 9 PM local time | Respect recipient availability |
| Stagger Send | Spread over time period | Prevent server overload |
Scheduling Examples:
Send Now: Delivers immediately
Schedule: May 15, 2024 at 10:00 AM
Recipient's Timezone: 10 AM in each contact's local time
Business Hours: Only between 9 AM - 9 PM
Stagger: Send 10,000 SMS over 2 hours (5,000/hour)
Step 7: Advanced Settings (Optional)
Batch Configuration:
- Batch Size: SMS per batch (default: 500)
- Delay Between Batches: Seconds between batches (default: 30s)
- Rate Limiting: Prevent exceeding provider limits (SMS/second)
- Priority: High/Normal/Low
Delivery Settings:
- Retry Failed: Auto-retry temporary failures
- Max Retries: Number of attempts (default: 3)
- Validity Period: How long to attempt delivery (e.g., 24 hours)
- Fallback Channel: Try email if SMS fails (optional)
Step 8: Review & Launch
- Preview Message:
- Review with actual contact data
- Check character count
- Verify link works
- Test personalization
- Send Test SMS: Send to your mobile number
- Cost Estimate: Review total credit consumption
- Final Checklist:
- ✅ Message is clear and concise
- ✅ Link works and is trackable
- ✅ All variables have data
- ✅ Opt-out text included
- ✅ Sender ID is correct
- ✅ Audience has opt-in consent
- ✅ Time restrictions set
- Launch: Click Send Now or Schedule
Campaign Execution & Monitoring
Real-Time Progress Tracking
Monitor SMS campaign delivery in real-time:
Campaign Dashboard Shows:
- Queued: Messages waiting to be sent
- Sent: Messages submitted to provider
- Delivered: Confirmed delivery to devices
- Failed: Delivery failures (with reasons)
- Clicked: Link clicks (if tracking enabled)
Delivery Status Codes:
- Delivered: Message received by phone
- Failed: Invalid number, network error
- Rejected: DND, blocked sender, operator rejection
- Expired: Couldn't deliver within validity period
- Unknown: Status not yet available
Campaign States
| State | Description | Actions Available |
|---|---|---|
| Draft | Not sent yet | Edit, Delete, Launch |
| Scheduled | Queued for future send | Edit, Cancel |
| Sending | Currently processing | Pause, Cancel |
| Paused | Temporarily halted | Resume, Cancel |
| Sent | Delivery complete | View Analytics |
| Cancelled | Stopped | View Details |
SMS Campaign Analytics
Key Metrics
Access detailed analytics in Channel → Campaigns → [Campaign Name]:
Delivery Metrics:
- Sent: Total SMS submitted to provider
- Delivered: Confirmed delivery to devices
- Delivery Rate: Delivered / Sent × 100
- Failed: Delivery failures
- Bounce Rate: Failed / Sent × 100
Engagement Metrics:
- Click-Through: Link clicks (if tracking enabled)
- Click Rate: Clicks / Delivered × 100
- Replies: Two-way responses (if enabled)
- Reply Rate: Replies / Delivered × 100
- Opt-Outs: Unsubscribe requests
- Opt-Out Rate: Opt-outs / Delivered × 100
Cost Metrics:
- Credits Used: Total SMS credits consumed
- Cost Per Message: Average cost
- Cost Per Click: Credits / Clicks
- ROI: Revenue / Cost × 100 (if conversion tracking enabled)
Time-Based Insights:
- Delivery Speed: Average time to deliver
- Engagement by Hour: When contacts click/reply
- Best Days: Highest engagement days
- Response Times: How quickly contacts reply
Typical SMS Performance
Benchmarks:
- Delivery Rate: 95-99%
- Open Rate: 90-98% (within 3 minutes)
- Click Rate: 10-30% (with compelling offer)
- Reply Rate: 5-15% (if two-way messaging)
- Opt-Out Rate: < 1% (with good targeting)
Why SMS Performs Well:
- 100% mobile reach
- Instant push notifications
- Short, scannable content
- Personal communication channel
- Less competition than email
Individual Contact Activity
View detailed per-contact data:
- Open campaign analytics
- Click Activity Timeline
- See for each contact:
- Send timestamp
- Delivery timestamp
- Delivery status
- Link clicks
- Reply content
- Opt-out status
Best Practices
Getting Opt-In Consent
Critical Requirement: SMS requires explicit opt-in consent. Violating this can result in:
- Legal penalties (TCPA, GDPR violations)
- Account suspension
- Expensive fines ($500-$1,500 per message in US)
How to Get Consent:
- Website Form: Explicit checkbox
☑ I agree to receive SMS messages from [Company]
including promotions and updates. Message and
data rates may apply. Reply STOP to opt out.
- Keyword Opt-In: Text-to-join
Text JOIN to 12345 to receive exclusive offers!
Standard message rates apply. Text STOP to unsubscribe.
- Point of Sale: In-person sign-up
"May we send you SMS updates about your order?"
[ ] Yes, I agree (provide mobile number: ____________)
- Double Opt-In (recommended):
Step 1: Contact provides number and consents
Step 2: Send confirmation SMS
Step 3: Contact replies YES to confirm
Example confirmation SMS:
Reply YES to confirm you want to receive SMS from YourStore.
Reply STOP to cancel. Msg&data rates may apply.
Message Frequency
Guidelines:
- Promotional: 2-4 per month maximum
- Transactional: As needed (no limit)
- Reminders: Event-based only
- Never: More than 1 per day per contact
Frequency Best Practices:
✅ Good:
- Monday: Flash sale alert
- (Gap of 7+ days)
- Next Tuesday: New arrival notification
✗ Bad:
- Monday: Sale alert
- Tuesday: Reminder
- Wednesday: Last chance
- (Too frequent, feels like spam)
Content Best Practices
Effective SMS Structure:
✅ Good (145 characters):
YourStore: FLASH SALE! 40% off everything.
Shop now: bit.ly/flash40
Ends tonight 11:59 PM.
Text STOP to opt out.
✗ Bad (210 characters - wastes 2 SMS):
Hello valued customer! We wanted to reach out
to let you know about our amazing flash sale
happening today where you can save up to 40%...
Writing Tips:
- Be Direct: Get to the point immediately
- Create Urgency: Limited time, stock, spots
- Clear CTA: One action, make it obvious
- Personalize: Use name when it adds value
- Brand First: Lead with sender identification
- Respect Length: Stay under 160 characters when possible
Tone Guidelines:
- Conversational but professional
- Friendly, not overly casual
- Respectful of recipient's time
- Clear value proposition
Link Best Practices
URL Shortening:
- Use URL shortener to save characters
- Track clicks for analytics
- Use branded short domain (e.g., s.yourbrand.com)
- Make URLs clear and trustworthy
Link Placement:
✅ Good:
Save 30% today! Shop: bit.ly/save30
(Link is clear and trackable)
✗ Bad:
Click https://yourstore.com/products/sale/
spring-2024/limited-time-offer?utm_source=sms
(Too long, wastes characters)
Timing Best Practices
Best Send Times:
| Industry | Best Day | Best Time |
|---|---|---|
| Retail | Thursday-Saturday | 10 AM - 2 PM, 6-8 PM |
| Restaurants | Thursday-Saturday | 11 AM - 1 PM, 5-7 PM |
| Services | Tuesday-Thursday | 10 AM - 12 PM |
| B2B | Tuesday-Thursday | 9 AM - 11 AM |
| Events | Varies | 7 days before, day before, day of |
Time Restrictions:
- Never send 9 PM - 9 AM local time
- Avoid early mornings on weekends
- Best during business hours for B2B
- Best evenings for B2C
Timezone Considerations:
- Always send in recipient's local timezone
- Use "Recipient's Timezone" scheduling option
- Set business hours restrictions
Troubleshooting
Low Delivery Rate (below 95%)
Possible Causes:
- Invalid phone numbers
- DND (Do Not Disturb) numbers
- Operator restrictions
- Sender ID not registered
- Insufficient credits
Solutions:
- Validate phone numbers (include country code)
- Remove DND numbers from list (India)
- Register sender ID with operators
- Check DLT registration (India)
- Verify account has sufficient credits
- Contact SMS provider support
Messages Marked as Spam
Possible Causes:
- Too frequent sending
- Content flagged as spam
- Sender ID not recognized
- Lack of opt-in consent
Solutions:
- Reduce message frequency
- Improve message content (avoid spam words)
- Use registered, recognizable sender ID
- Verify opt-in consent
- Include clear opt-out instructions
- Send during business hours
High Opt-Out Rate (above 2%)
Possible Causes:
- Messages not relevant
- Too frequent
- Misleading opt-in process
- Poor targeting
Solutions:
- Improve message relevance and targeting
- Reduce frequency
- Review opt-in process (clear expectations)
- Segment audience better
- Provide more value in messages
- Make opt-out process clear
Links Not Being Clicked
Possible Causes:
- Link not trustworthy
- Value proposition unclear
- CTA not compelling
- Sent at wrong time
Solutions:
- Use branded short domain
- Make value proposition clear
- Create urgency
- Test different send times
- Improve CTA copy
- A/B test message variations
Advanced Features
Two-Way Messaging
Enable conversations with contacts:
Use Cases:
- Customer support
- Appointment confirmations
- Surveys and feedback
- Order status inquiries
Setup:
- Get dedicated phone number (not sender ID)
- Enable two-way messaging in integration
- Set up auto-replies
- Route inbound messages to team
Auto-Reply Example:
Contact sends: "STATUS"
Auto-reply: "Your order #12345 shipped yesterday.
Track: bit.ly/track12345. Need help? Reply HELP."
Keyword Automation
Trigger actions based on keywords:
Opt-In Keywords:
- JOIN, SUBSCRIBE, START → Add to list
- STOP, UNSUBSCRIBE, END → Remove from list
- HELP, INFO → Send information
Custom Keywords:
- SALE → Send current promotions
- HOURS → Send business hours
- LOCATION → Send store address
MMS (Multimedia Messaging)
Send images, GIFs, videos (where supported):
Use Cases:
- Product images
- Coupons/QR codes
- Event invitations
- Visual tutorials
Limitations:
- Higher cost (2-3× SMS cost)
- Not supported everywhere
- Larger file size limits
- Requires MMS-capable device
Drip Campaigns
Automated SMS sequences:
- Use workflow automation
- Set up triggers (form submission, purchase, etc.)
- Create SMS sequence with delays
- Monitor engagement
Example sequence:
Day 1: Welcome message
Day 3: First tip/value
Day 7: Product recommendation
Day 14: Exclusive offer
Compliance & Regulations
TCPA (USA)
Requirements:
- Prior express written consent
- Clear opt-out mechanism
- Respect Do Not Call list
- Send only 8 AM - 9 PM local time
Violations:
- $500-$1,500 per message
- Class action lawsuits
- FCC penalties
GDPR (EU)
Requirements:
- Explicit consent
- Easy unsubscribe
- Data protection
- Privacy policy
TRAI/DLT (India)
Requirements:
- DLT registration mandatory
- Template approval required
- Sender ID registration
- DND list compliance
- Header registration
Best Practices for Compliance
- Keep Records: Store opt-in consent
- Honor Opt-Outs: Process within 24 hours
- Time Restrictions: Follow local regulations
- Clear Identification: Always identify sender
- Frequency Limits: Don't spam
- Data Security: Protect phone numbers
Related Resources
- SMS Templates → - Create message templates
- Segments → - Target the right audience
- Campaign Analytics → - Track performance
- Integrations → - Connect SMS providers
- Workflows → - Automate SMS sequences