---
title: SMS Campaign
slug: engage/sms-campaign
docTags: 
createdAt: 2025-10-06T06:07:11.582Z
---

:::Iframe{iframeHeight="0" code="<div&#xA;              style=&#x22;&#xA;                position: relative;&#xA;                padding-bottom: 56.25%;&#xA;                height: 0;&#xA;                border-radius: 0;&#xA;                box-shadow: 0 15px 40px rgba(63,58,79,.3);&#xA;                overflow: hidden;&#xA;                min-width:320px&#x22;><iframe&#xA;              src=&#x22;https://learn.exotel.com/share/f98JvCjWasjsvfkZxjtEAg/embed?autoplay=false&#x22;&#xA;              frameborder=&#x22;0&#x22;&#xA;              webkitallowfullscreen&#xA;              mozallowfullscreen&#xA;              allowfullscreen&#xA;              allow=&#x22;autoplay; fullscreen&#x22;&#xA;              style=&#x22;position: absolute; top: 0; left: 0; width: 100%; height: 100%;&#x22;></iframe></div><!-- <p>paste iframe code here</p> -->"}

:::

The **SMS Campaign** feature enables campaign managers to run large-scale SMS campaigns for up to **5 lakh contacts**. It includes capabilities such as static and dynamic messaging, campaign-level reports, inbox view, real-time performance stats, and the option to mark an ongoing campaign as completed.

***

## Key Benefits

- **Static and Dynamic Campaigns:&#x20;**&#x43;hoose between **static SMS** (same message for all recipients) or **dynamic SMS** (personalized content for each recipient).
- **Campaign-Level Reports:&#x20;**&#x44;ownload campaign-level reports once the campaign is complete to analyze performance and delivery trends.
- **Mark as Completed:&#x20;**&#x50;ause any ongoing campaign and mark it as completed. Remaining numbers will not receive messages, and reports will still be available for such campaigns.
- **Campaign & SMS Details:&#x20;**&#x45;ach campaign provides a dedicated dashboard with:
  - Campaign summary
  - Real-time statistics
  - SMS-level details (outbox view)
- **Send Test SMS:**&#x54;est campaigns before launch by sending a sample SMS to verify content and variables.
- **Estimated Cost:&#x20;**&#x43;alculate campaign costs in advance based on SMS content, number of recipients, and billing plan.

***

## Navigating the SMS Campaign Dashboard

1. From the left-hand panel, click **Tools → Campaigns (New)**.
2. On the Campaigns page, select **SMS Campaign** (next to the **Call Campaign** button).

***

## Create an SMS Campaign

Click **Create SMS Campaign** on the Campaigns home page to open the campaign creation screen.

You will be prompted to enter the following campaign details.

### Step 1: Campaign Details

- **Campaign Name** — Minimum of three characters.
- **SMS Content Type** — Choose between:
  - **Static:** Same content for all recipients.
  - **Dynamic:** Personalized messages using variables.

For **static campaigns**, select one or more existing contact lists (up to five per campaign).
For **dynamic campaigns**, upload a new CSV list (up to 10 lakh contacts, max 60 MB, with up to 5 variables).

:::hint{type="info"}
The first column of the CSV file must contain phone numbers.
For Indian numbers, the country code is optional.
All other columns are optional and can be customized as needed.
:::

### Step 2: DLT Configuration

- **DLT Entity ID** — Registered on the DLT (Distributed Ledger Technology) portal; required for all Indian destinations. (Read-only field)
- **DLT Template ID** — ID associated with your approved DLT content template.
- **DLT Sender ID** — Select the appropriate sender ID:
  - **Text sender ID** for transactional and transactional opt-in messages.
  - **Numeric sender ID** for promotional SMS.

### Step 3: Select a Template

You can choose between:

1. **Selecting a saved template** from your approved list, or
2. **Entering details manually** using a DLT-approved template ID and content.

**Selecting a Saved Template**

- A popup displays all approved templates in your account.
- Search by **Template ID** or **Message Body**.
- Once selected, DLT Template ID and SMS Type fields populate automatically.
- To update a missing DLT Template ID, click the provided link to open the **SMS Settings** page.

**Enter Manually**

If you choose to enter details manually, fill out all DLT parameters carefully.

:::hint{type="info"}
Ensure the template content exactly matches the DLT-approved version.
If unsure, send a **test SMS** before launching the campaign to confirm template validity.
:::

### Step 4: SMS Content and Variables

- **SMS Content:** For static messages, content is fixed and uneditable.
- For dynamic messages, you can map variables using the `@@` notation — typing `@@` displays all available column headers from your uploaded CSV file.
- Replace variables accurately to ensure correct personalization.

### Step 5: Schedule the Campaign

Specify when your campaign should run.

- **Start Date and Time:** Must be at least 15 minutes ahead of the current time.
- **End Date and Time:** Optional; defaults to 30 days from the start time. Minimum end time is 2 hours after the start time.

You can optionally add a **Campaign Status Callback URL** to receive updates.

**Callback Parameters:**

- `campaign_sid` — Unique campaign identifier
- `date_created`, `date_updated`, `date_started`
- `status` — in-progress | completed
- `reports` — report download link (available only after completion)

### Step 6: Send a Test SMS

Before creating the campaign, use the **Send Test SMS** option.

The popup will display:

- DLT Entity ID
- DLT Template ID
- DLT Sender ID
- SMS Type
- SMS Content

You will then enter:

