# Dynamic variables in templates

All template fields (except for Settings) can contain dynamic variables, which are added by inserting the variable name, surrounded by double (or triple) curly brackets. For example: {{ name }} or {{ email }}. The dynamic variables are replaced with the values passed through the parameters object of the SDK or API call. If the value of a certain variable is not passed, it will be replaced with an empty string.

Variables added with double brackets are escaped by default, so if you pass "<b>bold</b>" as "message" variable, {{ message }} will be replaced with "&lt;b&gt;bold&lt;/b&gt;". If you want the variable to be injected without escaping (if HTML code is passed, for instance) use 3 brackets syntax, like this {{{ my_html }}}. However, keep in mind that these variables are unsafe and can be abused.

You can also use one of our built-in variables: user_os, user_ip, user_platform, user_browser, user_version, and user_referrer.
Have a suggestion for additional built-in variables? Let us know!

The IP address (user_ip) is personal data and is protected by the GDPR compliance requirement. Therefore, the IP addresses are cached by the md5 algorithm.

# Restrictions

Please note that the total size of the dynamic variables cannot exceed 50kb except for attachments variables whose total size is limited by the subscription plan.

Requests that exceed this threshold won't be processed. Feel free to pop up your questions.