LOGO
Log In

Field & section mappings

Map placeholders to file-matter data, loop over parties, and show or hide content with conditionals.

Field mappings

A field mapping is a direct 1-to-1 substitution: the placeholder is replaced with the corresponding value from the file matter.

  • <guarantorName> mapped to Guarantors → Full Name becomes John Smith in the output.
  • A placeholder with no mapping renders as blank. It does not produce an error; it simply disappears from the output.
  • A placeholder that appears multiple times only needs to be mapped once. When inside a loop (see below), its value changes per iteration.

Section mappings

A section mapping is a special placeholder that does not produce a value. It controls how or whether the content within it is printed. There are two types: loops and conditionals.

Sections use opening and closing tag pairs:

  • Opening tag starts with #: <#guarantors>
  • Closing tag starts with /: </guarantors>
  • Both tags must use the exact same keyword. Mismatched keywords cause an upload error.

Section mappings are configured on the section's own row in the mapping list, at the head of the group holding its fields:

Mapping list showing three unmapped section pairs highlighted in yellow

Click Select loop/conditional… on each row and pick the appropriate data source:

Select Field picker for sections showing Each Guarantor, Is Company (per item), and Is Individual (per item) options

Once all sections are mapped, the progress bar would reach 7/7.

Section rows fully configured: guarantors mapped to Each Guarantor, IfGuarantorCorporations to Is Company, IfGuarantorIndividual to Is Individual

Loop sections

Everything between <#guarantors> and </guarantors> repeats once per item in the mapped list. If there are 3 guarantors, the entire block prints 3 times.

  • Field placeholders inside a loop resolve to the value for that iteration. For example, <guarantorName> is John Smith on pass 1, ABC Company on pass 2.
  • Field placeholders outside a loop always resolve to the same single value.
  • If the loop list is empty, the entire block is omitted from the output.

Section context on mapping rows

Each field mapping row shows small tags for every section the placeholder is nested inside. This lets you see at a glance whether a placeholder is inside a loop, a conditional, or both.

Field Mappings panel showing borrowerName row with section tags: borrowers, IfBorrowerIndividual, IfBorrowerCorporation highlighted
  • A tag matching a loop name (e.g. borrowers) means the placeholder repeats once per item in that list.
  • A tag matching a conditional name (e.g. IfBorrowerIndividual) means the placeholder only prints when that condition is true.
  • A placeholder nested inside multiple sections shows a tag for each one.

What the picker lists

The picker lists only the categories a file of the template’s file types collects — a Lending template is not offered Commissions or Land Value. If a field you need is hidden, switch on Show all fields at the top of the picker. Anything already mapped stays under Current: whether or not its category is shown. A template with no file type set is offered everything.

Per-loop-item fields

In the Select Field picker, fields that carry a path with [i] in the subtext (e.g. buyers[i].fullName) are per-loop-item fields. They resolve to a different value on each loop iteration.

Select Field picker showing Buyers category with fields buyers[i].fullName, buyers[i].givenName, buyers[i].lastName and others
  • These fields only make sense inside a loop section. Outside a loop there is no iteration context to resolve against.
  • If you map a per-loop-item field to a placeholder that is not inside any loop, the mapping editor shows a warning to flag the mismatch.
  • A regular (non- [i]) field can also be used inside a loop. It will resolve to the same single value on every iteration.

Listing only some of a list

A loop row and a joined-list row both ask Which of themwhen you expand them. Every one of them is the default and prints the whole list. Only some of them opens a rule over the list’s own fields and yes/no checks, and the row then prints only the items the rule keeps.

  • A discharge table over #Each Charge Removed filtered to Nature of Charge is MORTGAGE prints a row for each mortgage on title and leaves the assignments of rents out. The collapsed row says so: “Repeats once for every charge removed where Nature of Charge is MORTGAGE.”
  • A filter belongs to the row, not to the list, so a template can hold two loops over the same list filtered different ways — one table for the mortgages, another for everything else.
  • A joined list filters the same way: a joined balance over Charges Removed filtered to mortgages adds up only the mortgages.
  • A filter with a field chosen but no comparison yet is not a filter: the row says “filter not finished” and the list prints whole, rather than refusing to save.
  • On the Test tab a filtered loop reads 2 of 3 items so you can see what it left out. A filter that matches nothing reads 0 of 3 items and the row goes blank.

Conditional sections

