Free tool

Merge tag tester

Paste a template with {{tags}} and the JSON you send with it. See the subject and body exactly as Senlo renders them, and which tags would reach the recipient unfilled.

How to read the result

data is what you send in POST /api/triggered. Each field is available as {{field}}, as {{contact.field}} and as {{custom.field}}; {{contact.email}} is the to address. Dots walk into objects: {{order.total}}.

Problem means the recipient would see the tag itself: the value is missing, it is an object or a list, or the tag uses syntax Senlo does not have. Needs attention is an empty value or another tool's syntax. Fields of data that no tag uses are listed too: often a typo on one side.

In the body, values are HTML-escaped, so <b> in data shows as text, not bold. In the subject they go in as plain text. The full rules are in the merge tag docs.

Questions

Which merge tag syntax does this test?
Senlo's: a path in double braces, like {{name}} or {{order.total}}, with no filters, helpers or default values. It looks like Handlebars or Liquid but does less on purpose; conditions and loops live in the editor as rows, not in the text. Tags written for Mailchimp (*|FNAME|*) or with filters ({{ name | default }}) are pointed out.
What happens to a tag with no value?
It stays in the email as written, braces included, so a missing field is visible instead of silently leaving “Hi ,”. That is why this tool marks missing tags as a problem: a real send would show them to the recipient.
Is the result the same as a real send?
Yes for the substitution: it runs Senlo's own code with the data shaped the way a triggered send shapes it, including HTML escaping in the body and the check that removes javascript: links. The unsubscribe link and the workspace name are samples here.
Is my template or data sent anywhere?
No. Everything runs in your browser and nothing goes into the page address.
Merge tag tester: render an email template with JSON data