Skip to content

Communication templates

Cadence communication templates use Liquid syntax. You can mix rich email formatting (headings, lists, links) with dynamic values such as member names, enrolment details, and payment amounts.

For a complete list of variables available to each system message, see the template variable reference.

Use double curly braces to output a value:

Hello {{ guardian.display_name }}

Nested properties use dot notation:

{{ enrolment.activity.name }} · {{ enrolment.activity.schedule_summary }}

Repeat a block for each item in a list variable:

{% for payment in payments %}
- {{ payment.amount | cadence_money }}
{% endfor %}

Inside a loop, forloop.index is the 1-based position and forloop.last is true on the final item.

List variables are documented on each action key reference page (for example payments on payment received).

{% if payments.size > 1 %}
Your payments have been received, thank you!
{% else %}
Thank you for your payment.
{% endif %}

Use unless for the inverse, and case / when when matching several discrete values.

Cadence registers filters for common formatting tasks:

Filter Example Result
cadence_date {{ enrolment.start_datetime | cadence_date }} Short Australian date
cadence_date: "long" {{ enrolment.start_datetime | cadence_date: "long" }} Weekday, date, and time
cadence_money {{ payment.amount | cadence_money }} Currency display (default AUD)

Filters are applied with a pipe after the value: {{ value | filter_name }}.

For simple tabular email layouts, use tablerow:

<table>
{% tablerow enrolment in upcoming_enrolments cols:2 %}
{{ enrolment.activity.name }}
{% endtablerow %}
</table>