The following is a reference to assist you when creating print templates. The syntax required for inserting field variables, formulas, conditions, and other elements are listed below. 

Field Variables

Field variables can be inserted into print templates so that the field's value is displayed in the document when the print template runs.

The general form for field variables is $FieldLabel.  For example, in the People table the variable for the Login field is $login.

You can construct chains of field variables to find values in other tables linked to the current record. These are in the form $Field1.Field2 where Field2 references a field in another table linked through Field1. Field variable chains must be constructed manually by locating the appropriate field names in each table.




$formula($login)Insert the Login value.
$formula($account_rep.backup_person)Insert the name of the Account Rep's backup person.
$formula($related123123123)Insert a related table from the current record.

Note that if you are putting dollar signs ($) into a print template to format values in a number field, you can enter a backslash (\) to ensure that the dollar sign does not get eliminated by the system while it is processing the variables and formulas in the print template. For example, \$25,000 will appear as $25,000. You can configure the system so that it does not eliminate the backslash by changing the value of the Keep slash prior escaped dollar sign global variable to Yes. 

View or Download Field Variables

A list of field variables for the current table can be displayed when creating or editing a print template.

Print Template Wizard

Formulas and Conditions

Formulas and conditions are used in print templates to calculate totals, insert different fields based on the values, and insert or delete text when a condition is met. A longer list of available formulas can be found in the Formula Help window, available from the Mass Edit Wizard and other system locations.

The following formulas and examples represent the most common uses and will help you create complex print templates. 

Basic Formulas

Standard mathematical operations can be used with numeric data types such as integer, floating point, and calculated result fields.




$formula($contract_amount*$discount_percentage)Multiply the Contract Amount by the Discount Percentage
$formula($total_cost - $refund_amount)Subtract the Refund Amount from the Total Cost

Concatenate Strings




Look through the Sample Output column for the format you want to use, then use the corresponding Formula entry to use this format in your print templates. These examples use $contract_start_date with a value of February 10, 2016, so if you're referring to a different Date field, replace $contract_start_date with the logical name of the new field.

Sample OutputFormula

$formula(dateformat("M",$contract_start_date)) $formula(dateformat("d",$contract_start_date)) $formula(dateformat("yy",$contract_start_date))


$formula(dateformat("M",$contract_start_date)) $formula(dateformat("d",$contract_start_date)) $formula(dateformat("yyyy",$contract_start_date))


$formula(dateformat("d",$contract_start_date)) $formula(dateformat("M",$contract_start_date)) $formula(dateformat("yy",$contract_start_date))


$formula(dateformat("d",$contract_start_date)) $formula(dateformat("M",$contract_start_date)) $formula(dateformat("yyyy",$contract_start_date))

February 10, 2016

$formula(dateformat("MMMM",$contract_start_date)+" "+dateformat("d",$contract_start_date)+", "+dateformat("yyyy",$contract_start_date))

February 10th, 2016

$formula(dateformat("MMMM",$contract_start_date)+" "+dateformat("d",$contract_start_date)+((dateformat("dd",$contract_start_date))=="11"||(dateformat("dd",$contract_start_date))=="12"||(dateformat("dd",$contract_start_date))=="13"?"th":(((replace(dateformat("dd",$contract_start_date),".*(.)","$1"))=="1"?"st":((replace(dateformat("dd",$contract_start_date),".*(.)","$1"))=="2"?"nd":((replace(dateformat("dd",$contract_start_date),".*(.)","$1"))=="3"?"rd":"th")))))+", "+dateformat("yyyy",$contract_start_date))

February 10th, 2016 (alternate formula)

$formula(dateformat("MMMM",$contract_start_date)+" "+(dateformat("d",$contract_start_date))+((dateformat("dd",$contract_start_date))=="01"||(dateformat("dd",$contract_start_date))=="21"||(dateformat("dd",$contract_start_date))=="31" ?"st":((dateformat("dd",$contract_start_date))=="02"||(dateformat("dd",$contract_start_date))=="22"?"nd":((dateformat("dd",$contract_start_date))=="03"||(dateformat("dd",$contract_start_date))=="23" ? "rd" : "th")))+", "+dateformat("yyyy",$contract_start_date))

February 10th, 2016

$formula(dateformat("MMMM",$contract_start_date)) $formula(dateformat("d",$contract_start_date))$formula(((dateformat("dd",$contract_start_date))=="11"||(dateformat("dd",$contract_start_date))=="12"||(dateformat("dd",$contract_start_date))=="13"?"th":(((replace(dateformat("dd",$contract_start_date),".*(.)","$1"))=="1"?"st":((replace(dateformat("dd",$contract_start_date),".*(.)","$1"))=="2"?"nd":((replace(dateformat("dd",$contract_start_date),".*(.)","$1"))=="3"?"rd":"th")))))), $formula(dateformat("yyyy",$contract_start_date))

