1. Backup Original
Make a copy of your original template before making any changes.
This checklist walks you through converting an existing Word template to work with Certum Draft. Follow these steps systematically for best results.
1. Backup Original
Make a copy of your original template before making any changes.
2. Open the Codex
Keep the Field Reference open for standard field names.
3. Identify Practice Area
Know which matter type this template belongs to (conveyancing, wills, estates, etc.)
4. List All Blanks
Go through the template and note every place that needs data filled in.
Find all blanks in your template
Look for:
___________ (underlines)[CLIENT NAME] (bracketed text)<INSERT DATE> (angled brackets)Map each blank to a standard field
For each blank, find the matching field in the Field Codex:
| Original | Standard Field |
|---|---|
[CLIENT NAME] | {{ client.full_name }} |
_____ (address) | {{ client.street_address }} |
[DATE] | {{ today.date_long }} |
$______ | {{ transaction.sale_price | currency }} |
Replace with Certum Draft syntax
Dear [CLIENT],
Re: [PROPERTY ADDRESS]Our Ref: [MATTER NUMBER]Dear {{ client.salutation }},
Re: {{ property.re_line }}Our Ref: {{ matter.number }}Apply filters where needed
| Data Type | Filter | Example |
|---|---|---|
| Date | | date | {{ transaction.settlement_date | date }} |
| Currency | | currency | {{ transaction.sale_price | currency }} |
| Required | | required | {{ property.easements | required }} |
Find conditional sections
Look for:
Identify the condition
What determines whether this text appears?
| Scenario | Condition Field |
|---|---|
| Strata property | property.is_strata |
| Auction sale | sale.is_auction |
| Private treaty (not auction) | sale.not_auction |
| Has swimming pool | property.has_pool |
| Deceased estate | sale.is_estate |
| Living vendor | sale.not_estate |
Wrap with conditional tags
[If strata property, include the following paragraph:]
As this is a strata property, you should review the by-lawscarefully before signing the contract.
[End of conditional text]{%p if property.is_strata %}As this is a strata property, you should review the by-lawscarefully before signing the contract.{%p endif %}Use inverse fields for “if NOT” conditions
{%p if not sale.is_auction %}Private treaty sale terms...{%p endif %}{%p if sale.not_auction %}Private treaty sale terms...{%p endif %}Handle either/or sections
For mutually exclusive options:
{%p if sale.is_auction %}The property will be sold at auction. Once the hammer falls,you are bound by the contract with no cooling off period.{%p endif %}
{%p if sale.not_auction %}Once a buyer is found, we will send you the contract forreview. You will have a 5-day cooling off period.{%p endif %}Use this reference table to convert common legacy field names:
| Legacy Format | Standard Format |
|---|---|
[CLIENT], [Client Name] | {{ client.full_name }} |
[SURNAME], [Last Name] | {{ client.surname }} |
[ADDRESS] | {{ client.street_address }} |
[SUBURB], [City] | {{ client.suburb }} |
[STATE] | {{ client.state }} |
[POSTCODE], [ZIP] | {{ client.postcode }} |
[EMAIL] | {{ client.email }} |
[PHONE], [TEL] | {{ client.phone }} |
| Legacy Format | Standard Format |
|---|---|
[MATTER NO], [File Ref] | {{ matter.number }} |
[RE:], [Subject] | {{ matter.re_line }} |
[SOLICITOR], [Partner] | {{ matter.person_acting }} |
[SECRETARY] | {{ matter.person_assisting }} |
| Legacy Format | Standard Format |
|---|---|
[PROPERTY], [Property Address] | {{ property.address }} |
[LOT NO] | {{ property.lot_number }} |
[DP NO], [Plan No] | {{ property.dp_number }} |
[FOLIO], [Title Ref] | {{ property.title_reference }} |
| Legacy Format | Standard Format |
|---|---|
[PRICE], [Purchase Price] | {{ transaction.sale_price | currency }} |
[DEPOSIT] | {{ transaction.deposit_amount | currency }} |
[SETTLEMENT DATE] | {{ transaction.settlement_date | date }} |
[CONTRACT DATE] | {{ transaction.contract_date | date }} |
| Legacy Format | Standard Format |
|---|---|
[DATE], [Today] | {{ today.date_long }} |
[DD/MM/YYYY] | {{ today.date }} |
Check tag balance
Count your opening and closing tags:
{%p if %} needs exactly one {%p endif %}Verify field names
client.full_name not client.fullnamestreet_address not streetAddressTest with sample data
Create a test matter with complete data and generate the document:
Test edge cases
Generate with:
Dear _______________,Dear {{ client.salutation }},[DELETE IF NOT STRATA PROPERTY]We enclose the strata by-laws for your review.[END DELETE]{%p if property.is_strata %}We enclose the strata by-laws for your review.{%p endif %}[OPTION A - AUCTION]The property will be sold at auction.[END OPTION A]
[OPTION B - PRIVATE SALE]Once a buyer is found, we will send the contract.[END OPTION B]{%p if sale.is_auction %}The property will be sold at auction.{%p endif %}
{%p if sale.not_auction %}Once a buyer is found, we will send the contract.{%p endif %}[IF STRATA - include strata paragraph][IF POOL - include pool paragraph][IF ILLEGAL WORKS - include works paragraph]{%p if property.is_strata %}Strata compliance information...{%p endif %}
{%p if property.has_pool %}Pool certificate requirements...{%p endif %}
{%p if property.has_illegal_works %}Disclosure of unapproved works...{%p endif %}Settlement Date: _______________Purchase Price: $_______________Settlement Date: {{ transaction.settlement_date | date }}Purchase Price: {{ transaction.sale_price | currency }}Use this checklist for each template:
{{ field.name }} syntax{%p if %}...{%p endif %}Cause: Field name doesn’t match matter.json
Fix: Check spelling and format against Field Codex
Cause: Usually unbalanced {%p if %} / {%p endif %} tags
Fix: Count tags - must have equal numbers of each
Cause: Field not defined as boolean, or wrong field name
Fix:
"type": "bool" in matter.jsonCause: Missing date filter
Fix: Add | date filter: {{ date_field | date }}