> For the complete documentation index, see [llms.txt](https://codemash.gitbook.io/codemash/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://codemash.gitbook.io/codemash/cloud/sms/campaigns/details.md).

# Campaign details

Read one SMS campaign — status, audience, provider, statistics and batches — and act on it.

**Where:** SMS → Campaigns → **View** · `/projects/<project>/sms/campaigns/<id>/view`

## Before you start

* The campaign exists — see [Create a campaign and send it now](/codemash/cloud/sms/campaigns/new.md).
* You need the `sms:read` permission on SMS campaigns; deleting needs `sms:delete`.

## Steps

1. Open **SMS → Campaigns** and press **View** on a row. The page **SMS Campaign** opens.
2. Read **General Information**: the campaign id (`cmp_…`, press it to copy) with its status badge, **Initiated** (the creation time, then *Deliver Instantly* or the planned time in its zone), **Created by**, **Status**, **Template** (a link to the [editor](/codemash/cloud/sms/templates/editor.md)) and **Deliver strategy** (the audience).

   <figure><img src="https://712692422-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHy372bqsaex2cqS3ikhL%2Fuploads%2Fgit-blob-94108b6ae25c16a77b713604a27d9c0e1e4a87ae%2Fcampaigns-details-1.png?alt=media" alt="SMS Campaign: cmp_2lIlYHe8UpSd9mz1fv0Bw9 Completed, Initiated 2026-10-06 14:01 Deliver Instantly, Created by, Status Completed, Template Winter sale, Deliver strategy All users, SMS Provider Test Me (Default)"><figcaption><p>General Information of a sent campaign.</p></figcaption></figure>

   A failed campaign also shows a red **Campaign Failed** box with every error, for example `CM-ERRORS-INTEGRATIONS-005` (the integration was turned off after the create) or `CM-ERRORS-LANGUAGES-004` (a project language was added that the template does not have).
3. Scroll down. **SMS Provider** names the integration that sends it, with **See integration details**. Four tiles count **Batches**, **Sent SMS**, **Failed** and **Success rate**. Below them are the batches: one card per batch with its recipient count, batch id (`cmpb_…`), time and status; filter them by **Batch ID** or **Phone number**.

   <figure><img src="https://712692422-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHy372bqsaex2cqS3ikhL%2Fuploads%2Fgit-blob-88ef9670a8897bd5dd786d24ab2678b3002524f4%2Fcampaigns-details-2.png?alt=media" alt="SMS Provider Test Me (Default) with See integration details, the tiles Batches 1, Sent SMS 3, Failed 0, Success rate 100 %, the Batch ID and Phone number filters, and the batch 3 recipient(s) cmpb_4dXMLWkzgEBHtnFMWcIEuu Completed"><figcaption><p>Statistics and the batch list.</p></figcaption></figure>
4. Press a batch to see its messages, then a message to read its [message log](/codemash/cloud/sms/campaigns/log.md).
5. Open **Actions** for the campaign commands.

   <figure><img src="https://712692422-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHy372bqsaex2cqS3ikhL%2Fuploads%2Fgit-blob-c766111fd09e3ee28629a1b1f81b8d428b0bae11%2Fcampaigns-details-3.png?alt=media" alt="The Actions menu of a completed campaign: Create new from this, Delete campaign..., See documentation"><figcaption><p>The Actions menu.</p></figcaption></figure>

## Result

You see whether the campaign reached everyone: **Sent SMS** counts the messages handed to the provider, **Failed** the ones the provider refused. Whether a phone really received a message is known only to the provider; with Twilio, Twilio's first answer (*queued*) is the last status Norbix learns. The Fake provider counts every message as sent. The batch and message lists refresh themselves about every 50 seconds.

## Change or remove it later

* **Create new from this** — opens [Create a campaign](/codemash/cloud/sms/campaigns/new.md) with the same template picked.
* **Stop** — while the campaign is scheduled or sending, the red **Stop campaign** button is shown; see [Stop a campaign](/codemash/cloud/sms/campaigns/stop.md).
* **Delete** — **Delete campaign...** is offered only when the campaign is **Completed**, **Stopped** or **Failed**. The browser asks *Delete this campaign? Its batches and message log are deleted with it. This cannot be undone.*; after **OK** you are back on the list.
* **See documentation** — opens this documentation.

## Do it from code

```ts
const id = 'cmp_2lIlYHe8UpSd9mz1fv0Bw9'; // Winter sale to all users
const { smsCampaign } = await norbix.hub.notifications.getSmsCampaign({ id });
const { stats } = await norbix.hub.notifications.getSmsCampaignStatistics({ id });
const { list } = await norbix.hub.notifications.getSmsCampaignBatches({ id });
console.log(smsCampaign.statusHistory.at(-1).status, stats, list.items.map((b) => b.batchId));
// Completed { batches: 1, sent: 3, failed: 0, successRate: 100 } [ 'cmpb_4dXMLWkzgEBHtnFMWcIEuu' ]
```

```sh
norbix hub notifications sms campaign statistics get --id cmp_2lIlYHe8UpSd9mz1fv0Bw9
norbix hub notifications sms campaign delete --id cmp_6AHvMI8wajWnfWikWHDeae --yes
```

The API deletes a campaign in any status; the status rule is kept by Cloud only. The client setup is on the [SMS page](/codemash/cloud/sms.md#use-it-from-code). API: [Get Sms Campaign](/codemash/api-reference/notifications/sms/get-sms-campaign.md) · [Get Sms Campaign Statistics](/codemash/api-reference/notifications/sms/get-sms-campaign-statistics.md) · [Get Sms Campaign Batches](/codemash/api-reference/notifications/sms/get-sms-campaign-batches.md) · [Delete Sms Campaign](/codemash/api-reference/notifications/sms/delete-sms-campaign.md)