10th day of February, 2016

$formula(dateformat("d",$contract_start_date)+((dateformat("dd",$contract_start_date))=="11"||(dateformat("dd",$contract_start_date))=="12"||(dateformat("dd",$contract_start_date))=="13"?"th":(((replace(dateformat("dd",$contract_start_date),".*(.)","$1"))=="1"?"st":((replace(dateformat("dd",$contract_start_date),".*(.)","$1"))=="2"?"nd":((replace(dateformat("dd",$contract_start_date),".*(.)","$1"))=="3"?"rd":"th")))))+" day of "+dateformat("MMMM",$contract_start_date)), $formula(dateformat("yyyy",$contract_start_date))

Format Formula Outputs


Conditional Text, Paragraphs, or Clauses

A common requirement is whether to show words, multiple lines, or paragraphs of text based on the values in a record or a condition based on those values. Conditions can use a full range of logical operators such as == (equivalency), != (not equal), >, <, >=, <=.

Ternary Operator


Additional Examples

FormulaExplanation / Output
$formula($authorized_contract=="Yes" ? "'Authorized contractor' means a third party contracted to develop or assist with the development of an Authorized Application." : "")Inserts the sentence "'Authorized contractor' means a third party contracted to develop or assist with the development of an Authorized Application." if the Authorized Contract field value is Yes; otherwise, a blank space is inserted.
$formula( (isEmpty($company_id.fax)) ? "" : "Fax: " + $company_id.fax)If the company's linked Fax field is empty, insert nothing. If the Fax field is not empty, insert "Fax: 555-111-2134."
$formula($country=="USA"&&$city=="Redwood" ? "The company is located in Redwood, USA" : "")

Inserts the sentence "The company is located in Redwood, USA" if the Country is USA and the City is Redwood; otherwise, a blank space is inserted.

If-Then-Else Conditions to Display Field Variables

The $if statement evaluates a condition to decide which field variable to display. It is similar to the ternary operator, but the true and false outputs may only be field variables or the $merge command with an attached file field.


$if(condition) ? $fieldTrue : $fieldFalse

The second (else) field variable may be left out to display blank if the condition is not met.

$if(condition) ? $fieldTrue

Or, the $merge($filefield) command may be used as an output:

$if(condition) ? $merge($filefield) : $fieldFalse


$if ($discount_applied == "Yes") ? $percentage_discountIf a discount is applied, show the Percentage Discount field.
$if ($contract_amount > 100000) ? $related123456 : $customer.related345678If the contract amount is greater than $100,000, show the field $related123456; else, show the field $related45678 in the linked customer record.
$if ($include_appendix == "Yes") : $merge($attached_file)If an appendix should be included, merge the file held in the Attached File field.

Conditional Paragraphs using $startif

Use the $startif() command in a print template if some paragraphs of text should only be included under certain conditions. For example, suppose a certain liability clause only appears in a printed contract when the contract amount is over $50,000. The conditional text comes after the $startif($condition) and is followed by $endif to close the statement.


Paragraph 1
Paragraph 2


$startif($contract_amount > 50000)

Contracts over $50,000 require an additional insurance certificate.


If the Contract Amount is over 50,000, the paragraph appears in the final document.
If the Contract Amount is less than 50,000, the paragraph is deleted.


Your extended warranty is in effect until $formula($warranty_end_date).


If the Extended Warranty field is Yes, insert the sentence listing the Warranty End Date.

$startif(($service_name ~= "Installation")&&($flag = "Yes"))

Lorem ipsum dolor sit amet.


If the Service Name field contains "Installation" and the Flag field is set to Yes, then show the paragraph.

This example combines conditions using && and extra parentheses surrounding the conditions.

$startif(find("Amended", concat("", $contract_updates))

Lorem ipsum dolor sit amet.


Checks if the value "Amended" is found in a multi-value choice field "Contract Updates". The concat function gets a string representation of the values in the multi-value field, and if it contains the value "Amended", returns the text below.

To handle cases where none of the values are selected, you can add the following after the startif:

|| isEmpty($contract_updates))

isEmpty returns "true" and outputs the text if none of the values are selected.



New line or insert line break


Merge Documents

The $merge command can be used to merge multiple files held in a single field, or files held in multiple fields into one final document.

Using the $merge($fieldname) command within a print template will merge all attached .docx/.html files from the field in the current record into the resulting print template's .docx file. Documents held in a versioned file field will be merged in the order in which they were uploaded or appended to the field.


To merge multiple documents held in a single file field with versioning or multiple files enabled:


To merge multiple documents held in separate file fields, use the format:

$merge($field1) $merge($field2) $merge($field3) ...

This makes it possible to compile a large PDF or Word document from several attachments.

The $merge command must be placed within the body of the print template. This function will not work if the $merge function is placed within the header or footer of the template, or within a table.

Related articles