Content inside a conditional section only prints when the mapped condition evaluates to true.

  • <#IfGuarantorIndividual> → the block renders only when the current guarantor is an individual.
  • <#IfGuarantorCorporations> → the block renders only for corporations.
  • Conditionals can be nested inside loops: the outer loop iterates every guarantor, and the inner conditional picks the right block for each one.
Naming tip: The “If” prefix is not required — you can name a conditional anything. For example, <#ShowDisclaimer> works just as well. Using “If” is recommended because it makes the intent clear at a glance. Whatever you choose, the name is only a label: every conditional gets its meaning from the mapping you give it on the template’s Mappings tab.
Showing the other case: To print one passage when a conditional is shown and a different passage when it is hidden, write a second conditional — call it whatever you like — and on the Mappings tab set Decide by to the opposite of another section, then choose the first one. The pair can then never both print, or both be left out, however the first one is answered. One exception to the name being only a label: a conditional called “If Not X” that has no mapping of its own is treated as the opposite of “If X”, so templates written that way keep working. Giving it a mapping of its own always takes precedence.

The colour-coded diagram below shows how a Client Identification Form template is structured, with the red outer loop, blue inner conditionals, and green field placeholders:

Word document showing the template with colour-coded annotations: red for the outer guarantors loop, blue for individual/corporation conditionals, green for field placeholders

Placement matters

Where you place a field placeholder relative to a conditional determines whether it always prints or only prints conditionally.

  • A placeholder outside a conditional prints for every loop iteration, regardless of the condition. In the guarantor example, <guarantorName> outside <#IfGuarantorCorporations> means every guarantor's name prints in that section, including individuals.
  • A placeholder inside a conditional only prints when the condition is true.

What the output looks like

With 3 guarantors (John Smith as individual, ABC Company as corporation, and Jane Doe as individual), the generated document shows:

Generated Client Identification Form: Individuals section lists all three guarantors, Corporations section shows only ABC Company
  • In the Individuals section, all three names print, including ABC Company. Because <guarantorName> sits outside <#IfGuarantorIndividual>, it resolves for every loop iteration regardless of client type. Only the ID table below it is inside the conditional, so ABC Company gets its name printed but no individual table.
  • In the Corporations section, <guarantorName> sits inside <#IfGuarantorCorporations>, so only ABC Company prints there, with its corporation table.

Looping inside tables

Loop sections work inside Word tables, but the opening and closing tags must be placed in the same table row. The system treats that row as a template row and duplicates it once per loop item.

Here is an Account Statement template with two loop rows: one for taxable disbursements, one for non-taxable:

Account_TL template showing the full document layout with loop placeholders for disbursements

