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

# Create or edit a signature

Create or edit an email signature — a name and an MJML block per language.

**Where:** Email → Signatures → **Create Signature** · `/projects/<project>/emails/signatures/new` — or press an id · `/projects/<project>/emails/signatures/<signatureId>/edit`

## Before you start

* The project languages ([Project → Settings → Languages](/codemash/cloud/project/settings/languages.md)) — give the signature a translation for each one; a missing translation renders as nothing.
* Permission `email:create` (create and update).

## Steps

1. Press **Create Signature**. **Add New Email Signature** opens with one translation in the project default language and a default MJML block.

   The description under the title talks about "links like unsubscribe, privacy policy, or social icons" — that text belongs to footers; a signature is the sender block.

   <figure><img src="https://712692422-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHy372bqsaex2cqS3ikhL%2Fuploads%2Fgit-blob-fd9f25b680592108ec8b057f9100d2a55990a542%2Fsignatures-create-1.png?alt=media" alt="Add New Email Signature: Signature name field, Translations EN (default) and DE, Language English, Signature code editor with the default block"><figcaption><p>The empty form.</p></figcaption></figure>
2. Fill the form:

   | Field                    | Required | What it does                                                                                                                                                                                      | Example              |
   | ------------------------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- |
   | Signature name           | yes      | The name in the list and in token pickers.                                                                                                                                                        | `Sales team`         |
   | Translations             | yes      | Language tags; each picked language adds a block.                                                                                                                                                 | `EN (default)`, `DE` |
   | Signature (per language) | yes      | The MJML block — only the inner elements (`<mj-text>`, `<mj-section>`), not a whole email. Use the code editor or **Edit in Visual Builder →**. Tokens such as `@Model.Project.Name` work inside. | the default block    |

   <figure><img src="https://712692422-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHy372bqsaex2cqS3ikhL%2Fuploads%2Fgit-blob-97829bfc3976807bca80b0ef42d875dfa1025b2d%2Fsignatures-create-2.png?alt=media" alt="Signature name Sales team, tags EN (default) and DE both picked, the English block below"><figcaption><p>Name filled and German added.</p></figcaption></figure>
3. Press **Create** (new) or **Update** (existing).

## Result

You are back on the list and the signature is there, with its id and languages.

<figure><img src="https://712692422-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHy372bqsaex2cqS3ikhL%2Fuploads%2Fgit-blob-fccba62709e531873f5045dc64bed5ea0609d357%2Fsignatures-create-3.png?alt=media" alt="Email Signatures list with Sales team added, translations en, de"><figcaption><p>The new signature in the list.</p></figcaption></figure>

Open it to edit it: the id is shown as a copy button, and the next sends render the new version.

<figure><img src="https://712692422-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHy372bqsaex2cqS3ikhL%2Fuploads%2Fgit-blob-c5200d693d0f7eabd07bc3aed4ec6c078e297562%2Fsignatures-edit-1.png?alt=media" alt="Edit Email Signature Sales team: id copy button, Signature name, Translations, the code editor"><figcaption><p>An existing signature in the editor.</p></figcaption></figure>

## Change or remove it later

* **Edit** — change the name or a block and press **Update**.
* **Delete** — **Actions → Delete**: [Delete a signature](/codemash/cloud/emails/signatures/delete.md). **Actions → See documentation** opens this page.

## Do it from code

```ts
const { id } = await norbix.hub.notifications.saveEmailSignature({
  displayName: 'Billing team',
  translations: [
    { language: 'en', content: '<mj-text>Grace Hopper<br/>Billing, Acme</mj-text>' },
    { language: 'de', content: '<mj-text>Grace Hopper<br/>Buchhaltung, Acme</mj-text>' },
  ],
});
console.log(id); // emlsgn_5xUyzqfXJbGbfHPNacuGVk
```

```sh
norbix hub notifications email signature get --id emlsgn_2zT7jxLqeylWMYCPLzDSpm
```

`saveEmailSignature` with a `viewId` updates an existing signature.

API: [Save Email Signature](/codemash/api-reference/notifications/email/save-email-signature.md) · [Get Email Signature](/codemash/api-reference/notifications/email/get-email-signature.md)
