API Docs / Schemas / TemplateVariables

TemplateVariables

Root object containing all variables available for document template rendering.
This class serves as the data model for Liquid/Fluid template rendering,
providing access to client, practice, proposal, and document-level data.

Properties

Name Type Description
titlestring

Document-level title (e.g., "Engagement Letter", "Annual Proposal").
Used in cover pages and headers.

Document-level title (e.g., "Engagement Letter", "Annual Proposal").
Used in cover pages and headers.

subtitlestring

Document-level subtitle providing additional context.
Typically appears below the main title.

Document-level subtitle providing additional context.
Typically appears below the main title.

secondarySubtitlestring

Optional secondary subtitle for additional document identification.

Optional secondary subtitle for additional document identification.

postalAddressstring
addresseestring
datestring

Formatted date string (e.g., "27th June 2025").
Used for displaying the current date in documents and emails.

Formatted date string (e.g., "27th June 2025").
Used for displaying the current date in documents and emails.

logostring

URL or base64-encoded image data for the practice logo.
Can be used with filters like: {{ Logo | width: 200 }}

URL or base64-encoded image data for the practice logo.
Can be used with filters like: {{ Logo | width: 200 }}

clientClientDto
primaryContactContactDto
billingContactContactDto
payrollContactContactDto
accountsContactContactDto
partnerTenantUserDto
managerTenantUserDto
practicePracticeDetailsDto
engagementEngagementDto
proposalEngagementDto
hasProposalboolean

Indicates whether the engagement includes a proposal.
Returns true if Engagement.Type is ProposalAndEngagementLetter.
Usage in templates: {% if HasProposal %}...{% endif %}

Indicates whether the engagement includes a proposal.
Returns true if Engagement.Type is ProposalAndEngagementLetter.
Usage in templates: {% if HasProposal %}...{% endif %}

keyDatesobject

Client key dates keyed by the ClientDateType enum name (e.g., YearEnd, AccountsNextDue).
Values are typed DateOnly objects so Fluid renders them as dd-MM-yyyy by default
and the formatDate filter works natively (e.g., {{ KeyDates.YearEnd | formatDate: "MMMM yyyy" }}).
Null/missing dates are stored as empty string.

Client key dates keyed by the ClientDateType enum name (e.g., YearEnd, AccountsNextDue).
Values are typed DateOnly objects so Fluid renders them as dd-MM-yyyy by default
and the formatDate filter works natively (e.g., {{ KeyDates.YearEnd | formatDate: "MMMM yyyy" }}).
Null/missing dates are stored as empty string.

customFieldsobject

Client custom field values keyed by the custom field definition code.
Only includes supported types: Text, Number, Date, Boolean.
Values are stored as typed objects (string, decimal, DateTime, "Yes"/"No")
so Fluid filters like formatDate and formatCurrency work natively.
Usage in templates: {{ CustomFields.cf-vat-number }}, {{ CustomFields.cf-start-date | formatDate: "MMMM yyyy" }}

Client custom field values keyed by the custom field definition code.
Only includes supported types: Text, Number, Date, Boolean.
Values are stored as typed objects (string, decimal, DateTime, "Yes"/"No")
so Fluid filters like formatDate and formatCurrency work natively.
Usage in templates: {{ CustomFields.cf-vat-number }}, {{ CustomFields.cf-start-date | formatDate: "MMMM yyyy" }}

htmlBlocksobject

Dictionary of custom HTML blocks that can be injected into templates.
This is used for dynamic content that is provided by the client at render time,
such as rendered cost tables, custom sections, or other HTML fragments.
Usage in templates: {{ HtmlBlocks.ProposalCosts }}, {{ HtmlBlocks.CustomSection }}

Dictionary of custom HTML blocks that can be injected into templates.
This is used for dynamic content that is provided by the client at render time,
such as rendered cost tables, custom sections, or other HTML fragments.
Usage in templates: {{ HtmlBlocks.ProposalCosts }}, {{ HtmlBlocks.CustomSection }}

schedulesContentBlockCollection
urlstring

Generic URL for use in templates (e.g., authorization links, callback URLs, external resources).
Usage in templates: {{ Url }}

Generic URL for use in templates (e.g., authorization links, callback URLs, external resources).
Usage in templates: {{ Url }}

buttonTextstring

Button text for use in templates (e.g., confirmation button text).
Usage in templates: {{ ButtonText }}

Button text for use in templates (e.g., confirmation button text).
Usage in templates: {{ ButtonText }}

contactContactDto
summarystring

Summary or description text (e.g., document summary).
Usage in templates: {{ Summary }}

Summary or description text (e.g., document summary).
Usage in templates: {{ Summary }}

pageNumberstring

Current page number for PDF rendering.
Set automatically when rendering PDF footers - converts to Puppeteer span element.
Usage in templates: {{ PageNumber }}

Current page number for PDF rendering.
Set automatically when rendering PDF footers - converts to Puppeteer span element.
Usage in templates: {{ PageNumber }}

totalPagesstring

Total page count for PDF rendering.
Set automatically when rendering PDF footers - converts to Puppeteer span element.
Usage in templates: {{ TotalPages }}

Total page count for PDF rendering.
Set automatically when rendering PDF footers - converts to Puppeteer span element.
Usage in templates: {{ TotalPages }}

JSON Example

{
  "title": "string",
  "subtitle": "string",
  "secondarySubtitle": "string",
  "postalAddress": "string",
  "addressee": "string"
}

Used By Operations

Contained in Schemas