Skip to main content

How variables work

Template variables use double curly braces: {{ variable.path }}. When an email is sent, each variable is replaced with the actual value from the transaction. Variables are grouped by scope — each email type has access to different scopes depending on the data available at send time.

Brand variables (all emails)

Every email template has access to these brand-level variables:

Purchase variables

Available in: purchase, refund, shipped, cancelled, renewal-success, renewal-failed, pre-renewal, subscription-paused, subscription-canceled, payment-method-expiring, dunning-final.

Shipping / billing address fields

Product variables (inside @each)

Available inside @each(product in products) loops:

Subscription variables

Available in subscription-related emails (renewal-success, renewal-failed, pre-renewal, subscription-paused, subscription-canceled, payment-method-expiring, dunning-final):

Course variables

Available in course enrollment, course magic link, and course comment notification emails:

Login variables

Available in member login verification code and magic link emails:

Refund request variables

Available in the refund request received email: Uses purchase.* variables (see above) plus brand.support_email and brand.support_phone.