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

# Templates

Push templates — the title and body of a notification, one version per language, with tokens.

**Where:** Push → **Templates** · `/projects/<project>/push/templates`

A push **template** is the content of a notification: a **title** and a **body** for every language, with `@Model.…` tokens that are filled when it is sent. Campaigns, template tests and trigger actions all send a template. The rules that are the same in every channel (names, tokens, templates in use) are on the [Message templates concept](/codemash/cloud/concepts/message-templates.md) page.

<figure><img src="https://712692422-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHy372bqsaex2cqS3ikhL%2Fuploads%2Fgit-blob-94bb25bc10bc0eaee7101e6322f373c259582db2%2Ftemplates-list-1.png?alt=media" alt="Push Templates list with ten templates: Password changed with the badge Missing lt, Old promo, Appointment reminder, Weekend sale, Order shipped, and the five Membership templates added on enable, each with Missing lt"><figcaption><p>Push Templates right after a new template was created.</p></figcaption></figure>

## Columns, search and filters

| Column            | What it shows                                                                                                                                                                                                                                                                                                                                |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Template Name     | The name; press it to open the [editor](/codemash/cloud/push/templates/editor.md).                                                                                                                                                                                                                                                           |
| Type              | **Transactional** or **Marketing**.                                                                                                                                                                                                                                                                                                          |
| Is Active         | **Yes**, or **No** for an [archived](/codemash/cloud/push/templates/publish.md) template. Archived templates stay in the list.                                                                                                                                                                                                               |
| Project languages | A **Missing \<language>** badge when an active template has no translation for a project language. Such a template cannot be sent until you [translate](/codemash/cloud/push/templates/translate.md) it: a campaign is refused with `CM-ERRORS-LANGUAGES-004` (*Template 'Password reset' has no translation for the project language lt.*). |

The list has no search or filter. Newest templates come first. While the project database is still being set up, a banner says so instead of the list.

## What you can do here

* [Create or edit a template](/codemash/cloud/push/templates/editor.md) — **Create Template**
* [Translate a template](/codemash/cloud/push/templates/translate.md)
* [Send a test push](/codemash/cloud/push/templates/test-send.md)
* [Archive or unarchive a template](/codemash/cloud/push/templates/publish.md)
* [Delete a template](/codemash/cloud/push/templates/delete.md)

## Do it from code

```ts
const { list } = await norbix.hub.notifications.getPushTemplates({ showArchived: true });
console.log(list.items.map((t) => `${t.viewId} ${t.templateName} active=${t.isActive} ${t.languages}`));
```

```sh
norbix hub notifications push templates get
```

Without `showArchived: true` the API leaves archived templates out. The client setup is on the [Push page](/codemash/cloud/push.md#use-it-from-code). API: [Get Push Templates](/codemash/api-reference/notifications/push/get-push-templates.md)
