LOGO
Log In

Value source types

Every field mapping has a source type that controls where the placeholder's value comes from. Pick the type from the dropdown inside each mapping row.

Field

Replaces the placeholder with a single file-matter field value. A transform (currency, date, phone, etc.) can be applied on top. Use for straightforward 1-to-1 substitutions: a name, a date, an amount.

Multiple fields

Select Field, then click + Multi to add more fields. Each field is concatenated with a separator of your choice (space, comma, dash, newline, or pipe). Fields can come from different data objects — see the Data reference page. For example, <summary> combining a property field and a general field:

Multiple fields mapping row combining Property Civic Address (dash separator) and Purchase Price (Currency CAD transform)
123 Main Street - $850,000.00

Joined list

Formats every item in an array (Buyers, Guarantors, Disbursements, etc.) and joins the results into a single placeholder value. Two inputs control the output:

  • Item fields: the sub-fields to combine for each item, with their own separators between fields. For example: Full Name + dash + Client Type + space + Email.
  • Item separator: what goes between complete item blocks. For example a semicolon, a comma, or a new line.
Joined list mapping row with Buyers array selected, item fields Full Name (dash), Client Type (space), and Email configured, with New line as the item separator

Output:

John Smith - Individual john@email.com
ABC Company - Company info@abc.com
Jane Doe - Individual jane@email.com

Use Joined list when you need a formatted summary of all items in a list inside a single placeholder, without a repeating loop section.

Default value

A hardcoded string that is the same every time the document is generated. Use it for boilerplate that has no corresponding data field: a standard label, a fixed clause, or a phrase that rarely changes.

Manual input

No value stored in the mapping. A text input appears at generation time and the user types the value on the spot. It is not saved after. Use it for one-off details that change every generation: a case-specific note, a custom instruction.

Mapping row set to Manual Input source type showing the italic placeholder description

When testing or generating, the input prompt appears inline:

Test tab showing a manual input text field for the title placeholder with the typed value resolved in the results table

Expression

An evaluated formula. Use when the output depends on logic that can't be expressed as a single field or concatenation.

No loop support: expressions cannot iterate over a list. To repeat content for each item in an array, use a loop section. To collapse a list into a single string value, use Joined list.

Syntax reference

PatternExampleWhat it does
ConcatenationfirstName + " " + lastNameJoins multiple values into one string.
If / elseisCompany ? "Corporation" : "Individual"Returns the first value if the condition is true, otherwise the second.
If / else iftype == "A" ? "Option A" : type == "B" ? "Option B" : "Other"Chains multiple conditions, returning the first match.
Pipe transformcompletionDate|dateLongApplies a named transform to format the value.
Fallbackemail ? email : "N/A"Uses the field value if it exists, otherwise falls back to a default.
Array indexbuyers[0].givenName + " " + buyers[0].lastNameReads a field from a specific item in a list by position (0 = first).
Comparisonamount > 0 ? amount|currency : "None"Compares a value and returns different output based on the result.
Optional indexbuyers[3] ? buyers[3].givenName : ""Checks whether a list item at a given position exists before using it.
Negation!general.isPurchaseFileInverts a boolean field. Useful for conditionals that should fire when a condition is false.

Supported operators: == != > < >= <= && || !

Available transforms

Transforms are applied using the pipe character: value|transformName.

NameInputOutputExample
currencyNumberCAD formatted amountfeeAmount|currency → "$1,234.56"
dateDateYYYY-MM-DDcompletionDate|date → "2026-06-01"
dateLongDateMonth DD, YYYYcompletionDate|dateLong → "June 1, 2026"
booleanBooleanYes / NoisCompany|boolean → "Yes"
lowercaseStringAll lowercaseclientType|lowercase → "individual"
uppercaseStringAll uppercaseclientType|uppercase → "INDIVIDUAL"
phoneStringPhone numberphoneNumber|phone

The same transforms are available in Field and Multiple fields source types via the transform dropdown. For a full list of objects, arrays, and field names you can reference in expressions, see the Data reference page.