> For the complete documentation index, see [llms.txt](https://docs.neonblue.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.neonblue.ai/~/revisions/XTL7gm4145KQDVVCAVR7/email-integration/braze-integration/braze-template-setup.md).

# Braze Template Setup

## Braze Templates

### Overview

This page covers how to make a Braze email template Neon Blue-ready. You'll add a render hook and use `{{ nb.* }}` Liquid syntax to create dynamic fields that Neon Blue fills at send time.

For general template design principles (variable types, naming conventions), see \[Connecting Email Templates to Neon Blue].

***

### Render Hook

Add the Neon Blue content block at the beginning of your template:

```liquid
<!--{{content_blocks.${nb_experiment_render}}}-->
```

This calls Neon Blue at render time and makes all variant fields available via the `nb.` namespace. Without this, the template has no connection to Neon Blue.

{% embed url="<https://www.loom.com/share/fae4422676e3442bb20e5660a45043c8>" %}

***

### Dynamic Fields

Replace any content you want Neon Blue to control with Liquid variables using the `nb.` prefix:

```liquid
{{ nb.h1 }}
{{ nb.body | newline_to_br }}
{{ nb.block1_title }}
{{ nb.block1_img.src }}
{{ nb.cta_text }}
```

The dynamic fields you define dictate the **schema** — the set of variables Neon Blue generates or accepts for that template. For example, if you define `{{ nb.h1 }}` and `{{ nb.body }}`, the schema will include those plus `subject` and `preview` (required for every email).

{% embed url="<https://www.loom.com/share/210bc95887ce42e28793cda6f694b4fa>" %}

***

### Liquid Filters

Standard [Liquid filters](https://www.braze.com/docs/user_guide/messaging/design_and_edit/personalize/liquid/using_liquid) work on any field:

| Filter             | Use Case                                      |
| ------------------ | --------------------------------------------- |
| `newline_to_br`    | Converts `\n` to `<br>` for body copy spacing |
| `url_param_escape` | Escapes special characters for use in URLs    |

***

### Exporting as HTML

If you built the template using the Drag-and-drop editor, you must **Download file** to get the raw HTML, then re-import it as an **HTML template**. Neon Blue can only import HTML templates.

***

### Next Steps

* To import this template into the Neon Blue app, see [Importing Templates to the Neon Blue App](https://docs.neonblue.ai/~/revisions/UVOEkW7tEaSNEuGrUkPO/email-integration/importing-templates-to-the-neon-blue-app)
* To connect this template to a Canvas and experiment, see Braze Canvas Setup
