Skip to main content

Engagement Letter Variables — Client, Contact & Service Details

The reference for the built-in Liquid variables available in engagement letter templates: client record, primary contact, service, engagement, and letter details.

Written by Blaine Korte

When Fidu generates an engagement letter, it fills your template's Liquid variables with real data from the engagement: the client record being created, the person signing up, and the service they're engaging you for. This article is the reference for those built-in variables.

New to Liquid? Start with Getting Started with Liquid Variables in Fidu.

Note: These variables work in engagement letter templates — both Word documents and Google Docs. For answers your signup form collects, see Using Signup Form Answers in Your Engagement Letter.

Client variables

The client is the record created (or matched) when someone completes your signup form — the business or person you're engaging with.

Variable

Prints

{{ client.name }}

The client's display name

{{ client.legal_name }}

The client's legal name

{{ client.email }}

The client's email address

{{ client.phone }}

The client's phone number

{{ client.address }}

Street address, line 1

{{ client.address_2 }}

Street address, line 2

{{ client.city }}

City

{{ client.state }}
{{ client.province }}

State or province

{{ client.country }}

Country

{{ client.postal_code }}
{{ client.zip_code }}

Postal or ZIP code

A typical address block:

{{ client.name }}
{{ client.address }}
{% if client.address_2 != blank %}{{ client.address_2 }}{% endif %}
{{ client.city }}, {{ client.province }} {{ client.postal_code }}

The condition around address_2 keeps a blank line from appearing when there's no second address line. (In both Word and Google Docs, a paragraph that contains only a condition that comes up empty is removed cleanly.)

Primary contact variables

The primary contact is the person at the client — usually whoever filled out the signup form.

Variable

Prints

{{ primary_user.first_name }}

First name

{{ primary_user.last_name }}

Last name

{{ primary_user.name }}

Full name

{{ primary_user.email }}

Email address

{{ primary_user.phone }}

Phone number

Dear {{ primary_user.first_name }},

All contacts

If a client has several people attached, users holds all of them. Loop through it to list everyone:

{% for user in users %}{{ user.name }} ({{ user.email }})
{% endfor %}

Each user has the same fields as primary_user.

Service variables

The service is what the client is engaging you for — the offering this signup flow belongs to.

Variable

Prints

{{ service.external_name }}

The client-facing name of the service

{{ service.internal_name }}

Your internal name for the service

{{ service.type }}

The type of service

{{ service.price }}

The price, in dollars

{{ service.price_name }}

The name of the price/plan

{{ service.frequency }}

Billing frequency (empty for one-time flat fees)

Prices print as plain numbers — pair them with the usd filter for proper currency formatting:

Our fee for {{ service.external_name }} is {{ service.price | usd }}{% if service.frequency != blank %} per {{ service.frequency }}{% endif %}.

Engagement variables

Variable

Prints

{{ engagement.created_at }}

When the engagement was started

Signup form answers also live on engagement — a question named "Date Filed" becomes {{ engagement.date_filed }}. That's usually the most useful part of the engagement group; see Using Signup Form Answers in Your Engagement Letter.

Letter variables

Variable

Prints

{{ name }}

The name of the generated engagement letter

Testing

After editing your template, generate a test letter. It runs the real generation process with sample data (Sample Client Inc., Jordan Sample) so you can see every variable substituted and spot anything left blank.

Did this answer your question?