- **Phone Number** — Destination number (E.164 format preferred).
- **Custom Field (Optional):** Variable replacements for test message preview.

:::hint{type="info"}
It’s recommended to send a test SMS whenever a new template is selected or edited.
This ensures the DLT ID and message format are correct.
:::

### Step 7: Create SMS Campaign

Click **Create SMS Campaign** once all details are filled in.
A confirmation banner will appear, and the campaign will now be visible in the SMS Campaigns list.

***

## View List of SMS Campaigns

The SMS Campaigns landing page shows a summary of all existing campaigns, including:

- Campaign Name
- Campaign Type
- Schedule Time
- Status
- Performance

Each campaign has an **action menu** with the following options:

| **Action**   | **Description**                                                               |
| ------------ | ----------------------------------------------------------------------------- |
| **Pause**    | Stop sending SMS for an in-progress or scheduled campaign.                    |
| **Resume**   | Continue sending SMS to pending numbers (paused campaigns only).              |
| **Complete** | Mark campaign as completed. Remaining numbers are marked as `failed_expired`. |
| **Archive**  | Move completed or scheduled campaigns to archive view.                        |
| **Download** | Download reports for completed campaigns.                                     |

### Filters, Search, and Sorting

- **Filter** by campaign status.
- **Search** by campaign name (minimum 3 characters).
- **Sort** by campaign name or schedule time.

### Performance Overview

Displays campaign performance across three key statuses:

- **Completed**
- **Failed**
- **Scheduled**

Hovering over the counts shows detailed subcategories:

- **Failed:** Failed SMS, Failed Expired, Failed DND, Failed No Attempt, Failed No Balance, Invalid SMS
- **Scheduled:** Submitted SMS and Scheduled SMS

***

## SMS Campaign Summary and Stats

Click any campaign to view its detailed statistics.
The page is divided into two sections: **Campaign Details** and **Campaign Stats**.

### Campaign Details

Provides an overview of all campaign-level settings and identifiers:

- Lists used
- Entity ID and Sender ID
- Template ID and SMS Type
- Start and expiry time
- Message content summary
- Estimated campaign cost

**Estimated Cost**

Displays the projected cost based on:

- Number of recipients
- SMS character count
- Billing plan

:::hint{type="info"}
For dynamic SMS, costs are estimated assuming all numbers are domestic Indian contacts.
The final charge may vary slightly once the campaign completes.
This feature is disabled once the campaign starts.
:::

### Campaign Stats

Shows real-time number-level delivery data.
Click the **refresh icon** to update (up to 5 minutes delay).

| **Status**            | **Meaning**                                                |
| --------------------- | ---------------------------------------------------------- |
| **Scheduled**         | Numbers pending for SMS dispatch.                          |
| **Submitted**         | SMS submitted to the gateway.                              |
| **Sent**              | SMS successfully delivered to handset.                     |
| **Failed**            | Invalid or unreachable numbers.                            |
| **Failed DND**        | Number blocked by NDNC registry.                           |
| **Failed Expiry**     | Message expired after repeated retries by operator.        |
| **Failed No Attempt** | Campaign ended before completion or exceeded 30-day limit. |
| **Failed No Balance** | Campaign halted due to insufficient account balance.       |
| **Invalid**           | Invalid or malformed phone number.                         |

### View SMS Details

This section lists all SMS messages sent as part of the campaign.
It includes:

- Number and Name (if saved)
- Time and Status
- Detailed Status

The **action menu** displays:

- Sent Time
- Sender ID
- Destination Number
- SMS Reference ID

**Search** by number (minimum 3 characters).
**Sort** results by created date.

***

## URL Shortening

URLs in SMS messages can be long and consume valuable character space.
Shortening URLs helps stay within the 160-character limit and improves click-through rates.
Short URLs are also trackable, allowing you to monitor engagement.

### Enable URL Shortening and Click Tracking

Within the **Create SMS Campaign** screen, locate the **URL Shortening and Tracking** section.

- **Require URL Shortening:** Select **Yes** to automatically shorten URLs in the SMS body (e.g. `https://exo.tl/vhdpzv`).
  Each SMS receives a unique short code. Multiple URLs will each be shortened. Default expiry is 30 days.
- **Enable Click Tracking:** Select **Yes** to track click data for each recipient.
  This captures total clicks and unique clicks.
- **Click Tracking Callback URL:** Provide a webhook URL to receive click data per number.

:::hint{type="info"}
URL shortening must be enabled for click tracking to function.
Click tracking data is not currently included in campaign callbacks.
:::

***

## Contact List Limits

There is **no restriction** on the number of contacts for which an SMS campaign can be created.
However, the **uploaded CSV file must be under 10 MB** in size.

## Watch a short video

**Scheduling a bulk SMS campaign**

:::Iframe{iframeHeight="0" code="<div style=&#x22;position: relative;padding-bottom: 56.25%;height: 0;border-radius: 0;box-shadow: 0 15px 40px rgba(63,58,79,.3);overflow: hidden;min-width:320px&#x22;><iframe src=&#x22;https://exotel-maroon.trainn.co/share/8df64ba1-3b8b-48bf-a4d6-434a81bed286/embed&#x22; frameborder=&#x22;0&#x22; webkitallowfullscreen mozallowfullscreen allowfullscreen allow=&#x22;autoplay; fullscreen&#x22; style=&#x22;position: absolute; top: 0; left: 0; width: 100%; height: 100%;&#x22;></iframe></div>"}

:::
