Simple Fields

A simple field is a placeholder you write inside a template document. At render time AdviceDocs replaces the placeholder with the matching value from your data. You write a field by wrapping its name in two curly braces: {{ fieldname }}.

How to write simple fields

The rules below describe exactly what AdviceDocs accepts when it parses your template. Anything else will either be left as plain text or raise a syntax error.

Whitespace inside the braces

Spaces, tabs, and newlines inside the braces are ignored. All of the following resolve to the same field and are valid:

All equivalent

{{client_name}}

{{ client_name }}

{{ client_name}}

{{client_name }}

{{ client_name }}

Case-insensitivity (and how to force uppercase)

Field names are case-insensitive when matched against your data — {{ entity }} and {{ ENTITY }} resolve to the same field. The case you use in the template also controls the case of the output. Writing the placeholder in ALL CAPS produces the value in uppercase; lowercase or mixed case leaves the value untouched.

Output casing

{{ entity }} → "Acme Pty Ltd"

{{ ENTITY }} → "ACME PTY LTD"

{{ Entity }} → "Acme Pty Ltd"

Allowed characters

  • Letters a–z and A–Z.
  • Digits 0–9.
  • Underscores _ and hyphens -.
  • Dots . for nested values, e.g. {{ client.address.city }}.

Disallowed characters and patterns

  • Parentheses () and inner braces {} — these are stripped from the field name.
  • Pipe filters such as {{ name|upper }} — the filter is ignored. Use {{ NAME }} for uppercase instead.
  • Bracket array syntax {{ items[0] }} — not supported. Use a loop block to iterate over arrays.
  • Nested placeholders {{ {{ name }} }} — this is a syntax error.

Don’ts

  • Don’t forget the closing braces. {{ name } is a syntax error.
  • Don’t use a single brace. { name } renders as plain text.
  • Don’t mix template syntax with prose inside the braces. Keep anything decorative or explanatory outside the {{ }}.

How fields are flagged and normalized

When you upload a template, AdviceDocs walks every {{ ... }} reference and records each one against the template. This list is what powers the field configuration UI, the data-fill pipeline, and the validation warnings.

Lowercasing

Field names are lowercased for storage. {{ Client_Name }}, {{ client_name }}, and {{ CLIENT_NAME }} all map to a single stored field client_name. (The original casing in your template still controls output casing — see above.)

Punctuation is preserved

Hyphens, underscores, and dots are kept exactly as you wrote them. They are not collapsed into one another. The following are three different fields:

Three different fields

{{ client-name }} → field "client-name"

{{ client_name }} → field "client_name"

{{ client.name }} → nested field "name" under "client"

Field type is inferred from the name

AdviceDocs guesses the field type based on substrings in the name. You can override this in the field settings, but it is worth knowing the defaults so a name change doesn’t silently re-classify a field.

  • Image — name contains image (e.g. profile_image).
  • Graph — name contains graph (e.g. portfolio_graph).
  • Date — name contains date or dob (e.g. date_of_birth).
  • Currency — name contains value, balance, amount, price, total, or dollars (e.g. account_balance).
  • Number — name contains number (e.g. account_number).
  • Text — the default for everything else.

Loop variable typos

If a field references a loop variable that doesn’t exist (for example {{ rec_product.name }} inside a loop declared as {% for product in products %}), AdviceDocs still extracts the field but flags it with a syntax warning suggesting the correct name.

Syntax to copy

A reference of valid placeholders for common simple-field types. Drop these straight into a template document and rename them to match your data.

Text

{{ client_name }}

{{ client_first_name }}

{{ adviser_name }}

{{ entity }}

Currency

{{ account_balance }}

{{ portfolio_value }}

{{ recommended_amount }}

{{ total_dollars }}

Number

{{ account_number }}

{{ super_member_number }}

Date

{{ statement_date }}

{{ date_of_birth }}

{{ review_date }}

Image

{{ profile_image }}

{{ adviser_signature_image }}

Nested values

{{ client.name }}

{{ client.address.city }}

{{ adviser.contact.email }}

Force uppercase output

{{ ENTITY }}

{{ CLIENT_NAME }}