SMS (Short Message Service) is the most universal messaging channel, reaching virtually any mobile phone without requiring an internet connection or app installation.
When to Use SMS
- Verification codes: OTPs, 2FA
- Transactional alerts: Order confirmations, shipping updates
- Time-sensitive notifications: Appointment reminders
- Universal reach: When you need to reach users without smartphones
Sending an SMS
You can optionally specify a sender by passing zavuSender (TypeScript), zavu_sender (Python), or the Zavu-Sender header (cURL). If omitted, your project’s default sender is used.
Message Length
SMS messages are limited to 160 characters (GSM-7 encoding) or 70 characters (Unicode). Longer messages are split into multiple segments.
Keep messages under 160 characters when possible to avoid multi-segment charges.
Character Encoding
GSM-7 supports basic Latin characters. Using emojis, accents, or non-Latin scripts triggers Unicode encoding:
GSM-7 Character Set
Any character outside this set triggers Unicode encoding.
Sender ID
Some countries support alphanumeric sender IDs (e.g., “ZAVU” instead of a phone number).
Alphanumeric sender IDs cannot receive replies. Use a phone number if you need two-way SMS.
Supported Countries
SMS Templates
Send pre-defined templates via SMS by specifying channel: "sms" and messageType: "template":
If the template has an smsBody, it will be used instead of the default body. Contact variables like {{contact.first_name}} are automatically resolved from the recipient’s contact metadata.
Delivery Status
Check message status by ID:
Common Errors
Compliance
SMS messaging is regulated. Ensure you have consent before sending messages.
Requirements
- Opt-in consent: Users must explicitly agree to receive SMS
- Opt-out mechanism: Include instructions to unsubscribe (e.g., “Reply STOP to unsubscribe”)
- Business identification: Identify your business in the message
- Time restrictions: Avoid sending during quiet hours (typically 9 PM - 9 AM local time)
Example Compliant Message
Best Practices
- Keep it short - Aim for under 160 characters
- Identify yourself - Start with your brand name
- Be actionable - Include clear next steps or links
- Respect timing - Send during business hours in the recipient’s timezone
- Provide opt-out - Always include unsubscribe instructions for marketing messages