Skip to main content
Variables let you insert dynamic content into your documents. They are replaced with actual values at render time.

Inline variables

Reference variables inline with double curly braces:
Variable names must start with a letter and can contain letters, numbers, and underscores. Dot notation (customer.name) is supported for nested values.

Block-level variables

Place a variable reference on its own line to render it as a standalone block:
Block-level variables can contain images, text blocks, or other complex content defined in your document’s variable configuration.

Variable types

Variables support multiple types. The type is determined by the value you provide:
  • Text — A simple string value (e.g., "companyName": "Acme Inc")
  • Number — A numeric value (e.g., "total": { "type": "number", "value": 1250.00 })
  • Image — An image with optional dimensions and alignment
  • List — An ordered or unordered list
  • Table — A 2D data table with optional column headers
Number variables are rendered as text when used inline ({{total}} becomes "1250"). They are especially useful in chart dataset data arrays, where they are automatically resolved to numeric values.
For full details on defining each variable type, see the JSON Syntax — Variables reference.

Built-in variables (headers & footers)

These variables are automatically available in document headers and footers:

Date variable formatting

The {{date}} variable supports custom formatting, date manipulation, and timezone offsets.

Syntax

Format tokens

Format presets

Instead of building a format string, use a preset name:

Date offset (manipulation)

Shift the date forward or backward:

Timezone offset

Specify a UTC offset in +HH:mm or -HH:mm format:
When using a timezone offset without a date offset, leave the offset slot empty with double slashes: {{date/FORMAT//TIMEZONE}}.

Examples