> 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/cli/reference/sms.md).

# norbix sms

SMS module, integrations, templates and campaigns.

SMS module, integrations, templates and campaigns.

33 commands (`@norbix.ai/cli` 1.16.0):

* [`norbix sms archive`](#norbix-sms-archive) — Archive an SMS template
* [`norbix sms campaign`](#norbix-sms-campaign) — Show one SMS campaign (or its statistics with --stats)
* [`norbix sms campaign batch`](#norbix-sms-campaign-batch) — List the notifications in one batch — or show one of them
* [`norbix sms campaign batches`](#norbix-sms-campaign-batches) — List the send batches of an SMS campaign
* [`norbix sms campaign create`](#norbix-sms-campaign-create) — Create an SMS campaign
* [`norbix sms campaign delete`](#norbix-sms-campaign-delete) — Delete an SMS campaign
* [`norbix sms campaign message`](#norbix-sms-campaign-message) — Show one SMS message a campaign sent
* [`norbix sms campaign messages`](#norbix-sms-campaign-messages) — List the SMS messages a campaign sent
* [`norbix sms campaigns`](#norbix-sms-campaigns) — List SMS campaigns
* [`norbix sms clone`](#norbix-sms-clone) — Clone an SMS template
* [`norbix sms delete`](#norbix-sms-delete) — Delete an SMS template
* [`norbix sms disable`](#norbix-sms-disable) — Turn off the SMS module for the project
* [`norbix sms disable-dependencies`](#norbix-sms-disable-dependencies) — List what still depends on SMS — check this before `sms disable`
* [`norbix sms enable`](#norbix-sms-enable) — Turn on the SMS module for the project
* [`norbix sms integration`](#norbix-sms-integration) — Show one SMS integration
* [`norbix sms integration confirm-delivery`](#norbix-sms-integration-confirm-delivery) — Confirm that a test SMS reached a real person
* [`norbix sms integration default`](#norbix-sms-integration-default) — Make an SMS integration the default one for this project
* [`norbix sms integration delete`](#norbix-sms-integration-delete) — Delete an SMS integration
* [`norbix sms integration disable`](#norbix-sms-integration-disable) — Turn an SMS integration off
* [`norbix sms integration enable`](#norbix-sms-integration-enable) — Turn an SMS integration on
* [`norbix sms integration save`](#norbix-sms-integration-save) — Create or update an SMS integration
* [`norbix sms integration test`](#norbix-sms-integration-test) — Send a test SMS through an integration
* [`norbix sms integrations`](#norbix-sms-integrations) — List the SMS integrations set up for this project
* [`norbix sms preview`](#norbix-sms-preview) — Render the text behind an SMS preview link
* [`norbix sms settings`](#norbix-sms-settings) — Show the project SMS settings
* [`norbix sms stop`](#norbix-sms-stop) — Stop a running SMS campaign
* [`norbix sms template`](#norbix-sms-template) — Show one SMS template
* [`norbix sms template create`](#norbix-sms-template-create) — Create an SMS template
* [`norbix sms template render`](#norbix-sms-template-render) — Render SMS text with token values
* [`norbix sms template tokens`](#norbix-sms-template-tokens) — List the tokens an SMS template uses — the values a campaign must fill
* [`norbix sms template update`](#norbix-sms-template-update) — Replace an SMS template's name, channel, tags and content
* [`norbix sms templates`](#norbix-sms-templates) — List SMS templates
* [`norbix sms unarchive`](#norbix-sms-unarchive) — Restore an archived SMS template

## `norbix sms archive`

Archive an SMS template

```sh
norbix sms archive ID [flags]
```

| Argument | Required | Description |
| -------- | -------- | ----------- |
| `ID`     | yes      | Template ID |

| Flag        | Description                                                            |
| ----------- | ---------------------------------------------------------------------- |
| `--dry-run` | Resolve context and print the request that would be sent; send nothing |

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms archive 66b2f0a1c3d4e5f6a7b8c9d0
norbix sms archive 66b2f0a1c3d4e5f6a7b8c9d0 --dry-run
```

## `norbix sms campaign`

Show one SMS campaign (or its statistics with --stats)

```sh
norbix sms campaign ID [flags]
```

| Argument | Required | Description |
| -------- | -------- | ----------- |
| `ID`     | yes      | Campaign ID |

| Flag      | Description                                             |
| --------- | ------------------------------------------------------- |
| `--stats` | Show delivery statistics instead of the campaign itself |

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms campaign 66b2f0a1c3d4e5f6a7b8c9d0 --stats
```

## `norbix sms campaign batch`

List the notifications in one batch — or show one of them

```
Give a notification ID as the third argument to see just that notification.
```

```sh
norbix sms campaign batch ID BATCHID [NOTIFICATIONID] [flags]
```

| Argument         | Required | Description                            |
| ---------------- | -------- | -------------------------------------- |
| `ID`             | yes      | Campaign ID                            |
| `BATCHID`        | yes      | Batch ID (from `sms campaign batches`) |
| `NOTIFICATIONID` | no       | Notification ID                        |

| Flag                    | Description                   |
| ----------------------- | ----------------------------- |
| `--page-size` `<value>` | Items per page                |
| `--after` `<value>`     | Cursor from the previous page |

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms campaign batch 66b2f0a1c3d4e5f6a7b8c9d0 b7c3d2e1f0a9b8c7d6e5f4a3
norbix sms campaign batch 66b2f0a1c3d4e5f6a7b8c9d0 b7c3d2e1f0a9b8c7d6e5f4a3 9d4e5f6a7b8c9d0e1f2a3b4c
```

## `norbix sms campaign batches`

List the send batches of an SMS campaign

```sh
norbix sms campaign batches ID [flags]
```

| Argument | Required | Description |
| -------- | -------- | ----------- |
| `ID`     | yes      | Campaign ID |

| Flag                    | Description                   |
| ----------------------- | ----------------------------- |
| `--page-size` `<value>` | Items per page                |
| `--after` `<value>`     | Cursor from the previous page |

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms campaign batches 66b2f0a1c3d4e5f6a7b8c9d0
```

## `norbix sms campaign create`

Create an SMS campaign

```
--audience picks who receives it:
  all-users      every user with a phone; narrow with --role / --tag
  users          the users named with --user
  collection     the records of --schema whose --field holds the recipient
  phone-numbers  raw phone numbers, --phone +37060000000 (international format)
  account-users  the account owner / team members named with --user (their
                 ids from `norbix account team`); each gets the SMS on the
                 phone they saved (`norbix account me set-phone`); members without
                 a phone are skipped

--integration is required: name the SMS provider the campaign sends through
(list them with `norbix sms integrations`). The server never falls back to
the project default. --language forces one language; it must be one of the
project's languages (Project settings). The template must have a translation for
every project language, or the server refuses the campaign. --initiator sends on
behalf of another project user (default: you).

Without --at the campaign is sent right away. Anything the flags do not cover
goes in --config as a JSON object and is merged into the delivery settings.
```

```sh
norbix sms campaign create [flags]
```

| Flag                               | Description                                                                                                                                                      |
| ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--dry-run`                        | Resolve context and print the request that would be sent; send nothing                                                                                           |
| `--template` `<value>`             | Template ID — required                                                                                                                                           |
| `--audience` `<value>`             | Who receives it — required; one of: `all-users`, `users`, `collection`, `phone-numbers`, `account-users`                                                         |
| `--user` `<value>`                 | User ID (users) or team member ID (account-users); repeat for several — repeat for several                                                                       |
| `--role` `<value>`                 | Role name (all-users / collection; repeat for several) — repeat for several                                                                                      |
| `--tag` `<value>`                  | User tag (all-users; repeat for several) — repeat for several                                                                                                    |
| `--schema` `<value>`               | Collection name (collection)                                                                                                                                     |
| `--field` `<value>`                | Field that holds the recipient (collection; repeat for several) — repeat for several                                                                             |
| `--field-type` `<value>`           | What --field holds (collection) — one of: `User`, `Email`                                                                                                        |
| `--phone` `<value>`                | Phone number in international format (phone-numbers; repeat for several) — repeat for several                                                                    |
| `--integration` `<value>`          | SMS integration ID the campaign sends through; list them with `norbix sms integrations` — required                                                               |
| `--language` `<value>`             | Send every message in this language. Must be one of the project's languages (Project settings); default: each recipient's own language, else the project default |
| `--initiator` `<value>`            | Send on behalf of this project user ID — their details fill the Initiator.User.\* tokens (default: you, the caller)                                              |
| `--at` `<value>`                   | Send later: ISO 8601 date-time or Unix seconds                                                                                                                   |
| `--respect-time-zone` `<value>`    | Send --at in each recipient's own time zone, taken from this source — one of: `last-login`, `registration`, `registration-project`                               |
| `--token` `<value>`                | Token value as key=value (repeat for several) — repeat for several                                                                                               |
| `--database-integration` `<value>` | Database integration ID (defaults to the project default)                                                                                                        |
| `--config` `<value>`               | Extra delivery-settings fields as a JSON object, @file or -                                                                                                      |

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms campaign create --template 66b2f0a1c3d4e5f6a7b8c9d0 --integration 66c1a2b3c4d5e6f7a8b9c0d1 --audience all-users --tag beta
norbix sms campaign create --template 66b2f0a1c3d4e5f6a7b8c9d0 --integration 66c1a2b3c4d5e6f7a8b9c0d1 --audience users --user usr_1 --user usr_2
norbix sms campaign create --template 66b2f0a1c3d4e5f6a7b8c9d0 --integration 66c1a2b3c4d5e6f7a8b9c0d1 --audience phone-numbers --phone +37060000000 --at 2026-10-01T09:00:00Z
norbix sms campaign create --template 66b2f0a1c3d4e5f6a7b8c9d0 --integration 66c1a2b3c4d5e6f7a8b9c0d1 --audience account-users --user 66d0e1f2a3b4c5d6e7f8a9b0
norbix sms campaign create --template 66b2f0a1c3d4e5f6a7b8c9d0 --integration 66c1a2b3c4d5e6f7a8b9c0d1 --audience all-users --tag beta --dry-run
```

## `norbix sms campaign delete`

Delete an SMS campaign

```sh
norbix sms campaign delete ID [flags]
```

| Argument | Required | Description |
| -------- | -------- | ----------- |
| `ID`     | yes      | Campaign ID |

| Flag          | Description                                                            |
| ------------- | ---------------------------------------------------------------------- |
| `-y`, `--yes` | Skip the confirmation prompt (required in non-interactive shells)      |
| `--dry-run`   | Resolve context and print the request that would be sent; send nothing |

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms campaign delete 66b2f0a1c3d4e5f6a7b8c9d0 --yes
norbix sms campaign delete 66b2f0a1c3d4e5f6a7b8c9d0 --dry-run
```

## `norbix sms campaign message`

Show one SMS message a campaign sent

```
Same as `sms campaign batch <id> <batchId> <messageId>`.
```

```sh
norbix sms campaign message ID MESSAGEID [flags]
```

| Argument    | Required | Description               |
| ----------- | -------- | ------------------------- |
| `ID`        | yes      | Campaign ID               |
| `MESSAGEID` | yes      | Message (notification) ID |

| Flag                | Description                             |
| ------------------- | --------------------------------------- |
| `--batch` `<value>` | Batch the message belongs to — required |

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms campaign message 66b2f0a1c3d4e5f6a7b8c9d0 9d4e5f6a7b8c9d0e1f2a3b4c --batch b7c3d2e1f0a9b8c7d6e5f4a3
```

## `norbix sms campaign messages`

List the SMS messages a campaign sent

```sh
norbix sms campaign messages ID [flags]
```

| Argument | Required | Description |
| -------- | -------- | ----------- |
| `ID`     | yes      | Campaign ID |

| Flag                    | Description                                   |
| ----------------------- | --------------------------------------------- |
| `--batch` `<value>`     | Only this batch (from `sms campaign batches`) |
| `--page-size` `<value>` | Items per page                                |
| `--after` `<value>`     | Cursor from the previous page                 |

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms campaign messages 66b2f0a1c3d4e5f6a7b8c9d0 --batch b7c3d2e1f0a9b8c7d6e5f4a3
```

## `norbix sms campaigns`

List SMS campaigns

```
Filters (all optional, combine freely): --campaign-id returns just that
campaign, --template only campaigns built on that template, --from / --to bound
the campaign time (ISO 8601 date-time or Unix seconds, UTC).
```

```sh
norbix sms campaigns [flags]
```

| Flag                      | Description                                                  |
| ------------------------- | ------------------------------------------------------------ |
| `--campaign-id` `<value>` | Only the campaign with this ID                               |
| `--template` `<value>`    | Only campaigns built on this SMS template ID                 |
| `--from` `<value>`        | Campaign time from: ISO 8601 date-time or Unix seconds (UTC) |
| `--to` `<value>`          | Campaign time to: ISO 8601 date-time or Unix seconds (UTC)   |
| `--page-size` `<value>`   | Records per page                                             |
| `--after` `<value>`       | Cursor: fetch the page after this item                       |

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms campaigns
norbix sms campaigns --template 66b2f0a1c3d4e5f6a7b8c9d0 --from 2026-10-01T00:00:00Z --to 2026-10-31T23:59:59Z
norbix sms campaigns --campaign-id 66e1f2a3b4c5d6e7f8a9b0c1
```

## `norbix sms clone`

Clone an SMS template

```sh
norbix sms clone ID [flags]
```

| Argument | Required | Description |
| -------- | -------- | ----------- |
| `ID`     | yes      | Template ID |

| Flag        | Description                                                            |
| ----------- | ---------------------------------------------------------------------- |
| `--dry-run` | Resolve context and print the request that would be sent; send nothing |

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms clone 66b2f0a1c3d4e5f6a7b8c9d0
norbix sms clone 66b2f0a1c3d4e5f6a7b8c9d0 --dry-run
```

## `norbix sms delete`

Delete an SMS template

```sh
norbix sms delete ID [flags]
```

| Argument | Required | Description |
| -------- | -------- | ----------- |
| `ID`     | yes      | Template ID |

| Flag          | Description                                                            |
| ------------- | ---------------------------------------------------------------------- |
| `-y`, `--yes` | Skip the confirmation prompt (required in non-interactive shells)      |
| `--dry-run`   | Resolve context and print the request that would be sent; send nothing |

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms delete 66b2f0a1c3d4e5f6a7b8c9d0 --yes
norbix sms delete 66b2f0a1c3d4e5f6a7b8c9d0 --dry-run
```

## `norbix sms disable`

Turn off the SMS module for the project

```
Run `sms disable-dependencies` first to see what still depends on SMS.
```

```sh
norbix sms disable [flags]
```

| Flag          | Description                                                            |
| ------------- | ---------------------------------------------------------------------- |
| `-y`, `--yes` | Skip the confirmation prompt (required in non-interactive shells)      |
| `--dry-run`   | Resolve context and print the request that would be sent; send nothing |

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms disable --yes
norbix sms disable --dry-run
```

## `norbix sms disable-dependencies`

List what still depends on SMS — check this before `sms disable`

```sh
norbix sms disable-dependencies
```

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms disable-dependencies
```

## `norbix sms enable`

Turn on the SMS module for the project

```sh
norbix sms enable [flags]
```

| Flag        | Description                                                            |
| ----------- | ---------------------------------------------------------------------- |
| `--dry-run` | Resolve context and print the request that would be sent; send nothing |

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms enable
norbix sms enable --dry-run
```

## `norbix sms integration`

Show one SMS integration

```sh
norbix sms integration ID
```

| Argument | Required | Description    |
| -------- | -------- | -------------- |
| `ID`     | yes      | Integration ID |

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms integration 66b2f0a1c3d4e5f6a7b8c9d0
```

## `norbix sms integration confirm-delivery`

Confirm that a test SMS reached a real person

```
After `sms integration test`, run this once you have seen the SMS on the
phone. It marks the integration as proven to deliver.
```

```sh
norbix sms integration confirm-delivery ID [flags]
```

| Argument | Required | Description    |
| -------- | -------- | -------------- |
| `ID`     | yes      | Integration ID |

| Flag        | Description                                                            |
| ----------- | ---------------------------------------------------------------------- |
| `--dry-run` | Resolve context and print the request that would be sent; send nothing |

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms integration confirm-delivery 66b2f0a1c3d4e5f6a7b8c9d0
norbix sms integration confirm-delivery 66b2f0a1c3d4e5f6a7b8c9d0 --dry-run
```

## `norbix sms integration default`

Make an SMS integration the default one for this project

```sh
norbix sms integration default ID [flags]
```

| Argument | Required | Description    |
| -------- | -------- | -------------- |
| `ID`     | yes      | Integration ID |

| Flag        | Description                                                            |
| ----------- | ---------------------------------------------------------------------- |
| `--dry-run` | Resolve context and print the request that would be sent; send nothing |

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms integration default 66b2f0a1c3d4e5f6a7b8c9d0
norbix sms integration default 66b2f0a1c3d4e5f6a7b8c9d0 --dry-run
```

## `norbix sms integration delete`

Delete an SMS integration

```sh
norbix sms integration delete ID [flags]
```

| Argument | Required | Description    |
| -------- | -------- | -------------- |
| `ID`     | yes      | Integration ID |

| Flag          | Description                                                            |
| ------------- | ---------------------------------------------------------------------- |
| `-y`, `--yes` | Skip the confirmation prompt (required in non-interactive shells)      |
| `--dry-run`   | Resolve context and print the request that would be sent; send nothing |

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms integration delete 66b2f0a1c3d4e5f6a7b8c9d0 --yes
norbix sms integration delete 66b2f0a1c3d4e5f6a7b8c9d0 --dry-run
```

## `norbix sms integration disable`

Turn an SMS integration off

```sh
norbix sms integration disable ID [flags]
```

| Argument | Required | Description    |
| -------- | -------- | -------------- |
| `ID`     | yes      | Integration ID |

| Flag          | Description                                                            |
| ------------- | ---------------------------------------------------------------------- |
| `-y`, `--yes` | Skip the confirmation prompt (required in non-interactive shells)      |
| `--dry-run`   | Resolve context and print the request that would be sent; send nothing |

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms integration disable 66b2f0a1c3d4e5f6a7b8c9d0 --yes
norbix sms integration disable 66b2f0a1c3d4e5f6a7b8c9d0 --dry-run
```

## `norbix sms integration enable`

Turn an SMS integration on

```sh
norbix sms integration enable ID [flags]
```

| Argument | Required | Description    |
| -------- | -------- | -------------- |
| `ID`     | yes      | Integration ID |

| Flag        | Description                                                            |
| ----------- | ---------------------------------------------------------------------- |
| `--dry-run` | Resolve context and print the request that would be sent; send nothing |

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms integration enable 66b2f0a1c3d4e5f6a7b8c9d0
norbix sms integration enable 66b2f0a1c3d4e5f6a7b8c9d0 --dry-run
```

## `norbix sms integration save`

Create or update an SMS integration

```
--provider picks the body shape. Fake needs nothing else: it accepts every send
and contacts no SMS service, so use it while you develop (one Fake per project,
no update — delete and add it again). The real providers need their
credentials — put the provider-specific fields in --config (inline JSON,
@file.json, or - for stdin). Pass --id to update an existing integration.
```

```sh
norbix sms integration save [flags]
```

| Flag                   | Description                                                                                                 |
| ---------------------- | ----------------------------------------------------------------------------------------------------------- |
| `--dry-run`            | Resolve context and print the request that would be sent; send nothing                                      |
| `--provider` `<value>` | SMS provider — required; one of: `Fake`, `Twilio`, `Vonage`, `Plivo`, `Telnyx`, `Bird`, `Telesign`, `Sinch` |
| `--name` `<value>`     | Integration name (Fake ignores it and uses its own)                                                         |
| `--id` `<value>`       | Integration ID — set it to update instead of create                                                         |
| `--disabled`           | Save it turned off                                                                                          |
| `--config` `<value>`   | Provider-specific fields as a JSON object, @file or -                                                       |

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms integration save --provider Fake
norbix sms integration save --provider Twilio --name Twilio --config @twilio.json
norbix sms integration save --provider Fake --dry-run
```

## `norbix sms integration test`

Send a test SMS through an integration

```
Point this at the Fake integration while you are developing — it accepts the
send and contacts no SMS service, so nothing reaches a real phone.
```

```sh
norbix sms integration test [flags]
```

| Flag                      | Description                                                            |
| ------------------------- | ---------------------------------------------------------------------- |
| `--dry-run`               | Resolve context and print the request that would be sent; send nothing |
| `--integration` `<value>` | Integration ID to send through — required                              |
| `--to` `<value>`          | Phone number (international format) to send the test to                |

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms integration test --integration 66b2f0a1c3d4e5f6a7b8c9d0 --to +37060000000
norbix sms integration test --integration 66b2f0a1c3d4e5f6a7b8c9d0 --to +37060000000 --dry-run
```

## `norbix sms integrations`

List the SMS integrations set up for this project

```sh
norbix sms integrations [flags]
```

| Flag                    | Description                            |
| ----------------------- | -------------------------------------- |
| `--page-size` `<value>` | Records per page                       |
| `--after` `<value>`     | Cursor: fetch the page after this item |

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms integrations --page-size 50
```

## `norbix sms preview`

Render the text behind an SMS preview link

```
The hash is the opaque value the backend puts in a preview link — you cannot
build it yourself, so copy it out of the link.

The signed link is the key: no login and no project are needed. When you are
logged in, your session is still sent.
```

```sh
norbix sms preview [HASH] [flags]
```

| Argument | Required | Description                        |
| -------- | -------- | ---------------------------------- |
| `HASH`   | no       | Preview hash from the preview link |

| Flag               | Description                                               |
| ------------------ | --------------------------------------------------------- |
| `--hash` `<value>` | Preview hash from the preview link (same as the argument) |

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms preview 8f2a91c4d7e6b5a4c3d2e1f0
norbix sms preview --hash 8f2a91c4d7e6b5a4c3d2e1f0 --region nb-eu-germany
```

## `norbix sms settings`

Show the project SMS settings

```sh
norbix sms settings [flags]
```

| Flag             | Description                                    |
| ---------------- | ---------------------------------------------- |
| `--id` `<value>` | Settings ID (defaults to the project settings) |

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms settings
```

## `norbix sms stop`

Stop a running SMS campaign

```sh
norbix sms stop ID [flags]
```

| Argument | Required | Description |
| -------- | -------- | ----------- |
| `ID`     | yes      | Campaign ID |

| Flag          | Description                                                            |
| ------------- | ---------------------------------------------------------------------- |
| `-y`, `--yes` | Skip the confirmation prompt (required in non-interactive shells)      |
| `--dry-run`   | Resolve context and print the request that would be sent; send nothing |

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms stop 66b2f0a1c3d4e5f6a7b8c9d0 --yes
norbix sms stop 66b2f0a1c3d4e5f6a7b8c9d0 --dry-run
```

## `norbix sms template`

Show one SMS template

```sh
norbix sms template ID
```

| Argument | Required | Description |
| -------- | -------- | ----------- |
| `ID`     | yes      | Template ID |

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms template 66b2f0a1c3d4e5f6a7b8c9d0
```

## `norbix sms template create`

Create an SMS template

```
One language: --body. Several languages: --translations with a JSON array of
{language, content: {body}}. An SMS template has no subject or sender: the
sender is set on the SMS integration (provider).
```

```sh
norbix sms template create [flags]
```

| Flag                       | Description                                                                                      |
| -------------------------- | ------------------------------------------------------------------------------------------------ |
| `--dry-run`                | Resolve context and print the request that would be sent; send nothing                           |
| `--name` `<value>`         | Template name — required                                                                         |
| `--description` `<value>`  | What the template is for                                                                         |
| `--channel` `<value>`      | Communication channel — one of: `Transactional`, `Marketing`, `System`; default: `Transactional` |
| `--tag` `<value>`          | Tag (repeat for several) — repeat for several                                                    |
| `--language` `<value>`     | Language of --body — default: `en`                                                               |
| `--body` `<value>`         | SMS text (Razor allowed)                                                                         |
| `--translations` `<value>` | All languages as a JSON array of {language, content: {body}} — inline, @file or -                |

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms template create --name Welcome --body "Hi @Model.Name, your code is @Model.Code"
norbix sms template create --name Welcome --translations @welcome.json
norbix sms template create --name Welcome --body "Hi @Model.Name, your code is @Model.Code" --dry-run
```

## `norbix sms template render`

Render SMS text with token values

```
Use it to check a Razor template before you save it. When the template needs a
token you did not pass, the answer lists the missing ones.
```

```sh
norbix sms template render [flags]
```

| Flag                | Description                                                        |
| ------------------- | ------------------------------------------------------------------ |
| `--code` `<value>`  | Razor source of the text — required                                |
| `--token` `<value>` | Token value as key=value (repeat for several) — repeat for several |
| `--preview`         | Render for a preview (less strict)                                 |

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms template render --code "Hi @Model.Name" --token Name=Ada
```

## `norbix sms template tokens`

List the tokens an SMS template uses — the values a campaign must fill

```sh
norbix sms template tokens ID
```

| Argument | Required | Description |
| -------- | -------- | ----------- |
| `ID`     | yes      | Template ID |

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms template tokens 66b2f0a1c3d4e5f6a7b8c9d0
```

## `norbix sms template update`

Replace an SMS template's name, channel, tags and content

```
The whole template is sent, so pass every language you want to keep.
```

```sh
norbix sms template update ID [flags]
```

| Argument | Required | Description |
| -------- | -------- | ----------- |
| `ID`     | yes      | Template ID |

| Flag                       | Description                                                                                      |
| -------------------------- | ------------------------------------------------------------------------------------------------ |
| `--dry-run`                | Resolve context and print the request that would be sent; send nothing                           |
| `--name` `<value>`         | Template name — required                                                                         |
| `--description` `<value>`  | What the template is for                                                                         |
| `--channel` `<value>`      | Communication channel — one of: `Transactional`, `Marketing`, `System`; default: `Transactional` |
| `--tag` `<value>`          | Tag (repeat for several) — repeat for several                                                    |
| `--language` `<value>`     | Language of --body — default: `en`                                                               |
| `--body` `<value>`         | SMS text (Razor allowed)                                                                         |
| `--translations` `<value>` | All languages as a JSON array of {language, content: {body}} — inline, @file or -                |

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms template update 66b2f0a1c3d4e5f6a7b8c9d0 --name Welcome --body "Hi @Model.Name"
norbix sms template update 66b2f0a1c3d4e5f6a7b8c9d0 --name Welcome --body "Hi @Model.Name" --dry-run
```

## `norbix sms templates`

List SMS templates

```sh
norbix sms templates [flags]
```

| Flag         | Description                |
| ------------ | -------------------------- |
| `--archived` | Include archived templates |

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms templates --archived
```

## `norbix sms unarchive`

Restore an archived SMS template

```sh
norbix sms unarchive ID [flags]
```

| Argument | Required | Description |
| -------- | -------- | ----------- |
| `ID`     | yes      | Template ID |

| Flag        | Description                                                            |
| ----------- | ---------------------------------------------------------------------- |
| `--dry-run` | Resolve context and print the request that would be sent; send nothing |

Also takes the [global flags](/codemash/cli/reference.md#global-flags): `--json`, `--project`, `--env`, `--region`, `--api-key`, `--account`, `--profile`.

Examples:

```sh
norbix sms unarchive 66b2f0a1c3d4e5f6a7b8c9d0
norbix sms unarchive 66b2f0a1c3d4e5f6a7b8c9d0 --dry-run
```
