> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comify.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Create an SMS Template

> Build an SMS template in the Comify dashboard — message, category, and variables — with a live preview, then use it in campaigns and triggered communications.

SMS templates are reusable text messages you design once and reference by name — in [SMS campaigns](/campaigns/sms/audience) and triggered communications. This guide walks the exact dashboard flow for creating one.

<Note>
  This is a dashboard walkthrough. Screens are captured from **cloud.comify.io** → **Template Manager → Manage Templates → SMS**.
</Note>

## Before you start: connect a provider

Open **Template Manager → SMS** to reach the **SMS Templates** list. It shows your connected SMS provider in a selector at the top, **Category** and **Status** filters, search, and **Create Template**. Existing templates list their **Category**, **Language**, **Status**, and **Last Updated**.

<Frame caption="SMS Templates list — provider selector, filters, and templates">
  <img src="https://mintcdn.com/co-d33c95f1/JDH1bOmW9sqfInn6/images/sms-01-list.png?fit=max&auto=format&n=JDH1bOmW9sqfInn6&q=85&s=f379fa5a9aa2ff4744d07e21195532f4" alt="SMS Templates list" width="1556" height="784" data-path="images/sms-01-list.png" />
</Frame>

<Warning>
  You need an **SMS provider** connected (e.g. Twilio, Gupshup, MSG91, Karix) before creating templates. See [SMS Providers](/channels/sms/overview).
</Warning>

## Create a template

Click **Create Template** to open the SMS editor. It's a single page: **Template details** on the left, a live **Preview** on the right.

<Frame caption="SMS create form — name, language, category, and message">
  <img src="https://mintcdn.com/co-d33c95f1/JDH1bOmW9sqfInn6/images/sms-02-create.png?fit=max&auto=format&n=JDH1bOmW9sqfInn6&q=85&s=1c3063399641c1158027b591de9404bf" alt="SMS create template form" width="1556" height="784" data-path="images/sms-02-create.png" />
</Frame>

<Steps>
  <Step title="Name your template">
    Enter a name in the **Name your template** field (e.g. `order_shipped_alert`).

    <Warning>
      Names must use **lowercase letters, numbers, and underscores only** — no spaces or capital letters.
    </Warning>
  </Step>

  <Step title="Select a language">
    Choose the **Language** the message is written in from the dropdown (defaults to English).
  </Step>

  <Step title="Choose a category">
    Pick the **Category** that matches the message:

    | Category          | Use it for                                                               |
    | ----------------- | ------------------------------------------------------------------------ |
    | **Transactional** | Order updates, shipping alerts, account notifications tied to an action. |
    | **Promotional**   | Offers, discounts, announcements, marketing pushes.                      |
    | **OTP**           | One-time passcodes and login/verification codes.                         |

    <Tip>
      Your SMS provider and local regulations may enforce sending rules (e.g. registered sender IDs, time-of-day restrictions) based on category — Transactional and Promotional traffic are often routed differently.
    </Tip>
  </Step>

  <Step title="Write the Message">
    Enter your text in the **Message** box (up to 512 characters). Insert dynamic values using double curly braces, or via the **Insert variable** control below the box:

    ```
    Hi {{first_name}}, your order has shipped!
    ```

    <Frame caption="Insert variable, Data Source, Recipient, and Test">
      <img src="https://mintcdn.com/co-d33c95f1/JDH1bOmW9sqfInn6/images/sms-03-variables-test.png?fit=max&auto=format&n=JDH1bOmW9sqfInn6&q=85&s=7c9531852aee27582b844a396cb89ee6" alt="SMS variable insertion and test controls" width="1556" height="784" data-path="images/sms-03-variables-test.png" />
    </Frame>

    <Note>
      **Insert variable** is populated from your **Data Source**. Click **Data Source** in the top bar and select a **Payload** first — its fields then become available as `{{variables}}` and as **Recipient** options.
    </Note>
  </Step>

  <Step title="Set the Recipient">
    Click **Recipient** in the top bar and choose the payload field that holds the destination phone number (e.g. `phone_number`).
  </Step>
</Steps>

## Preview and test

As you type, the **Preview** panel on the right renders the message as a real SMS bubble, with a live character/segment count. Use **Test** in the top bar to send a real test message once a template name and provider are set.

## Publish

Click **Publish** to make the template live. Only **Live** templates are selectable in the [SMS campaign](/campaigns/sms/audience) template picker.

<Warning>
  If **Publish** is disabled, check that the template **Name** and **Message** are both filled in — these are required fields.
</Warning>

## Best practices

<CardGroup cols={2}>
  <Card title="Match the category" icon="list-check">
    Transactional, Promotional, and OTP traffic are often routed and rate-limited differently by carriers — pick the one that matches the content.
  </Card>

  <Card title="Keep it short" icon="scissors">
    SMS is billed and delivered in segments (typically 160 characters per segment). Shorter messages are cheaper and render more reliably.
  </Card>

  <Card title="Always set a fallback" icon="shield-check">
    Give every variable a sensible fallback so a missing data point never leaves a gap in a delivered message.
  </Card>

  <Card title="Include an identity" icon="signature">
    Sign off with your brand or business name — SMS has no "From" display name the way email does.
  </Card>
</CardGroup>

## Next steps

* Send it: [Create an SMS campaign](/campaigns/sms/audience)
* Other channels: [Email template](/platform/create_email_template) · [WhatsApp template](/platform/create_whatsapp_template) · [Push template](/platform/create_push_template)
