SMS overview
Send SMS and MMS messages with OneSignal. Learn how to set up, personalize, and analyze messages to engage your users in real time.
SMS and MMS messages (commonly known as “text messages”) are highly engaging, real-time messages that reach your user’s device via their phone number. They are especially effective for time-sensitive offers, transactional alerts, and personalized engagement.
To comply with U.S. carrier regulations, proper consent and registration (e.g., 10DLC or toll-free) are required before sending SMS or MMS messages.
What you can do with OneSignal SMS
- Send marketing and transactional messages from the Dashboard or via the API
- Create automated multi-channel flows with Journeys
- Precisely target users using Segments, filters, or user data
- Personalize content with user attributes and Dynamic Content
- Connect with CRMs & tools like HubSpot, Mixpanel, Amplitude, Zapier, and more
SMS setup
Before sending SMS, follow these quick setup guides:
SMS Setup
Get started quickly with OneSignal SMS or integrate with a provider like Twilio.
Toll-free / 10DLC registration requirements
Register for toll-free or 10DLC numbers to ensure carrier compliance and message deliverability.
SMS consent keyword management
Manage keywords like STOP, HELP, and START for compliance and user control.
SMS opt-in
SMS opt-in
Learn how to capture valid user consent for SMS messaging.
Importing phone numbers
Import phone numbers to expand your audience.
Features & use cases
Message Personalization
Use dynamic content and user data to personalize messages.
Multi-Language Messaging
Send SMS in multiple languages based on user preferences.
Transactional messages
Send time-sensitive alerts and notifications.
Verification, OTP, and two-factor authentication
Implement secure verification and authentication methods.
Analytics
Measure performance and optimize engagement:
SMS message reports
Use built-in analytics for message-level insights.
Event Streams
Stream SMS events to your data warehouse or BI tools.
View messages API
Programmatically retrieve SMS delivery and engagement metrics.
Analytics overview
Learn more about OneSignal’s analytics capabilities.
Send SMS & MMS
Choose your sending method:
Journeys
Automate personalized messaging flows triggered by user actions.
API
Send messages programmatically using our REST API.
Dashboard
Follow the steps below to send directly from OneSignal’s dashboard.
Steps for sending messages with OneSignal:
Select the message channel
Go to Messages > SMS > New SMS or use the Create message API.
Choose a composition method
- Start from scratch - Use Templates or saved layouts
Set a name and label
Optionally set internal metadata for tracking. - API: name
Set an audience
Include or exclude Segments:
- Send to default segment: Defaults to all “Subscribed Users” if none set.
- Send to specific segments: Include and exclude segments explicitly. Multiple segments have an “OR” relationship; duplicate subscriptions are automatically removed.
SMS audience segment selection interface
Targeting method | Dashboard | API |
---|---|---|
Segments | ✅ | ✅ |
Filters (API only) | ❌ | ✅ |
Aliases (API only) | ❌ | ✅ |
Schedule and delivery options
SMS delivery scheduling options
- Scheduled Delivery: Send at a specific time up to 30 days in advance (
send_after
)
Content
Carrier pricing is based on the number of message segments which depend on:
- The total number of characters in your message
- The type of character encoding used
Messages with emojis or personalization may use UCS-2 encoding, which significantly reduces the character limit per segment.
Always review the estimated character and segment count shown in the OneSignal dashboard to avoid unexpected costs.
SMS supports plain text and emojis. Formatting like bold and italics is not supported.
- Personalizing messages may increase the character count, causing your SMS to exceed the limit and be split into multiple segments—leading to higher costs.
- Always test your SMS by sending it to yourself before sending it to your audience.
Character encoding and emojis
- GSM-7: Up to 160 characters per segment; supports basic Latin characters and symbols.
- UCS-2: Up to 70 characters per segment; used for emojis and non-Latin scripts.
When composing your SMS/MMS messages, keep track of: - The number of characters used. - The type of encoding required. Since longer messages are split into multiple message segments, this can increase costs. To avoid unexpected charges, monitor character usage and message segmentation in the OneSignal dashboard before sending.
Example uses GSM-7 encoded characters, likely sending 2 segments.
Example uses UCS-2 encoded characters, likely sending 3 segments.
URLs and trackable links
SMS messages support clickable URLs, but space is limited—so shortening your links is essential.
However, do not use public URL shorteners like TinyURL or Bitly. These are often flagged or blocked by mobile carriers, which can prevent your messages from being delivered.
To ensure reliable delivery and track user engagement, OneSignal provides a built-in URL shortener that generates carrier-safe, trackable links. You can create these links in the dashboard or via the API.
Create links in the Dashboard
Use the dashboard to generate safe, trackable shortened URLs.
Create links via the API
Shorten and track URLs programmatically using the OneSignal API.
Media
You can include up to 10 media URLs per MMS, with a total size under 5MB. Supported types:
image/jpeg
image/gif
image/png
- Other media formats
MMS media attachment interface
You are now ready to collect more phone numbers and continue sending!