Data markers and variables
A data marker is a placeholder that gets replaced with a real value when your template runs. This is the most common thing you’ll write.
Using a data marker
Section titled “Using a data marker”Wrap the marker name in double curly braces:
Your reference is {{matter.reference}}.Output:
Your reference is MAT-000123.System markers vs custom markers
Section titled “System markers vs custom markers”Some marker names are reserved for the system. A marker is always a system marker when it starts with one of these reserved prefixes:
case, collections, currentuser, ledger, matter, organisation, receipt, recipient, report, settings, signature, staff, stakeholder, team
Your organisation’s custom fields can never use one of these prefixes — they’re kept aside for built-in data such as matter.name, matter.reference, or stakeholder.client.1.fullname.
Not every built-in marker uses a reserved prefix, though. Some provided fields have their own names, such as property.price. Your organisation’s custom fields also use names outside the reserved list — for example, a completion date might be keydates.completion.
Naming rules
Section titled “Naming rules”A data marker name:
- is made of one or more parts separated by dots — e.g.
matter.address.postcode; - uses only lowercase letters, numbers, and underscores (
_); - must have a first part that starts with a letter or underscore — not a number;
- may have later parts that start with a number — e.g.
title.1.volume; - must not end with a dot or contain an empty part.
| Valid | Not valid | Why |
|---|---|---|
m | (blank) | A marker can’t be empty. |
matter.name | 1 | A marker can’t be just a number. |
stakeholder._client.1.forename | 1st | The first part can’t start with a number. |
title.1.volume | matter. | A marker can’t end with a dot. |
Referring to people (stakeholders)
Section titled “Referring to people (stakeholders)”Contact details are exposed as stakeholder markers. You can reach a stakeholder by name, by position (using an underscore prefix), or as a whole list.
| Marker | Example value |
|---|---|
stakeholder.client.1.forename | John |
stakeholder.client.1.surname | Smith |
stakeholder.client.1.fullname | John James Smith |
stakeholder.client.1.email | john.smith@example.com |
stakeholder._client.1.fullname | John James Smith (by position) |
stakeholder.client.list | John Smith and Mary Smith |
stakeholder.client.count | 2 |
Variables
Section titled “Variables”Variables are values you create inside a template (see Maths and Composition). They always start with a dollar sign $ and follow the same naming rules as data markers:
{{#var $total = property.price / 10}}Deposit: {{$total}}Built-in values
Section titled “Built-in values”| Name | What it gives you |
|---|---|
$now | The current date and time. Usually formatted with #datetime, e.g. {{#datetime $now 'd mmmm yyyy'}}. |
$parent.<marker> | Inside a #foreach loop, reaches data from outside the loop. See Loops. |
Built-in rate markers
Section titled “Built-in rate markers”Two settings markers hold current tax rates and are always available — handy in calculations (see Maths):
| Marker | What it gives you |
|---|---|
settings.ukvatrate | Current UK VAT rate (e.g. 20) |
settings.ausgstrate | Current Australian GST rate (e.g. 10) |
{{#var $vat = property.price / 100 * settings.ukvatrate}}VAT: {{$vat}}When data is missing
Section titled “When data is missing”- If you use a marker that isn’t recognised, it’s flagged with a message such as
matter.foo is not definedso you can spot the mistake. The marker outputs nothing, and the template can still be saved — but it’s worth fixing so your content doesn’t end up with unexpected blanks. - If a marker is recognised but has no value, it simply outputs nothing (a blank).