> 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/email.md).

# norbix email

Email module, integrations, footers, signatures, templates and campaigns.

Email module, integrations, footers, signatures, templates and campaigns.

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

* [`norbix email archive`](#norbix-email-archive) — Archive an email template
* [`norbix email campaign`](#norbix-email-campaign) — Show one email campaign (or its statistics with --stats)
* [`norbix email campaign batch`](#norbix-email-campaign-batch) — List the e-mails in one batch — or show one of them
* [`norbix email campaign batches`](#norbix-email-campaign-batches) — List the send batches of an email campaign
* [`norbix email campaign create`](#norbix-email-campaign-create) — Create an email campaign
* [`norbix email campaign delete`](#norbix-email-campaign-delete) — Delete an email campaign
* [`norbix email campaign messages`](#norbix-email-campaign-messages) — List the e-mails a campaign sent in one batch
* [`norbix email campaigns`](#norbix-email-campaigns) — List email campaigns
* [`norbix email clone`](#norbix-email-clone) — Clone an email template
* [`norbix email delete`](#norbix-email-delete) — Delete an email template
* [`norbix email disable`](#norbix-email-disable) — Turn off the email module for the project
* [`norbix email disable-dependencies`](#norbix-email-disable-dependencies) — List what still depends on email — check before `email disable`
* [`norbix email enable`](#norbix-email-enable) — Turn on the email module for the project
* [`norbix email footer`](#norbix-email-footer) — Show one email footer
* [`norbix email footer delete`](#norbix-email-footer-delete) — Delete an email footer
* [`norbix email footer save`](#norbix-email-footer-save) — Create or update an email footer
* [`norbix email footers`](#norbix-email-footers) — List the email footers
* [`norbix email integration`](#norbix-email-integration) — Show one email integration
* [`norbix email integration confirm-delivery`](#norbix-email-integration-confirm-delivery) — Confirm that the test e-mail reached a person
* [`norbix email integration default`](#norbix-email-integration-default) — Make an email integration the project default (campaigns use it when they name none)
* [`norbix email integration delete`](#norbix-email-integration-delete) — Delete an email integration
* [`norbix email integration disable`](#norbix-email-integration-disable) — Turn an email integration off
* [`norbix email integration domain-health`](#norbix-email-integration-domain-health) — Check the DNS records (SPF, DKIM, DMARC) of an integration's sending domain
* [`norbix email integration enable`](#norbix-email-integration-enable) — Turn an email integration on
* [`norbix email integration save`](#norbix-email-integration-save) — Create or update an email integration
* [`norbix email integration test`](#norbix-email-integration-test) — Send a test e-mail through an integration
* [`norbix email integrations`](#norbix-email-integrations) — List the email integrations set up for this project
* [`norbix email preview`](#norbix-email-preview) — Show the subject and HTML of one sent e-mail
* [`norbix email settings`](#norbix-email-settings) — Show the project email settings
* [`norbix email signature`](#norbix-email-signature) — Show one email signature
* [`norbix email signature delete`](#norbix-email-signature-delete) — Delete an email signature
* [`norbix email signature save`](#norbix-email-signature-save) — Create or update an email signature
* [`norbix email signatures`](#norbix-email-signatures) — List the email signatures
* [`norbix email stop`](#norbix-email-stop) — Stop a running email campaign
* [`norbix email system-template`](#norbix-email-system-template) — Show one ready-made (system) email template
* [`norbix email system-templates`](#norbix-email-system-templates) — List the ready-made (system) email templates
* [`norbix email template`](#norbix-email-template) — Show one email template
* [`norbix email template attach`](#norbix-email-template-attach) — Attach an uploaded file to an email template
* [`norbix email template create`](#norbix-email-template-create) — Create an email template
* [`norbix email template render`](#norbix-email-template-render) — Render MJML (with Razor tokens) to HTML
* [`norbix email template tokens`](#norbix-email-template-tokens) — List the tokens an email template uses
* [`norbix email template update`](#norbix-email-template-update) — Replace an email template's name, channel, tags and content
* [`norbix email templates`](#norbix-email-templates) — List email templates
* [`norbix email unarchive`](#norbix-email-unarchive) — Restore an archived email template
* [`norbix email validation save`](#norbix-email-validation-save) — Create or update an email-validation integration
* [`norbix email validation test`](#norbix-email-validation-test) — Check that an email-validation integration can reach its provider

## `norbix email archive`

Archive an email template

```sh
norbix email 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 email archive 66b2f0a1c3d4e5f6a7b8c9d0
norbix email archive 66b2f0a1c3d4e5f6a7b8c9d0 --dry-run
```

## `norbix email campaign`

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

```sh
norbix email 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 email campaign 66b2f0a1c3d4e5f6a7b8c9d0 --stats
```

## `norbix email campaign batch`

List the e-mails in one batch — or show one of them

```
Give a notification ID as the third argument to see just that e-mail. To see
how it looked, run `email preview --notification <notificationId>`.
```

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

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

| Flag                               | Description                                               |
| ---------------------------------- | --------------------------------------------------------- |
| `--database-integration` `<value>` | Database integration ID (defaults to the project default) |
| `--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 email campaign batch 66b2f0a1c3d4e5f6a7b8c9d0 b7c3d2e1f0a9b8c7d6e5f4a3
norbix email campaign batch 66b2f0a1c3d4e5f6a7b8c9d0 b7c3d2e1f0a9b8c7d6e5f4a3 9d4e5f6a7b8c9d0e1f2a3b4c
```

## `norbix email campaign batches`

List the send batches of an email campaign

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

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

| Flag                               | Description                                               |
| ---------------------------------- | --------------------------------------------------------- |
| `--batch` `<value>`                | Only this batch                                           |
| `--email` `<value>`                | Only batches that went to this address                    |
| `--database-integration` `<value>` | Database integration ID (defaults to the project default) |
| `--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 email campaign batches 66b2f0a1c3d4e5f6a7b8c9d0
norbix email campaign batches 66b2f0a1c3d4e5f6a7b8c9d0 --email ada@example.com
```

## `norbix email campaign create`

Create an email campaign

```
--audience picks who receives it:
  all-users      every user with an e-mail; narrow with --role / --tag
  users          the users named with --user (copies with --cc / --bcc user IDs)
  account-users  the account users named with --user
  emails         raw addresses, --email (copies with --cc / --bcc addresses)
  collection     the recipients in --field of the --schema collection

--integration is required: name the email provider the campaign sends through
(list them with `norbix email 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. --validation-integration checks
every address first. Anything the flags do not cover goes in --config as a JSON
object and is merged into the campaign.
```

```sh
norbix email 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`, `account-users`, `emails`, `collection`                                                                |
| `--user` `<value>`                   | User ID (users / account-users; repeat for several) — repeat for several                                                                                         |
| `--email` `<value>`                  | E-mail address (emails; repeat for several) — repeat for several                                                                                                 |
| `--cc` `<value>`                     | Copy to — a user ID (users / account-users) or address (emails); repeat — repeat for several                                                                     |
| `--bcc` `<value>`                    | Blind copy — a user ID or address, like --cc; repeat — repeat for several                                                                                        |
| `--one-each`                         | Send every recipient a separate e-mail instead of one e-mail to all (users / account-users / emails)                                                             |
| `--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`; default: `User`                                                                                       |
| `--integration` `<value>`            | Email integration ID the campaign sends through; list them with `norbix email integrations` — required                                                           |
| `--validation-integration` `<value>` | Email-validation integration ID — check every address first                                                                                                      |
| `--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)                                              |
| `--notes` `<value>`                  | Internal notes                                                                                                                                                   |
| `--at` `<value>`                     | Send later: ISO 8601 date-time or Unix seconds                                                                                                                   |
| `--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 campaign 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 email campaign create --template 66b2f0a1c3d4e5f6a7b8c9d0 --integration 66c1a2b3c4d5e6f7a8b9c0d1 --audience all-users --tag beta
norbix email campaign create --template 66b2f0a1c3d4e5f6a7b8c9d0 --integration 66c1a2b3c4d5e6f7a8b9c0d1 --audience emails --email ada@example.com --at 2026-10-01T09:00:00Z
norbix email campaign create --template 66b2f0a1c3d4e5f6a7b8c9d0 --integration 66c1a2b3c4d5e6f7a8b9c0d1 --audience collection --schema subscribers --field email --field-type Email
norbix email campaign create --template 66b2f0a1c3d4e5f6a7b8c9d0 --integration 66c1a2b3c4d5e6f7a8b9c0d1 --audience all-users --tag beta --dry-run
```

## `norbix email campaign delete`

Delete an email campaign

```sh
norbix email 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 email campaign delete 66b2f0a1c3d4e5f6a7b8c9d0 --yes
norbix email campaign delete 66b2f0a1c3d4e5f6a7b8c9d0 --dry-run
```

## `norbix email campaign messages`

List the e-mails a campaign sent in one batch

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

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

| Flag                               | Description                                               |
| ---------------------------------- | --------------------------------------------------------- |
| `--batch` `<value>`                | Batch ID (from `email campaign batches`) — required       |
| `--database-integration` `<value>` | Database integration ID (defaults to the project default) |
| `--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 email campaign messages 66b2f0a1c3d4e5f6a7b8c9d0 --batch b7c3d2e1f0a9b8c7d6e5f4a3
```

## `norbix email campaigns`

List email campaigns

```sh
norbix email campaigns [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 email campaigns
```

## `norbix email clone`

Clone an email template

```sh
norbix email 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 email clone 66b2f0a1c3d4e5f6a7b8c9d0
norbix email clone 66b2f0a1c3d4e5f6a7b8c9d0 --dry-run
```

## `norbix email delete`

Delete an email template

```sh
norbix email 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 email delete 66b2f0a1c3d4e5f6a7b8c9d0 --yes
norbix email delete 66b2f0a1c3d4e5f6a7b8c9d0 --dry-run
```

## `norbix email disable`

Turn off the email module for the project

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

```sh
norbix email 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 email disable --yes
norbix email disable --dry-run
```

## `norbix email disable-dependencies`

List what still depends on email — check before `email disable`

```sh
norbix email disable-dependencies
```

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

Examples:

```sh
norbix email disable-dependencies
```

## `norbix email enable`

Turn on the email module for the project

```sh
norbix email 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 email enable
norbix email enable --dry-run
```

## `norbix email footer`

Show one email footer

```sh
norbix email footer ID
```

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

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

Examples:

```sh
norbix email footer 66b2f0a1c3d4e5f6a7b8c9d0
```

## `norbix email footer delete`

Delete an email footer

```sh
norbix email footer delete ID [flags]
```

| Argument | Required | Description |
| -------- | -------- | ----------- |
| `ID`     | yes      | Footer 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 email footer delete 66b2f0a1c3d4e5f6a7b8c9d0 --yes
norbix email footer delete 66b2f0a1c3d4e5f6a7b8c9d0 --dry-run
```

## `norbix email footer save`

Create or update an email footer

```
One language: --content (HTML, Razor allowed) or --content-file. Several
languages: --translations with a JSON array of {language, content}. Pass --id
to update; the whole footer is sent, so include every language you want to keep.
```

```sh
norbix email footer save [flags]
```

| Flag                       | Description                                                               |
| -------------------------- | ------------------------------------------------------------------------- |
| `--dry-run`                | Resolve context and print the request that would be sent; send nothing    |
| `--name` `<value>`         | Footer name — required                                                    |
| `--id` `<value>`           | Footer ID — set it to update instead of create                            |
| `--language` `<value>`     | Language of --content — default: `en`                                     |
| `--content` `<value>`      | HTML content (Razor allowed)                                              |
| `--content-file` `<value>` | Read the HTML content from this file                                      |
| `--translations` `<value>` | All languages as a JSON array of {language, content} — 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 email footer save --name Default --content-file footer.html
norbix email footer save --id 66b2f0a1c3d4e5f6a7b8c9d0 --name Default --translations @footer.json
norbix email footer save --name Default --content-file footer.html --dry-run
```

## `norbix email footers`

List the email footers

```sh
norbix email footers [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 email footers
```

## `norbix email integration`

Show one email integration

```sh
norbix email 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 email integration 66b2f0a1c3d4e5f6a7b8c9d0
```

## `norbix email integration confirm-delivery`

Confirm that the test e-mail reached a person

```
Run it after `email integration test` once you saw the e-mail in the inbox.
```

```sh
norbix email 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 email integration confirm-delivery 66b2f0a1c3d4e5f6a7b8c9d0
norbix email integration confirm-delivery 66b2f0a1c3d4e5f6a7b8c9d0 --dry-run
```

## `norbix email integration default`

Make an email integration the project default (campaigns use it when they name none)

```sh
norbix email 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 email integration default 66b2f0a1c3d4e5f6a7b8c9d0
norbix email integration default 66b2f0a1c3d4e5f6a7b8c9d0 --dry-run
```

## `norbix email integration delete`

Delete an email integration

```sh
norbix email 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 email integration delete 66b2f0a1c3d4e5f6a7b8c9d0 --yes
norbix email integration delete 66b2f0a1c3d4e5f6a7b8c9d0 --dry-run
```

## `norbix email integration disable`

Turn an email integration off

```sh
norbix email 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 email integration disable 66b2f0a1c3d4e5f6a7b8c9d0 --yes
norbix email integration disable 66b2f0a1c3d4e5f6a7b8c9d0 --dry-run
```

## `norbix email integration domain-health`

Check the DNS records (SPF, DKIM, DMARC) of an integration's sending domain

```
Read only — nothing is sent.
```

```sh
norbix email integration domain-health 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 email integration domain-health 66b2f0a1c3d4e5f6a7b8c9d0
```

## `norbix email integration enable`

Turn an email integration on

```sh
norbix email 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 email integration enable 66b2f0a1c3d4e5f6a7b8c9d0
norbix email integration enable 66b2f0a1c3d4e5f6a7b8c9d0 --dry-run
```

## `norbix email integration save`

Create or update an email integration

```
--provider picks the body shape. Fake needs nothing else: it accepts every send
and contacts no mail service, so nothing reaches a real inbox — use it while you
develop (one Fake per project, no update — delete and add it again). The real
providers need a sender (--from) and 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 email integration save [flags]
```

| Flag                      | Description                                                                        |
| ------------------------- | ---------------------------------------------------------------------------------- |
| `--dry-run`               | Resolve context and print the request that would be sent; send nothing             |
| `--provider` `<value>`    | Email provider — required; one of: `Fake`, `Smtp`, `SendGrid`, `MailGun`, `AwsSes` |
| `--name` `<value>`        | Integration name (Fake ignores it and uses its own)                                |
| `--id` `<value>`          | Integration ID — set it to update instead of create                                |
| `--from` `<value>`        | Sender e-mail address (Fake ignores it)                                            |
| `--sender-name` `<value>` | Sender display name                                                                |
| `--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 email integration save --provider Fake
norbix email integration save --provider SendGrid --name SendGrid --from hello@example.com --config @sendgrid.json
norbix email integration save --provider Fake --dry-run
```

## `norbix email integration test`

Send a test e-mail through an integration

```
Point this at the Fake integration while you are developing — it accepts the
send and contacts no mail service, so nothing reaches a real inbox. With a real
provider, run `email integration confirm-delivery` once the e-mail arrived.
```

```sh
norbix email 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>`          | E-mail address to send the test to — required                          |

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

Examples:

```sh
norbix email integration test --integration 66b2f0a1c3d4e5f6a7b8c9d0 --to dev@example.com
norbix email integration test --integration 66b2f0a1c3d4e5f6a7b8c9d0 --to dev@example.com --dry-run
```

## `norbix email integrations`

List the email integrations set up for this project

```sh
norbix email 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 email integrations --page-size 50
```

## `norbix email preview`

Show the subject and HTML of one sent e-mail

```
Two ways in:
  <hash> / --hash        the opaque hash from a preview link — the signed link is
                         the key, so no login and no project are needed
  --notification <id>    a notification of your project (from
                         `email campaign batch`) — needs a login with email:read

When you are logged in, your session is sent with a hash too.
```

```sh
norbix email 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) |
| `--notification` `<value>` | Notification ID — signed-in preview of your own project   |

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

Examples:

```sh
norbix email preview 8f2a91c4d7e6b5a4c3d2e1f0
norbix email preview --hash 8f2a91c4d7e6b5a4c3d2e1f0 --region nb-eu-germany
norbix email preview --notification 9d4e5f6a7b8c9d0e1f2a3b4c
```

## `norbix email settings`

Show the project email settings

```sh
norbix email 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 email settings
```

## `norbix email signature`

Show one email signature

```sh
norbix email signature ID
```

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

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

Examples:

```sh
norbix email signature 66b2f0a1c3d4e5f6a7b8c9d0
```

## `norbix email signature delete`

Delete an email signature

```sh
norbix email signature delete ID [flags]
```

| Argument | Required | Description  |
| -------- | -------- | ------------ |
| `ID`     | yes      | Signature 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 email signature delete 66b2f0a1c3d4e5f6a7b8c9d0 --yes
norbix email signature delete 66b2f0a1c3d4e5f6a7b8c9d0 --dry-run
```

## `norbix email signature save`

Create or update an email signature

```
One language: --content (HTML, Razor allowed) or --content-file. Several
languages: --translations with a JSON array of {language, content}. Pass --id
to update; the whole signature is sent, so include every language you want to keep.
```

```sh
norbix email signature save [flags]
```

| Flag                       | Description                                                               |
| -------------------------- | ------------------------------------------------------------------------- |
| `--dry-run`                | Resolve context and print the request that would be sent; send nothing    |
| `--name` `<value>`         | Signature name — required                                                 |
| `--id` `<value>`           | Signature ID — set it to update instead of create                         |
| `--language` `<value>`     | Language of --content — default: `en`                                     |
| `--content` `<value>`      | HTML content (Razor allowed)                                              |
| `--content-file` `<value>` | Read the HTML content from this file                                      |
| `--translations` `<value>` | All languages as a JSON array of {language, content} — 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 email signature save --name Default --content-file signature.html
norbix email signature save --id 66b2f0a1c3d4e5f6a7b8c9d0 --name Default --translations @signature.json
norbix email signature save --name Default --content-file signature.html --dry-run
```

## `norbix email signatures`

List the email signatures

```sh
norbix email signatures [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 email signatures
```

## `norbix email stop`

Stop a running email campaign

```sh
norbix email 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 email stop 66b2f0a1c3d4e5f6a7b8c9d0 --yes
norbix email stop 66b2f0a1c3d4e5f6a7b8c9d0 --dry-run
```

## `norbix email system-template`

Show one ready-made (system) email template

```sh
norbix email system-template ID
```

| Argument | Required | Description        |
| -------- | -------- | ------------------ |
| `ID`     | yes      | System template ID |

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

Examples:

```sh
norbix email system-template 66b2f0a1c3d4e5f6a7b8c9d0
```

## `norbix email system-templates`

List the ready-made (system) email templates

```
Pick one as a starting point, then copy its translations into
`email template create --translations`.
```

```sh
norbix email system-templates [flags]
```

| Flag                    | Description                                                                                     |
| ----------------------- | ----------------------------------------------------------------------------------------------- |
| `--tag` `<value>`       | Group tag, e.g. newsletter or onboarding (repeat for several) — repeat for several              |
| `--theme` `<value>`     | Visual theme (repeat for several) — repeat for several                                          |
| `--channel` `<value>`   | Communication channel — one of: `Transactional`, `Marketing`, `System`                          |
| `--trigger` `<value>`   | Only templates made for this trigger type — one of: `Membership`, `Schema`, `Files`, `Payments` |
| `--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 email system-templates
norbix email system-templates --tag onboarding --channel Transactional
```

## `norbix email template`

Show one email template

```sh
norbix email 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 email template 66b2f0a1c3d4e5f6a7b8c9d0
```

## `norbix email template attach`

Attach an uploaded file to an email template

```
Every e-mail sent with the template carries the file. Upload it first
(`norbix files upload`) and pass the file reference the upload returned —
{resource, integrationId, provider, path, isPublic} — as --file-ref (inline
JSON, @file.json, or - for stdin). --language attaches it to one translation
only.
```

```sh
norbix email template attach 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 |
| `--file-ref` `<value>` | File reference as a JSON object, @file or - — required                 |
| `--language` `<value>` | Attach to this translation only                                        |

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

Examples:

```sh
norbix email template attach 66b2f0a1c3d4e5f6a7b8c9d0 --file-ref @terms-ref.json
norbix email template attach 66b2f0a1c3d4e5f6a7b8c9d0 --file-ref @terms-ref.json --language lt
norbix email template attach 66b2f0a1c3d4e5f6a7b8c9d0 --file-ref @terms-ref.json --dry-run
```

## `norbix email template create`

Create an email template

```
One language: --subject and --body (or --body-file, e.g. a .mjml file). The
body is MJML with Razor tokens (@Model.Name) unless you pick another --engine.
Several languages: --translations with a JSON array of
{language, content: {subject, body: {code, templateEngine}}}.

Check the code first with `email template render`.
```

```sh
norbix email 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 --subject / --body — default: `en`                                                                     |
| `--subject` `<value>`      | Subject line (Razor allowed)                                                                                       |
| `--body` `<value>`         | Body code — MJML with Razor tokens by default                                                                      |
| `--body-file` `<value>`    | Read the body code from this file (e.g. welcome.mjml)                                                              |
| `--engine` `<value>`       | Template engine of the body — one of: `Mjml`, `Razor`, `Handlebars`, `Liquid`, `Mustache`; default: `Mjml`         |
| `--translations` `<value>` | All languages as a JSON array of {language, content: {subject, body: {code, templateEngine}}} — 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 email template create --name Welcome --subject "Hi @Model.Name" --body-file welcome.mjml
norbix email template create --name Welcome --translations @welcome.json
norbix email template create --name Welcome --subject "Hi @Model.Name" --body-file welcome.mjml --dry-run
```

## `norbix email template render`

Render MJML (with Razor tokens) to HTML

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

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

| Flag                | Description                                                        |
| ------------------- | ------------------------------------------------------------------ |
| `--code` `<value>`  | MJML / Razor source                                                |
| `--file` `<value>`  | Read the source from this file                                     |
| `--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 email template render --file welcome.mjml --token Name=Ada
norbix email template render --code "<mjml><mj-body><mj-text>Hi @Model.Name</mj-text></mj-body></mjml>" --preview
```

## `norbix email template tokens`

List the tokens an email template uses

```sh
norbix email 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 email template tokens 66b2f0a1c3d4e5f6a7b8c9d0
```

## `norbix email template update`

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

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

```sh
norbix email 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 --subject / --body — default: `en`                                                                     |
| `--subject` `<value>`      | Subject line (Razor allowed)                                                                                       |
| `--body` `<value>`         | Body code — MJML with Razor tokens by default                                                                      |
| `--body-file` `<value>`    | Read the body code from this file (e.g. welcome.mjml)                                                              |
| `--engine` `<value>`       | Template engine of the body — one of: `Mjml`, `Razor`, `Handlebars`, `Liquid`, `Mustache`; default: `Mjml`         |
| `--translations` `<value>` | All languages as a JSON array of {language, content: {subject, body: {code, templateEngine}}} — 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 email template update 66b2f0a1c3d4e5f6a7b8c9d0 --name Welcome --subject "Hi @Model.Name" --body-file welcome.mjml
norbix email template update 66b2f0a1c3d4e5f6a7b8c9d0 --name Welcome --subject "Hi @Model.Name" --body-file welcome.mjml --dry-run
```

## `norbix email templates`

List email templates

```sh
norbix email 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 email templates --archived
```

## `norbix email unarchive`

Restore an archived email template

```sh
norbix email 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 email unarchive 66b2f0a1c3d4e5f6a7b8c9d0
norbix email unarchive 66b2f0a1c3d4e5f6a7b8c9d0 --dry-run
```

## `norbix email validation save`

Create or update an email-validation integration

```
A campaign can check every address with it before sending
(`email campaign create --validation-integration <id>`). Put the provider's
credentials (for example {"apiKey": "..."}) in --config — inline JSON,
@file.json, or - for stdin — so the key does not land in your shell history.
Pass --id to update an existing integration.
```

```sh
norbix email validation save [flags]
```

| Flag                   | Description                                                                                       |
| ---------------------- | ------------------------------------------------------------------------------------------------- |
| `--dry-run`            | Resolve context and print the request that would be sent; send nothing                            |
| `--provider` `<value>` | Validation provider — required; one of: `ZeroBounce`, `NeverBounce`, `Bouncer`, `MailgunValidate` |
| `--name` `<value>`     | Integration name — required                                                                       |
| `--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 email validation save --provider ZeroBounce --name ZeroBounce --config @zerobounce.json
norbix email validation save --provider ZeroBounce --name ZeroBounce --config @zerobounce.json --dry-run
```

## `norbix email validation test`

Check that an email-validation integration can reach its provider

```
The provider checks one test address; no e-mail is sent.
```

```sh
norbix email validation test ID [flags]
```

| Argument | Required | Description               |
| -------- | -------- | ------------------------- |
| `ID`     | yes      | Validation 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 email validation test 66b2f0a1c3d4e5f6a7b8c9d0
norbix email validation test 66b2f0a1c3d4e5f6a7b8c9d0 --dry-run
```
