 
# Emails with dynamic content

There are two supported approaches for sending emails with dynamic content:

1. **Template language** (recommended)
    - Use the `templateLanguageVersion=2` parameter in your API request.
    - Allows more powerful syntax for substitutions, logic, and expressions.
2. **Legacy handlebars helpers**
    - Do not set `templateLanguageVersion` in the API request.
    - Still supported for backward compatibility.

See the [Send fully featured email](https://www.infobip.com/docs/api/channels/email/send-fully-featured-email) API endpoint for the full API reference.

Refer to the Template language and Legacy handlebars sections below to learn more about these two approaches.

## Template language (recommended)

To send emails with dynamic content, use the template language within your HTML content and define placeholder values in the `to` or `default` parameter of your request.

You can add any available template language constructs to handle substitutions, conditional statements, or iterations directly in your email template.

For details, see [Template language](https://www.infobip.com/docs/email/email-editor/email-personalization#template-language).

## Legacy handlebars helpers

Legacy helpers use the familiar `{{#helper}} ... {{/helper}}` syntax. These are still supported, but we recommend migrating to the new template language for future-proof projects.

Legacy handlebar helper examples

| HTML request | To JSON request | Resolved HTML |
| --- | --- | --- |
| Helper example: #eq |
| \{\{#eq name "Bob"\}\}         Dear \{\{name\}\}   \{\{else\}\}       Hi \{\{name\}\}   \{\{/eq\}\} | \{    "to": "john.smith@somedomain.com",    "placeholders": \{    "name": "Bob"    \}  \} | Dear Bob |
| Helper example: #each |
| \{\{#each friends\}\}      Hi \{\{this\}\} \{\{/each\}\} | \{    "to": "john.smith@somedomain.com",    "placeholders": \{ "friends":["Bob","John","Jack"]  \}  \} | Hi Bob Hi John Hi Jack |
| Helper example: #unlessEq |
| \{\{#unlessEq name "Bob"\}\}     Dear \{\{name\}\}   \{\{else\}\}    Hi \{\{name\}\}  \{\{/unlessEq\}\} | \{    "to": "john.smith@somedomain.com",    "placeholders": \{    "name": "Bob"    \}  \} | Hi Bob |
| Helper example: #default |
| Hi \{\{name\}\} | \{    "to": "john.smith@somedomain.com",    "placeholders": \{    "name": "Bob"    \}  \} | Hi Bob |
| Helper example: #gt |
| \{\{#gt age 12\}\}    Welcome \{\{name\}\}!  \{\{else\}\}    Hey \{\{name\}\}, you are under age  \{\{/gt\}\} | \{    "to": "john.smith@somedomain.com",    "placeholders": \{    "name": "Bob" , "age":10   \}  \} | Hey Bob, you are under age |
| Helper example: #lt |
| \{\{#lt age 12\}\}    Welcome \{\{name\}\}!  \{\{else\}\}    Sorry \{\{name\}\}, This is kids arena  \{\{/lt\}\} | \{    "to": "john.smith@somedomain.com",    "placeholders": \{    "name": "Bob" , "age":10   \}  \} | Welcome Bob! |
| Helper example: #equalsIgnoreCase |
| \{\{#equalsIgnoreCase gender "male"\}\}    Dear Mr \{\{name\}\}  \{\{else\}\}    Dear customer  \{\{/equalsIgnoreCase\}\} | \{    "to": "john.smith@somedomain.com",    "placeholders":\{    "name": "Bob" , "gender": "MALE"   \}  \} | Dear Mr Bob |
| Helper example: #gte |
| \{\{#gte age 12\}\}    Welcome \{\{name\}\}!  \{\{else\}\}    Hey \{\{name\}\}, you are under age  \{\{/gte\}\} | \{    "to": "john.smith@somedomain.com",    "placeholders": \{    "name": "Bob" , "age":10   \}  \} | Hey Bob, you are under age |
| Helper example: #lte |
| \{\{#lte age 12\}\}    Welcome \{\{name\}\}!  \{\{else\}\}    Sorry \{\{name\}\}, This is kids arena  \{\{/lte\}\} | \{    "to": "john.smith@somedomain.com",    "placeholders": \{    "name": "Bob" , "age":10   \}  \} | Welcome Bob! |
| Helper example: #compare |
| \{\{#compare name "!=" "Bob"\}\}Hi \{\{name\}\}\{\{else\}\} Dear Bob\{\{/compare\}\} | \{    "to": "john.smith@somedomain.com",    "placeholders": \{    "name": "Jane" , "age":10   \}  \} | Hi Jane |
| Helper example: #equals |
| \{\{#equals name "Bob"\}\}         Dear \{\{name\}\}   \{\{else\}\}       Hi \{\{name\}\}   \{\{/equals\}\} | \{    "to": "john.smith@somedomain.com",    "placeholders": \{    "name": "Bob"    \}  \} | Dear Bob |
| Helper example: #lessThan |
| \{\{#lessThan  age 12\}\}    Welcome \{\{name\}\}!  \{\{else\}\}    Sorry \{\{name\}\}, This is kids arena  \{\{/lessThan\}\} | \{    "to": "john.smith@somedomain.com",    "placeholders": \{    "name": "Bob" , "age":10   \}  \} | Welcome Bob! |
| Helper example: #lessThanOrEquals |
| \{\{#lessThanOrEquals age 12\}\}    Welcome \{\{name\}\}!  \{\{else\}\}    Sorry \{\{name\}\}, This is kids arena  \{\{/lte\}\} | \{    "to": "john.smith@somedomain.com",    "placeholders": \{    "name": "Bob" , "age":10   \}  \} | Welcome Bob! |
| Helper example: #greaterThan |
| \{\{#greaterThan  age 12\}\}    Welcome \{\{name\}\}!  \{\{else\}\}    Hey \{\{name\}\}, you are under age  \{\{/greaterThan \}\} | \{    "to": "john.smith@somedomain.com",    "placeholders": \{    "name": "Bob" , "age":10   \}  \} | Hey Bob, you are under age |
| Helper example: #greaterThanOrEquals |
| \{\{#greaterThanOrEquals age 12\}\}    Welcome \{\{name\}\}!  \{\{else\}\}    Hey \{\{name\}\}, you are under age\{\{/greaterThanOrEquals \}\} | \{    "to": "john.smith@somedomain.com",    "placeholders": \{    "name": "Bob" , "age":10   \}  \} | Hey Bob, you are under age |
| Helper example: #when |
| \{\{#when name "!=" "Bob"\}\} Hi \{\{name\}\}\{\{else\}\}Dear Bob\{\{/when\}\} | \{    "to": "john.smith@somedomain.com",    "placeholders": \{    "name": "Jane" , "age":10   \}  \} | Hey Jane |
| Helper example: #contains |
| \{\{#contains friends "Bob"\}\}      Hi \{\{this\}\} \{\{/each\}\} | \{    "to": "john.smith@somedomain.com",    "placeholders": \{ "friends":["Bob","John","Jack"]  \}  \} | Hi Bob |
| Helper example: #and |
| \{\{#and great magnificent\}\}Bob\{\{else\}\}Jane\{\{/and\}\} | \{    "to": "john.smith@somedomain.com",    "placeholders": \{ "great": true, "magnificent": true \}  \} | Hi Bob |
| Helper example: #formatNumber |
| \{\{#formatNumber price\}\} \{\{/formatNumber\}\} | \{    "to": "john.smith@somedomain.com",    "placeholders": \{ "price":10000 \}  \} | 10,000 |
| Helper example: #isTruthy |
| \{\{#isTruthy Male\}\}Hi Bob\{\{else\}\}Hi Jane\{\{/isTruthy\}\} | \{    "to": "john.smith@somedomain.com",    "placeholders": \{ "Male": true \}  \} | Hi Bob |
| Helper example: #isFalsey |
| \{\{#isFalsey Male\}\}Hi Bob\{\{else\}\}Hi Jane\{\{/isFalsey\}\} | \{    "to": "john.smith@somedomain.com",    "placeholders": \{ "Male": true \}  \} | Hi Jane |
| Helper example: #ifEven |
| \{\{#ifEven age\}\}Hi Bob\{\{else\}\}Hi Jane\{\{/ifEven\}\} | \{    "to": "john.smith@somedomain.com",    "placeholders": \{ "age": 20 \}  \} | Hi Bob |
| Helper example: #ifOdd |
| \{\{#ifOdd age\}\}Hi Bob\{\{else\}\}Hi Jane\{\{/ifOdd\}\} | \{    "to": "john.smith@somedomain.com",    "placeholders": \{ "age": 20 \}  \} | Hi Jane |
| Helper example: #ifNth |
| \{\{#ifNth age balance\}\}Hi Bob\{\{else\}\}Hi Jane\{\{/ifNth\}\} | \{    "to": "john.smith@somedomain.com",    "placeholders": \{ "age": 20, "balance": 20000 \}  \} | Hi Bob |
| Helper example: #is |
| \{\{#is name "Bob"\}\}Dear \{\{name\}\}\{\{else\}\}Hi \{\{name\}\}\{\{/is\}\} | \{    "to": "john.smith@somedomain.com",    "placeholders": \{    "name": "Bob" , "age":10   \}  \} | Dear Bob |
| Helper example: #isnt |
| \{\{#isnt name "Bob"\}\}Dear \{\{name\}\}\{\{else\}\}Hi \{\{name\}\}\{\{/isnt\}\} | \{    "to": "john.smith@somedomain.com",    "placeholders": \{    "name": "Bob" , "age":10   \}  \} | Hi Bob |
| Helper example: #neither |
| \{\{#neither great magnificent\}\}A\{\{else\}\}B\{\{/neither\}\} | \{    "to": "john.smith@somedomain.com",    "placeholders": \{ great: true, magnificent: false \}  \} | B |
| Helper example: #not |
| \{\{#not great\}\}A \{\{else\}\} B\{\{/not\}\} | \{    "to": "john.smith@somedomain.com",    "placeholders": \{ great: true, magnificent: false \}  \} | B |
| Helper example: #or |
| \{\{#or great magnificent\}\}A\{\{else\}\}B\{\{/or\}\} | \{    "to": "john.smith@somedomain.com",    "placeholders": \{ great: true, magnificent: false \}  \} | A |
| Helper example: #unlessGt |
| \{\{#unlessGt physics chemistry\}\}Hi \{\{name\}\}your score in Physics :\{\{physics\}\}\{\{else\}\}Hi \{\{name\}\}your score in Chemistry : \{\{chemistry\}\}\{\{/unlessGt\}\} | \{   "to": "john.smith@somedomain.com",    "placeholders": \{    "name": "Bob" , "physics": 70 , "chemistry": 75 \}  \} | Hi Bob your score in Physics : 70 |
| Helper example: #unlessLt |
| \{\{#unlessLt physics chemistry\}\}Hi \{\{name\}\}your score in Physics : \{\{physics\}\}\{\{else\}\}Hi \{\{name\}\}your score in Chemistry : \{\{chemistry\}\}\{\{/unlessLt\}\} | \{   "to": "john.smith@somedomain.com",    "placeholders": \{    "name": "Bob" , "physics": 70 , "chemistry": 75 \}  \} | Hi Bob your score in Chemistry : 75 |
| Helper example: #unlessGteq |
| \{\{#unlessGteq physics chemistry\}\}Hi \{\{name\}\}your score in Physics : \{\{physics\}\}\{\{else\}\}Hi \{\{name\}\}your score in Chemistry : \{\{chemistry\}\}\{\{/unlessGteq\}\} | \{   "to": "john.smith@somedomain.com",    "placeholders": \{    "name": "Bob" , "physics": 70 , "chemistry": 75 \}  \} | Hi Bob your score in Physics : 70 |
| Helper example: #unlessLteq |
| \{\{#unlessLteq physics chemistry\}\}Hi \{\{name\}\}your score in Physics : \{\{physics\}\}\{\{else\}\}Hi \{\{name\}\}your score in Chemistry : \{\{chemistry\}\}\{\{/unlessLteq\}\} | \{   "to": "john.smith@somedomain.com",    "placeholders": \{    "name": "Bob" , "physics": 70 , "chemistry": 75 \}  \} | Hi Bob your score in Chemistry : 75 |

---