{{variable_name}}).

To send SMS, you need an SMS vendor integrated with SuprSend. See SMS vendor integrations for the vendor list and setup.
SMS editor
The SMS editor has a single field: Body — the full text of the SMS message. This is everything the recipient sees. Aim for one segment (160 GSM-7 characters) — each extra segment doubles cost. Front-load the key info, include one clear CTA, and avoid shortened URLs (some carriers flag them as spam; use a branded domain if needed). Supports Handlebars variables and emoji.Adding dynamic content
You can add variables in the template to personalise it for each recipient. Variables are replaced with actual data at send time. Pass values via your workflow trigger payload or use recipient/tenant properties.Add variables in the Variables panel
Add sample data in the Variables panel (Input Payload section) on the left side of the editor. This powers auto-suggestions and the live preview. For the full guide on setting up variables, see Adding dynamic content.
Use variables in the template
Type
{{ in the body field — matching variables appear as auto-suggestions. You can also type variable names manually following Handlebars syntax.Examples using this sample data:- Nested variable:
{{event.location.city}}→ renders asBangalore - Variable with space in name:
{{event.[first name]}} - URL (avoid escaping): use triple braces
{{{tracking_url}}}for URLs with&,?,=
- The variable is defined in the Variables panel.
- The variable name matches the Handlebars syntax exactly.
Preview and test
The right panel shows a live phone preview, updated in real time as you type. Variables render using data from the Variables panel. Click Test in the top-right corner to send a real SMS to a real phone number. This uses the live version — commit your changes before testing. See Testing a Template for the full guide.Commit
Click Commit in the top bar to publish the current draft as a new live version. Add an optional description for versioning. The template goes live immediately and is used for all subsequent workflow triggers.SMS in India (DLT)
India requires all SMS templates to be registered and approved through a DLT (Distributed Ledger Technology) portal before they can be sent. The SMS editor shows additional fields when DLT approval is enabled.Enable DLT approval
DLT fields
With DLT enabled, the SMS editor shows: Message Type — select the type: Transactional (triggered by a user action — delivery updates, OTPs), Promotional (marketing messages without explicit consent), or Engagement (re-engagement messages to existing users — feature promotions, discount offers). Header — the sender ID (6 alphanumeric characters) registered with DLT. Separate headers exist for each message type. Body — the SMS content. Must exactly match the template registered on the DLT portal. Variables must align with the DLT placeholder format.DLT approval flow
Design and commit
Author the template content and click Commit. The version enters Approval Pending state (it does not go live).
Approval at vendor portal
SuprSend submits the template to your SMS vendor for DLT approval. You’ll be notified when approved or rejected.
Common scenarios
OTP / verification code
OTP / verification code
| Field | Value |
|---|---|
| Body | Your verification code is {{otp_code}}. It expires in {{expiry_minutes}} minutes. Do not share this code with anyone. |
Order / delivery update
Order / delivery update
| Field | Value |
|---|---|
| Body | Hi {{$recipient.name}}, your order #{{order_id}} has been shipped! Track it here: {{{tracking_url}}} |
{{{tracking_url}}} for URLs to avoid HTML-escaping special characters like & and ?.Appointment reminder
Appointment reminder
| Field | Value |
|---|---|
| Body | Reminder: Your appointment with {{provider_name}} is on {{appointment_date}} at {{appointment_time}}. Reply CONFIRM to confirm or CANCEL to cancel. |
Promotional offer
Promotional offer
| Field | Value |
|---|---|
| Body | Flash sale! Get {{discount}}% off on all items. Shop now: {{{shop_url}}}. Valid till {{expiry_date}}. Reply STOP to opt out. |
Best practices
- Identify yourself — start with your brand name or use a registered sender ID so recipients know who the message is from.
- Time-sensitive messages — pair SMS with a delay node or time window to avoid sending at inconvenient hours.
- DLT (India) — ensure your template body exactly matches the DLT-registered content, including punctuation and variable placeholders.
Frequently asked questions
What is DLT and when do I need it?
What is DLT and when do I need it?
DLT (Distributed Ledger Technology) is a regulatory requirement in India. All SMS templates sent in India must be registered with a DLT portal, have an approved header (sender ID), and go through an approval process before going live. If you’re sending SMS outside India, you don’t need DLT — templates go live immediately on commit.
Why was my DLT template rejected?
Why was my DLT template rejected?
Common reasons: the template body doesn’t exactly match the content registered on the DLT portal (even minor punctuation differences count), the header is not registered for the selected message type, or the variable placeholders don’t match the DLT registration.
Why is my SMS being sent as multiple segments?
Why is my SMS being sent as multiple segments?
SMS has a per-segment character limit. Each extra segment is billed separately by your vendor.
A single emoji or non-Latin character forces the entire message into UCS-2, cutting capacity from 160 to 70. Avoid emojis in transactional SMS to keep costs down.
| Encoding | Chars per segment | When it applies |
|---|---|---|
| GSM-7 | 160 (single), 153 (multi-part) | Standard Latin characters, digits, basic punctuation |
| UCS-2 | 70 (single), 67 (multi-part) | Emojis, non-Latin scripts (Hindi, Arabic, Chinese, etc.) |
How do I add URLs in SMS without them breaking?
How do I add URLs in SMS without them breaking?
Use triple curly braces
{{{url}}} instead of double. Double braces HTML-escape characters like &, ?, = — which breaks URLs. Triple braces output the raw value.Can I send SMS in different languages?
Can I send SMS in different languages?
Yes — use template variants. Create a variant for each language with a locale condition. Set the user’s preferred language via
$locale on their profile — SuprSend auto-selects the matching variant. The default variant acts as the English fallback.Can I test a DLT template before approval?
Can I test a DLT template before approval?
No. DLT templates can only be tested after they are committed and approved by the vendor. The Test button uses the live (approved) version. Non-DLT templates can be tested immediately after committing.
What happens if a variable is missing at send time?
What happens if a variable is missing at send time?
SuprSend discards the SMS notification for that user. Other channels in the same template group (email, push, etc.) are still sent if they render successfully.