Enable Table Layout → View Gridlines in Word to see row boundaries clearly while authoring (gridlines don't print):

Word ribbon with Table Layout tab open and View Gridlines button highlighted

With gridlines visible you can clearly see the loop tags are in the same row, opening at the start and closing at the end:

Account_TL template with gridlines enabled, showing EachTaxDis and EachNonTaxDis loop pairs each contained within a single table row
  • Splitting a loop pair across two rows causes an upload error.
  • If the loop is empty (no disbursements), the template row does not appear in the output at all.

Configuring table loop mappings

Map the section pairs on their own rows in the mapping list, one row per loop:

Section rows showing EachTaxDis mapped to Each Taxable Disbursement and EachNonTaxDis mapped to Each Non-Taxable Disbursement

Field placeholders inside the loop (description, amount) are mapped on the Field Mappings tab as normal:

Field Mappings tab showing Disbursement Description and Disbursement Amount mapped, both tagged as belonging to EachTaxDis and EachNonTaxDis

Testing table loops

To test properly, add disbursements to the file matter first. Go to Accounts → Disbursement/Other Charges → Add New:

File matter Accounts tab with Disbursement/Other Charges sub-tab open and three disbursements listed

Then generate from the Documents tab:

Documents tab showing the Account_TL - shortened template with Generate button highlighted

The output repeats the loop row once per disbursement, sorted into the correct taxable / non-taxable section:

Generated Account Statement showing Courier Fee and Photocopies under Disbursements Subject to GST, and Title Search under Disbursements Not Subject to GST

Signature blocks

A signature block is a placeholder like any other: name it whatever makes sense to you, put it on a line of its own, then map it.

{Client Signatures}

It has to have that line to itself — the app replaces it with a whole table of signature lines, one cell per signer, so it cannot share a line with other text. You do not build that layout in Word. The only setting is whether signatures sit one or two to a line; two is the default, and one suits a page where each signer needs the full width. Three would leave under two inches for a name, a signature and Authorized Signatory beneath it, so it is not offered.

Who signs

In the mapping row, open the field picker and pick one of the signature options. That single choice says both that the placeholder is a signature block and who signs it; there is no second question.

Signatures of Clients is the one to reach for: it works out who your client is from the file type, so you do not have to pick a party list per template.

  • Purchase → the buyers
  • Sale → the sellers
  • Order to Pay → the signing parties
  • Mortgage, Lending, Payout → the borrowers

The rest — Signatures of Buyers, Sellers, Borrowers, Guarantors and Lenders — name one party outright. That is the right choice for a document the other side signs, for a guarantee, or for one the lender executes itself, such as a commitment letter.

A named party only exists on some file types: there are no buyers on a Sale file. Pick one this template's file types never fill and the row says so, because the block would print nothing on every file it could be used with. It warns rather than refuses — a template covering several file types can reasonably sign on one side only, and print nothing on the rest.

Guarantors are never included in Clients, on any file type. A document a guarantor has to sign needs its own block mapped to Signatures of Guarantors.

Because the name is yours to choose, one template can carry more than one block over the same signers — an execution page two to a line and an acknowledgment one to a line, each with its own placeholder.

Layout is set in the Signatures tab, which lists every block in the template; the mapping row links straight to it.

How each signer prints

  • An individual gets a signature line with their name beneath it.
  • A company gets its name, then a Per: line, then Authorized Signatory.

Which one a signer gets follows from their client type on the party tab. The preview before generating draws each signer's cell in the form it will print in, so you can check it without opening the document.

One line per person who signs

A company can have more than one person sign for it. Record them under Signatories on the party, with a position each, and the block prints one signature line per name instead of one for the company. A company with none recorded prints a single line exactly as before, so nothing changes on a file until you fill them in.

How the signers are arranged

Signatures per line sets how many sit side by side — one to four, on the template's Signatures tab, or firm-wide in Template settings.

Individuals and companies never share a line, whatever that number is. A company is the taller of the two — its name sits above a Per: line for each signatory — so beside an individual the two would not line up. Where the file has both, the individuals fill their lines and the companies start fresh below. Signing order is kept, so a company recorded between two individuals still prints between them.

Signature styles

How a signature prints is a style. There are two libraries of them — one for individuals, one for companies — because the two forms vary independently, and a firm wanting two of each would otherwise need four. Both live in Template settings → Signatures, where one style in each library is the firm default.

A template can choose its own instead, on its Signatures tab. Most documents want the anonymous Authorized Signatory line; some want the signatories named, and some want a surname alone. All can be wanted on the same file from the same parties, which is why the choice belongs to the document rather than to the party. A template that chooses nothing follows the firm default, and picking the Firm default option puts it back.

A style holds the cell as it prints, with a live preview beside it:

  • {line} draws a signature rule, {company} is the company, and {name} is a person.
  • In a company style, everything between {#signatories} and {/signatories} repeats once per signatory, with {name} and {position} naming the signatory inside it. Outside the loop there is no one signatory to mean, so {name} is empty there and the line it sat on is dropped.
  • In an individual style, {firstName} and {lastName} print the name in parts — a surname-only signing line is just {lastName}.
  • Add :upper to any of them to capitalise it, as in {lastName:upper}.
  • Wrap text in ** for bold, and indent with spaces. Where the name sits is up to you — above the signature lines, or below them.

A signatory with no position prints their name alone, with no trailing comma. Saving is refused if a style has no {line} in it, since that would produce a signing page with nothing to sign on. The style the app ships cannot be edited or deleted, so there is always something to fall back to.

Columns inside a style

Some execution pages put more than one thing on the signer's row: a witness column on the left, a column of brackets, then the signature itself. A style draws that by writing ||| alone on a line, which starts a new column. ||| 3 gives the column it starts 3 twelfths of the block's width, and columns without a number share what is left. A style holds at most four columns, and a signer whose style has columns takes a full row of the block to itself.

Where the {#signatories} loop sits decides what repeats:

  • Inside one column: that column's lines repeat per signatory. One witnessed row per company, the signatories stacked in their own column beside one shared witness.
  • Wrapping the whole style (the markers as its first and last lines): the entire row repeats per signatory, so each one gets a witness of their own. Writing {signatory.name} or {signatory.position} with no markers at all means the same thing: the whole row repeats.

In a block composed of several page columns (the divided form on a Signature box row), a style's own columns flatten: its parts print one under the other, since each side of the page has only one column to give.