> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://fyno.io/docs/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://fyno.io/docs/_mcp/server.

# SMS Templates

> Create synced or non-synced SMS templates, configure DLT template details, add dynamic content, test messages, manage versions, and submit approval requests.

Fyno makes it simple to create templates for SMS. Follow the steps below to create an SMS template.

## Creating an SMS template

### Step 1: Choose the External Template Name / ID option

When you add the SMS channel to a template, the **Create your SMS Template** screen opens. The first field is **External Template Name / ID**.

![](/docs/_fern-img/e71aacd179748f4ed52091afcb80d7f0ad3fc7e040f1b4dad5488c030fd6ee48.webp)

The **External Template Name / ID** field has three options. The fields you fill in next depend on the option you choose.

| Option                      | When to use it                                       | SMS Content | Unicode Message | Additional Configuration |
| --------------------------- | ---------------------------------------------------- | ----------- | --------------- | ------------------------ |
| **Synced DLT template**     | The approved DLT template is synced on Fyno.         | Not needed  | Not shown       | Not shown                |
| **Non-synced DLT template** | The DLT template is approved but not synced on Fyno. | Required    | Available       | Available                |
| **Not Applicable**          | The SMS will be sent only to non-Indian numbers.     | Required    | Available       | Available                |

#### Synced DLT template

**External Template Name / ID:** Select the approved DLT template that is synced on Fyno from the dropdown. Synced templates are listed under **Templates → External → SMS**.

**Body variables:** If the template has placeholders, they appear under **Body variables**. Once you provide sample values for the placeholders, they reflect in the Preview section.

![](/docs/_fern-img/96dba1ce5a01dd317f65067e55f991bd6e65cd35ae44c942021a3ccc5de592e5.webp)

> **Note**
>
> You don't need to enter SMS content for a synced template. Fyno uses the approved content of the DLT template. **Unicode Message** and **Additional Configuration** are not shown for synced templates.

#### Non-synced DLT template

**External Template Name / ID:** Enter the DLT template name or template ID of the approved template that is not synced on Fyno.

**SMS Content:** Enter the content of the approved DLT template in the **SMS Content** section. If your content includes new placeholders, Fyno detects them and asks whether to add them to the placeholders list.

![](/docs/_fern-img/e36edf07eb3103ad67fe45d02d0638d055a5232c0cae7e4193bd50c074f4bb6b.webp)

**Unicode Message** (optional): Enable this to send a unicode message, if the content or placeholder values may contain unicode or non-English characters.

![](/docs/_fern-img/f029eccb8c88c26933ccec4daebdfc5ff81a89c65e6c81a66bf2c75c2239b730.webp)

**Additional Configuration** (optional): Set a sender ID override or send the SMS as a flash message. See [Additional Configuration](#additional-configuration-optional).

> **Warning**
>
> The content must match the approved DLT template exactly, including spaces and punctuation. Otherwise, the operator may reject the SMS.

#### Not Applicable

**External Template Name / ID:** Select **Not Applicable** if this SMS will be sent to non-Indian numbers. External Template Name / ID is required only if you are sending to Indian mobile numbers.

![](/docs/_fern-img/834cdcbe84dfe84dc480c3ed88ccaf0ddada37a5867c4d4ff6e7e44d387d43e0.webp)

**SMS Content:** Enter the content of the message in the **SMS Content** section. If your content includes new placeholders, Fyno detects them and asks whether to add them to the placeholders list.

![](/docs/_fern-img/e36edf07eb3103ad67fe45d02d0638d055a5232c0cae7e4193bd50c074f4bb6b.webp)

**Unicode Message** (optional): Enable this to send a unicode message, if the content or placeholder values may contain unicode or non-English characters.

![](/docs/_fern-img/f029eccb8c88c26933ccec4daebdfc5ff81a89c65e6c81a66bf2c75c2239b730.webp)

**Additional Configuration** (optional): Set a sender ID override or send the SMS as a flash message. See [Additional Configuration](#additional-configuration-optional).

### Additional Configuration (optional)

> **Note**
>
> **Additional Configuration** is available only for **Non-synced DLT templates** and **Not Applicable**.

Expand the **Additional Configuration** section to set the following options:

* **Override Sender ID:** Specify any approved Sender ID or header here to override the default one configured in your integration. For example, use Sender ID CLXYZA instead of the configured CLABCD in the integration.
* **Send as a Flash Message:** A flash message appears on the mobile device's screen, without having to access the SMS storage application on the device.

![](/docs/_fern-img/2ee6a39603feba46be64b164182a2adf8d40c7c17f96c340459c530a04bd0448.webp)

### Step 2: Add placeholders

Below the **Channels** section on the left, you can find placeholders. Placeholders are denoted by `{{}}`. Click a placeholder to open a pop-up window where you can define its parameters. You can use Handlebar functions with your placeholders for operations such as date formatting, number formatting, and arithmetic operations. See the comprehensive guide on [Handlebars](https://handlebarsjs.com/guide/).

> **Note**
>
> To use any user property in your templates, add it in this format: `{{$user.$<user_property>}}`. For example, to add Name as a placeholder from the User profile, add it as `{{$user.$name}}`.

> **Did you know?**
>
> You can use a period (.), underscore (\_) or hyphen (-) within the handlebars. Try it now!

> **Warning**
>
> You cannot use only numeric values as placeholder keys.

### Step 3: Preview the message

Review your content and check what your message looks like in the Preview section on the right.

## How to test an SMS template

Use this feature to test a template thoroughly before including it in any Notification Event. This ensures early detection and resolution of any potential issues, for a seamless user experience.

Click **Run Test** at the top right of the template.

The **Test SMS template** pop-up opens.

![](/docs/_fern-img/4ac9db1ab967b16ce2a8e4be094d7e491ef8bad7bef3ce482497e76a9d7a9243.webp)

Enter either the mobile number of the recipient where the SMS should be sent, or a `distinct_id`. **Make sure to enter the distinct_id of a Test User profile.**

Select an SMS integration that is already configured in Fyno.

**Auto-fill empty placeholders** (optional, AI assistance): If your template has placeholders with no sample values, Fyno can fill them using AI so you can test the message. Click **Yes** to let Fyno fill sample values for the empty placeholders. Once done, you see the message **Sample values have been filled**.

Click **Test** to send the SMS to the recipient with the selected integration. You see the success or failure message along with a link to the Sent Logs.

## Save and go live

Click **Save** to save the template as a **Test** version. Use **Go Live** when you are ready to move your template to the **Live** version.

> **Note**
>
> If your workspace has a maker-checker workflow enabled for template management, **Go Live** needs an additional approval step. Choose from your designated approvers, who review and authorize the template changes. See [Approval flow](./approval-flow) for the steps.

## How to add dynamic content

You can add dynamic content to your templates using one of the four options below:

* [Placeholders](./template-dynamic-content#placeholders)
* [System Variables](./template-dynamic-content#system-variables)
* [Handlebars](./template-dynamic-content#handlebars)
* [Components](./template-dynamic-content#components)

## How to view change logs

To view the history of all the modifications made to a template, use the change logs feature.

Click the history icon at the top right corner of the template page, as shown in the image below, to view the change logs. It shows the following details:

* Who updated it
* Which version was updated
* The date and time it was updated

![](/docs/_fern-img/fcfe9ae1602710bf1d823b6e5a6def912315e6e7d29e2d376b0787e35eba96a3.webp)