Within OpenCRM we have a feature that allows you to use RTF / ODT / DOCX documents (from Word or Open Office) as merge templates.

Within OpenCRM traditionally users have had the option to create templates and merge with these templates, using the built-in HTML Editor and Document Management features. For a lot of users, this has proved to be sufficient.

The addition of Rich Text Formatted documents (RTF, along with ODT and DOCX documents, has been developed to cater for installation which might fall into two key groups:

  1. Clients that have a significant investment in their document library and would prefer to add the OpenCRM variables to existing documents, keeping the formatting already in place
  2. Clients that require a document to be formatted in a way that stretches the HTML Browser editor or the user's HTML skills.

RTF documents can be merged with Companies, Contacts, Helpdesk or Lead records, including filtered lists for bulk merging.

The key elements that are required to successfully use the Mail Merge feature are:

  1. Editor – Microsoft Word or Open Office Writer
  2. A basic understanding of how to use your editor of choice
  3. Templates coded with the correct variables
  4. Education on how to carry out the merge feature – including a basic understanding of filtered lists and views within OpenCRM (administrator access to upload an RTF Template to OpenCRM)

Creating an OpenCRM RTF merge template

To create a Mail Merge document you will need to open your editor (Word etc...). You can use an existing document and code the areas that you would like the system to auto merge, or create a new document from scratch.

Each OpenCRM Mail Merge document requires a TAG at the beginning and the end of the document, which tells OpenCRM where the start and end of the document are located. These TAGS are required for the merge to work correctly. The TAGS are:

CRM_START_TEMPLATE
CRM_END_TEMPLATE

These TAGS can be placed anywhere on the page and DO NOT print, they are removed as part of the document merge process.

Note: You do not need the "start" and "end" merge variables in ODT or DOCX files.

Where you would like to include a ‘merge variable’ you need to insert the appropriate code (a list of merge codes is loaded onto your OpenCRM system under the document manager module). As an example you can auto merge a Contact Name, Company Name and Address using the following codes:

CONTACT_FIRSTNAME CONTACT_LASTNAME
ACCOUNT_ACCOUNTNAME
ACCOUNT_BILLINGADDRESS
ACCOUNT_BILLINGCITY
ACCOUNT_BILLINGSTATE
ACCOUNT_BILLINGCODE

This will merge for each selected Contact the First and Last Name, then the Company name and the Company address.

How do I place a page break in an RTF document template?

The CRM_END_TEMPLATE tag needs to be placed on a blank page at the end of your template. This will instruct OpenCRM to look down to the following page or to move on to the next record for merging.

Are there any differences between using RTF or Office documents for Mail Merge templates?

Templates must be created in the Open Document Text format (ODT) which is supported and can be created by Word and Open Office. The template is uploaded and merged in the same way as the RTF documents. There are some slight differences and caveats:

CRM_START_TEMPLATE and CRM_END_TEMPLATE tags

  • These tags are not needed for documents which are only ever merged to a single record but ARE needed if an RTF document is to be merged to multiple records at one time (e.g. a mass letter to all your customers). 
  • They are NOT needed for ODT documents.

Product Tables / Merging Product Rows

  • To insert a product table in an ODT mail merge template, you do not (and should not) add the "START_PRODUCT_ROWS" and "END_PRODUCT_ROWS" tags. Simply insert a table and add a product field.
  • Alternatively, if you do not wish to use a table layout (e.g. you just want a list of products, then you DO need to use the product start and end tags.

Page Breaks / Multiple merge documents

  • When using the ODT format, a page break is automatically inserted in the place of the CRM_END_TEMPLATE. Therefore, you do not need to put a page break before the end tag to ensure that each new merge result appears on a new page.

Microsoft Word Headers and Footers NOT SUPPORTED

  • Microsoft Word allows you to enter text into the header and footer of the document by double clicking in the area at the top and bottom of the page. This is NOT currently supported by the mail merge function of OpenCRM. If you wish to include a header and footer, you should remove/reduce the size of the header and footer area in Word and code this direct onto the main area of the page.

Saving the Merge Template

When you are happy with the format of your document you will need to save the file in an RTF, ODT, or DOCX format. This is normally done by selecting the Save As option and selecting the ‘Save As Type’ option.

Note: Remember where you save the file as you will need this again in a moment.

Creating a new Folder

To add a new folder for your Mail Merge templates, simply go to Settings > Studio > Picklist Settings > Edit Document Picklist.

You will see an option for Mail Merge Folders:

 Click Edit and add your new folder name as a new line within the text box. 

Making the document template available in OpenCRM

The next stage is to upload the Mail Merge template to OpenCRM so that it is available in the Library for users to select and merge with.

Note: You will require administrator access to carry this next step out.

Go to Settings > Communication Templates > Mail Merge Document Templates
This will display a list of the Templates already added to your system.

You will notice that they are listed grouped by the MODULE that they refer to.

Select the NEW TEMPLATE button to upload a new template that you have created and wish to make available to your users. The following screen will be displayed:

You need to select the MODULE that this Template relates to, in other words, when you added the Merge Variables, which ones did you use, were they fields that are available in LEADS or are they CONTACT and/or COMPANY data.

Note: The Contact variables allow you to mix the Company Variables from the primary linked Company so that you can display a ‘standard’ address format.

Browse for the Template that you created earlier.

Add a description to help explain what this template does.

Click the Upload File button to add this to OpenCRM.

This is now available to users when they select the Mail Merge button in the user interface.

How can I restrict access to mail merge templates?

If you have Mail Merge templates that only need to be used by certain members of your team, you can restrict access to these by username or Profile.

For example, you may have a large number of sales templates that are only useful to the sales team. You could restrict access to these so that only those users with a "Sales" Profile could see them. This makes it easier for the rest of your team to find the templates they need, without being distracted by these sales Templates.

Note: You must be an administrator to restrict access to Mail Merge Templates. 

To Restrict Access to a new Mail Merge Template

  1. Go to Settings and navigate down to Communication Templates. Select Mail Merge templates
  2. Click "New Template"
  3. There are two options for restricting access: by username or by Profile.
  4. Click the icon next to the option of your choice and then move the selected options into the box on the right hand side
  5. You can now upload your template as normal.

Tip: If you add the restrictions you are using for the template to the description, you will find it easier to remember who can and can't access it in future. For example, you might write "Template for sending request for specification. Only Admin, Sales, and Support Profiles can access."

To Restrict Access to an EXISTING Mail Merge Template

  1. Go to Settings and navigate down to Communication Templates. Select Mail Merge templates
  2. Expand the folder your template is in
  3. Click the "Edit" link on the right side of the screen for the template you want to edit the restrictions for
  4. Follow the above instructions for setting the Profile or User based restrictions.

How do I merge using this Template?

There are two places that you can merge from, these are:

  1. Select the Module you wish to merge from (i.e. Contacts if you want to do a mail merge to People).
    1.  Select the record or records using the tick boxes on the left of the grid (by using a View or Search Results you can multi select and send a bulk mail merge).
    2. Select the Mail Merge button
  2. Select a specific Record (i.e. a single Contact record)
    1. Select the Mail Merge button

This opens a screen showing all of the Document Templates that are available for you to use. 

Select the template you wish you use and click the Merge button.

If you have selected multiple records to merge, you will see two or more hyperlinks

  1. A list of the documents that have been merged for each of the records selected. Each individual record has its own document that can be selected and opened for printing.
  2. A ‘Download full merge file’ option – this opens a single RTF document which contains ALL of the individual files, loaded one after another. This is particularly useful when you are mail merging and want to print all of the documents in one go.

Adding Products to a Mail Merge Document

When the merge takes place an individual copy of the document is saved against the OpenCRM record under the Document Sub Tab.

Note: We save documents into OpenCRM as a compressed ZIP file. This means that when you select a document to open, you may be prompted with a folder containing the document you require. Simply double click the folder to view/open the document.

When producing a mail merge document for Quotes, Invoices, Sales Orders, Opportunities or Purchase Orders, and including product details in the mail merge document, we have added the ability to filter the list of products that are merged. It is possible to filter on any product or any field on the product grid.

The user will achieve this by adding extra text to specify the filter anywhere between the start and end of the product merge variables on the mail merge template.
E.g. if adding a product table, anywhere in the table they would add the filter text. If using the start and end product tags, anywhere between the start and end tags. 

The filter format is the following:

{PRODUCTFILTER:FIELDNAME:OPERATOR:VALUE}

FIELDNAME - Is the mail merge variable for the field you want to filter on e.g Product Name = PRODUCT_PRODUCTNAME. Please see a list of available merge variables below.

OPERATOR - available operators are:

  • EQUALS
  • CONTAINS
  • NOTEQUALS
  • GREATER
  • LESS

The user will be able to include multiple product grids on the merge document using different filters for each product grid.

Example

If the user wanted to only include products in the product grid if the List Price is higher than £50 he would use the following filter in the product grid (this filter can be placed in any cell of the table):

{PRODUCTFILTER:REL_PRODUCT_LISTPRICE:GREATER:50}

Product NameDescriptionBuy PriceList PriceTotal
REL_PRODUCT_PRODUCTCODEREL_PRODUCT_DESCRIPTIONREL_PRODUCT_BUYPRICEREL_PRODUCT_LISTPRICEREL_PRODUCT_TOTAL
{PRODUCTFILTER:REL_PRODUCT_LISTPRICE:GREATER:50}


Troubleshooting: I have created an RTF document but some of the merge variables do not work, what is wrong?

The two most common culprits for merge variables not working are typos in the variables themselves or hidden formatting in the document. 

The first thing that you should check is that the merge variables match those below. Make sure they match exactly with what is in your document.

If the spellings are all correct, you will need to rule out hidden formatting. Sometimes when creating RTF documents Microsoft Word and other word processors can insert additional hidden formatting and characters into the file; these characters will not show on the document itself but are present in the raw data that makes up the file. The extra characters where present will stop the merge fields from working.

There are a number of things you can do to avoid / fix this issue:

  • Copy the merge variables you need from a known good source such as an existing template or from this list
  • Type the merge variables into Notepad (or other plain text processor) and then copy and paste into Word
  • Copy the merge variables into Notepad and from there to Word (notepad should strip any hidden data from the text)

Mail Merge Documents: Merge Variables

Any field which is available to the user in the interface of OpenCRM is available to be merged into a RTF/ ODT / DOCX document. Below is a list of all field tags and where they can be used.

The following tags are available to allow you to add the current date information (the date of merge) into a RTF/ODT//DOCX template:

CURRENT_DATE(e.g. 12-12-2012)
CURRENT_TIME (e.g. 12:12)
DAY_SHORT (e.g. Mon)
DAY_LONG (e.g Monday)
DAY_NUM (e.g 21)
MONTH_SHORT (e.g. Jan)
MONTH_LONG (e.g. January)
MONTH_NUM(e.g. 11)
YEAR_SHORT (e.g 12)
YEAR_LONG (e.g. 2012)

Full Address Tags

ACCOUNT_FULL_BILLING_ADDRESS
ACCOUNT_FULL_SHIPPING_ADDRESS
QUOTE_FULL_SHIPPING_ADDRESS
QUOTE_FULL_BILLING_ADDRESS
SALESORDER_FULL_SHIPPING_ADDRESS
SALESORDER_FULL_BILLING_ADDRESS
INVOICE_FULL_SHIPPING_ADDRESS
INVOICE_FULL_BILLING_ADDRESS
PURCHASEORDER_FULL_SHIPPING_ADDRESS
PURCHASEORDER_FULL_BILLING_ADDRESS
CONTACT_FULL_MAILING_ADDRESS
CONTACT_FULL_OTHER_ADDRESS
LEAD_FULL_OTHER_ADDRESS

Company Fields

Annual Revenue: ACCOUNT_ANNUALREVENUE
Assigned To: ACCOUNT_ASSIGNEDTO
Billing Address (Street): ACCOUNT_BILLINGADDRESS
Billing City: ACCOUNT_BILLINGCITY
Billing State: ACCOUNT_BILLINGSTATE
Billing Postcode: ACCOUNT_BILLINGCODE
Billing Country: ACCOUNT_BILLINGCOUNTRY
Billing Email: ACCOUNT_BILLINGEMAIL
Company Name: ACCOUNT_ACCOUNTNAME
Company Number: ACCOUNT_COMPANYNUMBER
Coordinates: ACCOUNT_COORDINATES
Credit Check By: ACCOUNT_CREDITCHECKBY
Credit Check On: ACCOUNT_CREDITCHECKON
Credit Limit: ACCOUNT_CREDITLIMIT
Credit Status: ACCOUNT_CREDITSTATUS
Current Spend: ACCOUNT_CURRENTSPEND
Default Currency: ACCOUNT_DEFAULTCURRENCY
Description: ACCOUNT_DESCRIPTION
Do Not Email: ACCOUNT_DONOTEMAIL
Do Not Fax: ACCOUNT_DONOTFAX
Do Not Phone: ACCOUNT_DONOTPHONE
Email: ACCOUNT_EMAIL
Employees: ACCOUNT_EMPLOYEES
Fax: ACCOUNT_FAX
Include In Sync: ACCOUNT_INCLUDEINSYNC
Industry: ACCOUNT_INDUSTRY
Last Action: ACCOUNT_LASTACTION
Last Action Date: ACCOUNT_LASTACTIONDATE
Major Account: ACCOUNT_MAJORACCOUNT
Other Email: ACCOUNT_OTHEREMAIL
Outstanding Balance: ACCOUNT_OUTSTANDINGBALANCE
Overdue Balance: ACCOUNT_OVERDUEBALANCE
Ownership: ACCOUNT_OWNERSHIP
Payment Type: ACCOUNT_PAYMENTTYPE
Phone: ACCOUNT_PHONE
Phone (Other): ACCOUNT_OTHERPHONE
Portal Terms Accepted: ACCOUNT_PORTALTERMSACCEPT
Pricebook: ACCOUNT_PRICEBOOK
Proprietor: ACCOUNT_PROPRIETOR
Registered Address (Street): ACCOUNT_REGISTEREDADDRESS
Registered City: ACCOUNT_REGISTEREDCITY
Registered State: ACCOUNT_REGISTEREDSTATE
Registered Postcode: ACCOUNT_REGISTEREDCODE
Registered Country: ACCOUNT_REGISTEREDCOUNTRY
Rating: ACCOUNT_RATING
Sage Install: ACCOUNT_SAGEINSTALL
Sage Reference: ACCOUNT_SAGEREFERENCE
Security: ACCOUNT_SECURITY
Send To Sage: ACCOUNT_SENDTOSAGE
Sent To Sage On: ACCOUNT_SENTTOSAGEON
Share With Groups: ACCOUNT_SHAREWITHGROUPS
Shipping Address (Street): ACCOUNT_SHIPPINGADDRESS
Shipping City: ACCOUNT_SHIPPINGCITY
Shipping State: ACCOUNT_SHIPPINGSTATE
Shipping Postcode: ACCOUNT_SHIPPINGCODE
Shipping Country: ACCOUNT_SHIPPINGCOUNTRY
Shipping Email: ACCOUNT_SHIPPINGEMAIL
SIC Code: ACCOUNT_SICCODE
Spend Variance: ACCOUNT_SPENDVARIANCE
Ticker Symbol: ACCOUNT_TICKERSYMBOL
Time To Pay: ACCOUNT_TIMETOPAY
Type: ACCOUNT_TYPE
VAT Exempt: ACCOUNT_VATEXEMPT
VAT Number: ACCOUNT_VATNUMBER
Website: ACCOUNT_WEBSITE

 

Contact Fields

You can also include fields from the following modules:

  • Company (primary linked company)
  • Assigned users
  • Current User
  • My company details
  • Custom text tags

Address Inherit: CONTACT_ADDRESSINHERIT
Assigned To: CONTACT_ASSIGNEDTO
Assistant: CONTACT_ASSISTANT
Birthdate: CONTACT_BIRTHDATE
Can eSign: CONTACT_CANESIGN
Contact Type: CONTACT_CONTACTTYPE
Coordinates: CONTACT_COORDINATES
Created Time: CONTACT_CREATEDTIME
Department: CONTACT_DEPARTMENT
Description: CONTACT_DESCRIPTION
Do Not Call: CONTACT_DONOTCALL
Do Not Email: CONTACT_DONOTEMAIL
Do Not Fax: CONTACT_DONOTFAX
Do Not Phone: CONTACT_DONOTPHONE
Email (Business): CONTACT_EMAIL
Email (Private): CONTACT_EMAIL2
Email Opt Out: CONTACT_EMAILOPTOUT
Fax: CONTACT_FAX
First Name: CONTACT_FIRSTNAME
Greeting: CONTACT_GREETING
Include In Sync: CONTACT_INCLUDEINSYNC
Job Title: CONTACT_TITLE
Last Action: CONTACT_LASTACTION
Last Action Date: CONTACT_LASTACTIONDATE
Last Name: CONTACT_LASTNAME
Lead Source: CONTACT_LEADSOURCE
Login: CONTACT_LOGIN
Mailing Street: CONTACT_MAILINGSTREET
Mailing Country: CONTACT_MAILINGCOUNTRY
Mailing City: CONTACT_MAILINGCITY
Mailing State: CONTACT_MAILINGSTATE
Mailing Zip: CONTACT_MAILINGZIP
Middle Name: CONTACT_MIDDLENAME
Modified Time: CONTACT_MODIFIEDTIME
Other Street: CONTACT_OTHERSTREET
Other City: CONTACT_OTHERCITY
Other State: CONTACT_OTHERSTATE
Other Zip: CONTACT_OTHERZIP
Other Country: CONTACT_OTHERCOUNTRY
Password (for Portal): CONTACT_PASSWORD
Phone (Assistant): CONTACT_ASSISTANTPHONE
Phone (Home): CONTACT_HOMEPHONE
Phone (Mobile): CONTACT_MOBILE
Phone (Office): CONTACT_OFFICEPHONE
PIN (for Portal): CONTACT_PIN
PIN Reset (for Portal): CONTACT_PINRESET
Portal Components: CONTACT_PORTALCOMPONENTS
Portal User: CONTACT_PORTALUSER
Preferred Contact Method: CONTACT_PREFERREDCONTACTMETHOD
Reports To: CONTACT_REPORTSTO
Salutation: CONTACT_SALUTATION
Security: CONTACT_SECURITY
Share With Groups: CONTACT_SHAREWITHGROUPS
Support End Date: CONTACT_SUPPORTENDDATE
Support Start Date: CONTACT_SUPPORTSTARTDATE
Yahoo Id: CONTACT_YAHOOID
Contact ID: CONTACT_CONTACT_ID

 

Lead Fields

City: LEAD_CITY
Company: LEAD_COMPANY
Country: LEAD_COUNTRY
Email: LEAD_EMAIL
Fax: LEAD_FAX
First Name: LEAD_FIRSTNAME
Greeting: LEAD_GREETING
Industry: LEAD_INDUSTRY
Job Title: LEAD_DESIGNATION
Last Name: LEAD_LASTNAME
Lead Source: LEAD_LEADSOURCE
Lead Status: LEAD_LEADSTATUS
Mobile: LEAD_MOBILE
No. of Employees: LEAD_NOOFEMPLOYEES
Phone: LEAD_PHONE
Postcode: LEAD_POSTALCODE
Rating: LEAD_RATING
Salutation: LEAD_SALUTATION
Street: LEAD_STREET
 

Quote Fields

From a quote, you can also include fields from the following modules:

  • Company (main linked company on quote record)
  • Contact (main linked contact on quote record)
  • Products (products linked to quote)
  • Quote -> product relationship
  • Assigned users
  • Current User
  • My company details
  • Custom text tags

Adjustment: QUOTE_ADJUSTMENT
Billing Address (Street): QUOTE_BILLINGADDRESS
Billing City: QUOTE_BILLINGCITY
Billing State: QUOTE_BILLINGSTATE
Billing Postcode: QUOTE_BILLINGCODE
Billing Country: QUOTE_BILLINGCOUNTRY
Billing Email: QUOTE_BILLINGEMAIL
Campaign: QUOTE_CAMPAIGN
Carrier: QUOTE_CARRIER
Cost Centre: QUOTE_COSTCENTRE
Default Currency: QUOTE_DEFAULTCURRENCY
Discount: QUOTE_DISCOUNT
Estimated Cost: QUOTE_ESTIMATEDCOST
Include VAT: QUOTE_INCLUDEVAT
Inventory Manager: QUOTE_INVENTORYMANAGER
Pricebook: QUOTE_PRICEBOOK
Products Per Page: QUOTE_PRODUCTSPERPAGE
Project Name: QUOTE_PROJECTNAME
Quote ID: QUOTE_QUOTE_ID
Quote Stage: QUOTE_QUOTESTAGE
Quote Type: QUOTE_QUOTETYPE
Sales Commission: QUOTE_SALESCOMMISSION
Shipping: QUOTE_SHIPPING
Shipping Address (Street) : QUOTE_SHIPPINGADDRESS
Shipping City: QUOTE_SHIPPINGCITY
Shipping State: QUOTE_SHIPPINGSTATE
Shipping Code: QUOTE_SHIPPINGCODE
Shipping Country: QUOTE_SHIPPINGCOUNTRY
Shipping Email: QUOTE_SHIPPINGEMAIL
Show On Portal: QUOTE_SHOWONPORTAL
Show Quantities: QUOTE_SHOWQUANTITIES
Sub Total: QUOTE_SUBTOTAL
Subject: QUOTE_SUBJECT
Tax: QUOTE_TAX
Terms & Conditions: QUOTE_TERMSCONDITIONS
Total: QUOTE_TOTAL
Total Margin: QUOTE_TOTALMARGIN
Valid Till: QUOTE_VALIDTILL
VAT Rate: QUOTE_VAT_RATE
Carrier: QUOTE_CARRIER

Sales Order Fields

From a sales order, you can also include fields from the following modules:

  • Company (main linked company on sales order record)
  • Contact (main linked contact on sales order record)
  • Products (products linked to sales order)
  • Sales Order -> product relationship
  • Assigned users
  • Current User
  • My company details
  • Custom text tags

Billing Address (Street): SALESORDER_BILLINGADDRESS
Billing City: SALESORDER_BILLINGCITY
Billing State: SALESORDER_BILLINGSTATE
Billing Code: SALESORDER_BILLINGCODE
Billing Country: SALESORDER_BILLINGCOUNTRY
Billing Email: SALESORDER_BILLINGEMAIL
Campaign: SALESORDER_CAMPAIGN
Carrier: SALESORDER_CARRIER
Cost Centre: SALESORDER_COSTCENTRE
Customer No: SALESORDER_CUSTOMERNO
Discount: SALESORDER_DISCOUNT
Default Currency: SALESORDER_DEFAULTCURRENCY
Due Date: SALESORDER_DUEDATE
e-Signed By: SALESORDER_E-SIGNEDBY
e-Signed Date: SALESORDER_E-SIGNEDDATE
Excise Duty: SALESORDER_EXCISEDUTY
Fulfil By: SALESORDER_FULFILBY
Include VAT: SALESORDER_INCLUDEVAT
Job Accepted: SALESORDER_JOBACCEPTED
Job Completed: SALESORDER_JOBCOMPLETED
Job Date: SALESORDER_JOBDATE
Job Status: SALESORDER_JOBSTATUS
Job Time: SALESORDER_JOBTIME
Last Invoiced: SALESORDER_LASTINVOICED
Lease Acceptance Date: SALESORDER_LEASEACCEPTANCEDATE
Leased by: SALESORDER_LEASEDBY
Lock Products: SALESORDER_LOCKPRODUCTS
Order Weight: SALESORDER_ORDERWEIGHT
Partner: SALESORDER_PARTNER
Payment Day: SALESORDER_PAYMENTDAY
Payment Type: SALESORDER_PAYMENTTYPE
Pending: SALESORDER_PENDING
Pricebook: SALESORDER_PRICEBOOK
Products Per Page: SALESORDER_PRODUCTSPERPAGE
Purchase Order: SALESORDER_PURCHASEORDER
Recurs: SALESORDER_RECURS
Recur From: SALESORDER_RECURFROM
Recur Interval: SALESORDER_RECURINTERVAL
Recur Type: SALESORDER_RECURTYPE
Recur Until: SALESORDER_RECURUNTIL
Require Financial Authorisation: SALESORDER_REQUIREFINANCIALAUTH
Sage Install: SALESORDER_SAGEINSTALL
Sales Commission: SALESORDER_SALESCOMMISSION
Sales Order As Job: SALESORDER_SALESORDERASJOB
Sales Order ID: SALESORDER_SALESORDER_ID
Sales Tax: SALESORDER_SALESTAX
Security: SALESORDER_SECURITY
Sent To Sage: SALESORDER_SENTTOSAGE
Sent To Sage On: SALESORDER_SENTTOSAGEON
Share With Groups: SALESORDER_SHAREWITHGROUPS
Shipping Address (Street): SALESORDER_SHIPPINGADDRESS
Shipping City: SALESORDER_SHIPPINGCITY
Shipping State: SALESORDER_SHIPPINGSTATE
Shipping Code: SALESORDER_SHIPPINGCODE
Shipping Country: SALESORDER_SHIPPINGCOUNTRY
Shipping Email: SALESORDER_SHIPPINGEMAIL
Show On Portal: SALESORDER_SHOWONPORTAL
SO Value Figure: SALESORDER_SOVALUEFIGURE
SO Value Words: SALESORDER_SOVALUEWORDS
SO Value Figure: SALESORDER_SOVALUEFIGURE
Status: SALESORDER_STATUS
Sub-Total: SALESORDER_SUB-TOTAL
Subject: SALESORDER_SUBJECT
Terms & Conditions: SALESORDER_TERMSCONDITIONS
Total: SALESORDER_TOTAL
Total Margin: SALESORDER_TOTALMARGIN
VAT Rate: SALESORDER_VAT_RATE

Invoice Fields

From a invoice, you can also include fields from the following modules:

  • Company (main linked company on sales order record)
  • Contact (main linked contact on sales order record)
  • Products (products linked to sales order)
  • Invoice -> product relationship
  • Assigned users
  • Current User
  • My company details
  • Custom text tags

Account Name: INVOICE_ACCOUNTNAME
Billing Address (Street): INVOICE_BILLINGADDRESS
Billing City: INVOICE_BILLINGCITY
Billing State: INVOICE_BILLINGSTATE
Billing Postcode: INVOICE_BILLINGCODE
Billing Country: INVOICE_BILLINGCOUNTRY
Billing Email: INVOICE_BILLINGEMAIL
Campaign: INVOICE_CAMPAIGN
Company VAT Num: INVOICE_COMPANYVATNUM
Contact Name: INVOICE_CONTACTNAME
Customer No: INVOICE_CUSTOMERNO
Default Currency: INVOICE_DEFAULTCURRENCY
Discount: INVOICE_DISCOUNT
Due Date: INVOICE_DUEDATE
Excise Duty: INVOICE_EXCISEDUTY
Include VAT: INVOICE_INCLUDEVAT
Invoice Date: INVOICE_INVOICEDATE
Invoice ID: INVOICE_INVOICE_ID
Invoice Number: INVOICE_INVOICENUMBER
Lease Acceptance Date: INVOICE_LEASEACCEPTANCEDATE
Leased by: INVOICE_LEASEDBY
Outstanding: INVOICE_OUTSTANDING
Paid Date: INVOICE_PAIDDATE
Payment Date: INVOICE_PAYMENTDATE
Payment Day: INVOICE_PAYMENTDAY
Payment Type: INVOICE_PAYMENTTYPE
Potential Name: INVOICE_POTENTIALNAME
Products Per Page: INVOICE_PRODUCTSPERPAGE
Pricebook: INVOICE_PRICEBOOK
Project Name: INVOICE_PROJECTNAME
Purchase Order: INVOICE_PURCHASEORDER
Quote Name: INVOICE_QUOTENAME
Recur Interval: INVOICE_RECURINTERVAL
Requires Financial Authorisation: INVOICE_REQUIREFINANCIALAUTH
Sage Install: INVOICE_SAGEINSTALL
Sales Commission: INVOICE_SALESCOMMISSION
Sales Order: INVOICE_SALESORDER
Sales Tax: INVOICE_SALESTAX
Send To Sage: INVOICE_SENDTOSAGE
Sent To Sage On: INVOICE_SENTTOSAGEON
Shipping Address (Street): INVOICE_SHIPPINGADDRESS
Shipping City: INVOICE_SHIPPINGCITY
Shipping State: INVOICE_SHIPPINGSTATE
Shipping Postcode: INVOICE_SHIPPINGCODE
Shipping Country: INVOICE_SHIPPINGCOUNTRY
Shipping Email: INVOICE_SHIPPINGEMAIL
Show On Portal: INVOICE_SHOWONPORTAL
Status: INVOICE_STATUS
Sub Total: INVOICE_SUBTOTAL
Subject: INVOICE_SUBJECT
Terms & Conditions: INVOICE_TERMS&CONDITIONS
Total: INVOICE_TOTAL
Total Margin: INVOICE_TOTALMARGIN
VAT Rate: INVOICE_VAT_RATE

Purchase Order Fields

From a purchase order, you can also include fields from the following modules:

  • Company (main linked supplier on order record)
  • Contact (main linked contact on order record)
  • Products (products linked to order)
  • Purchase Order -> product relationship
  • Assigned users
  • Current User
  • My company details
  • Custom text tags

Account Name: PURCHASEORDER_ACCOUNTNAME
Adjustment: PURCHASEORDER_ADJUSTMENT
Bill To: PURCHASEORDER_BILL_TO
Billing Address (Street): PURCHASEORDER_BILLINGADDRESS
Billing City: PURCHASEORDER_BILLINGCITY
Billing State: PURCHASEORDER_BILLINGSTATE
Billing Postcode: PURCHASEORDER_BILLINGCODE
Billing Country: PURCHASEORDER_BILLINGCOUNTRY
Billing Email: PURCHASEORDER_BILLINGEMAIL
Carrier: PURCHASEORDER_CARRIER
Contact Name: PURCHASEORDER_CONTACTNAME
Cost Centre: PURCHASEORDER_COSTCENTRE
Default Currency: PURCHASEORDER_DEFAULTCURRENCY
Discount: PURCHASEORDER_DISCOUNT
Due Date: PURCHASEORDER_DUEDATE
Excise Duty: PURCHASEORDER_EXCISEDUTY
Include VAT: PURCHASEORDER_INCLUDEVAT
Opportunity Name: PURCHASEORDER_POTENTIALNAME
Outstanding: PURCHASEORDER_OUTSTANDING
Products Per Page: PURCHASEORDER_PRODUCTSPERPAGE
Project Name: PURCHASEORDER_PROJECTNAME
Purchase Order ID: PURCHASEORDER_PURCHASEORDER_ID
Requisition No: PURCHASEORDER_REQUISITIONNO
Sage Install: PURCHASEORDER_SAGEINSTALL
Sales Commission: PURCHASEORDER_SALESCOMMISSION
Sales Order: PURCHASEORDER_SALESORDER
Sales Tax: PURCHASEORDER_SALESTAX
Sent To Sage: PURCHASEORDER_SENTTOSAGE
Sent To Sage On: PURCHASEORDER_SENTTOSAGEON
Shipping Address (Street): PURCHASEORDER_SHIPPINGADDRESS
Shipping City: PURCHASEORDER_SHIPPINGCITY
Shipping State: PURCHASEORDER_SHIPPINGSTATE
Shipping Postcode: PURCHASEORDER_SHIPPINGCODE
Shipping Country: PURCHASEORDER_SHIPPINGCOUNTRY
Shipping Email: PURCHASEORDER_SHIPPINGEMAIL
Ship To: PURCHASEORDER_SHIP_TO
Status: PURCHASEORDER_STATUS
Sub Total: PURCHASEORDER_SUBTOTAL
Subject: PURCHASEORDER_SUBJECT
Terms & Conditions: PURCHASEORDER_TERMS&CONDITIONS
Total: PURCHASEORDER_TOTAL
Tracking Number: PURCHASEORDER_TRACKINGNUMBER
VAT Rate: PURCHASEORDER_VAT_RATE
Vendor Name: PURCHASEORDER_VENDORNAME

Product Fields

Product fields can be used in RTF merges for Quote, Sales order, Invoice, Purchase Orders.

Allocated Stock: PRODUCT_ALLOCATEDSTOCK
Auto Generated Title: PRODUCT_AUTOGENERATEDTITLE
Backordered Stock: PRODUCT_BACKORDEREDSTOCK
Backorder - Ordered Stock: PRODUCT_BACKORDER-ORDEREDSTOCK
Bin: PRODUCT_BIN
Buy Price: PRODUCT_BUYPRICE
Buyer: PRODUCT_BUYER
Commission Rate: PRODUCT_COMMISSIONRATE
Created Time: PRODUCT_CREATEDTIME
Customer: PRODUCT_CUSTOMER
Cust Part Number: PRODUCT_CUSTPARTNUMBER
Date In: PRODUCT_DATEIN
Default Currency: PRODUCT_DEFAULTCURRENCY
Description: PRODUCT_DESCRIPTION
Despatch Date: PRODUCT_DESPATCHDATE
Est Cost (Supplier) Price: PRODUCT_ESTCOST(SUPPLIER)PRICE
GL Account: PRODUCT_GLACCOUNT
Handler: PRODUCT_HANDLER
Installer: PRODUCT_INSTALLER
Manage Stock: PRODUCT_MANAGESTOCK
Manufacturer: PRODUCT_MANUFACTURER
Manufacturer Part No: PRODUCT_MFRPARTNO
Mini Description: PRODUCT_MINIDESCRIPTION
Model Revision: PRODUCT_MODELREVISION
Modified Time: PRODUCT_MODIFIEDTIME
Nominal Code: PRODUCT_NOMINALCODE
Ordered Stock: PRODUCT_ORDEREDSTOCK
Parent Product: PRODUCT_PARENTPRODUCT
Price Check Date: PRODUCT_PRICECHECKDATE
Product Active: PRODUCT_PRODUCTACTIVE
Product Category: PRODUCT_PRODUCTCATEGORY
Product Code: PRODUCT_PRODUCTCODE
Product Image: PRODUCT_PRODUCTIMAGE
Product Name: PRODUCT_PRODUCTNAME
Product Status: PRODUCT_PRODUCTSTATUS
Product Type: PRODUCT_PRODUCTTYPE
Purchase Nominal Code: PRODUCT_PURCHASENOMINALCODE
Purchase Nominal Description: PRODUCT_PURCHASENOMINALDESCRIPTION
Quantity In Demand: PRODUCT_QTYINDEMAND
Quantity In Stock: PRODUCT_QTYINSTOCK
Quantity/ Unit: PRODUCT_QTY/UNIT
Reccuring Period: PRODUCT_RECCURINGPERIOD
Reorder Level: PRODUCT_REORDERLEVEL
Returned Stock: PRODUCT_RETURNEDSTOCK
Sales End Date: PRODUCT_SALESENDDATE
Sales Start Date: PRODUCT_SALESSTARTDATE
Sell Price: PRODUCT_SELLPRICE
Serial No: PRODUCT_SERIALNO
Shelf: PRODUCT_SHELF
Shipped Stock: PRODUCT_SHIPPEDSTOCK
Size: PRODUCT_SIZE
Sub Product Type: PRODUCT_SUBPRODUCTTYPE
Support Expiry Date: PRODUCT_SUPPORTEXPIRYDATE
Support Start Date: PRODUCT_SUPPORTSTARTDATE
Tax Class: PRODUCT_TAXCLASS
Total Stock: PRODUCT_TOTALSTOCK
Unallocated Stock: PRODUCT_UNALLOCATEDSTOCK
Unit Price: PRODUCT_UNITPRICE
Usage Unit: PRODUCT_USAGEUNIT
Vendor Name: PRODUCT_VENDORNAME
Vendor Part No: PRODUCT_VENDORPARTNO
Warehouse: PRODUCT_WAREHOUSE
Website: PRODUCT_WEBSITE
Weight: PRODUCT_WEIGHT

Product -> Quote Relationship fields

buyprice: REL_PRODUCT_BUYPRICE
buyprice2: REL_PRODUCT_BUYPRICE2
buyprice3: REL_PRODUCT_BUYPRICE3
buyprice4: REL_PRODUCT_BUYPRICE4
buyprice5: REL_PRODUCT_BUYPRICE5
category: REL_PRODUCT_CATEGORY
discount: REL_PRODUCT_DISCOUNT
listprice: REL_PRODUCT_LISTPRICE
listprice2: REL_PRODUCT_LISTPRICE2
listprice3: REL_PRODUCT_LISTPRICE3
listprice4: REL_PRODUCT_LISTPRICE4
listprice5: REL_PRODUCT_LISTPRICE5
markup: REL_PRODUCT_MARKUP
margin: REL_PRODUCT_MARGIN
productcode: REL_PRODUCT_PRODUCTCODE
prd_cf_1: REL_PRODUCT_PRD_CF_1
prd_cf_2: REL_PRODUCT_PRD_CF_2
prd_cf_3: REL_PRODUCT_PRD_CF_3
prd_cf_4: REL_PRODUCT_PRD_CF_4
prd_cf_5: REL_PRODUCT_PRD_CF_5
quoteid: REL_PRODUCT_QUOTEID
quoteproductid: REL_PRODUCT_QUOTEPRODUCTID
quantity: REL_PRODUCT_QUANTITY
productid: REL_PRODUCT_PRODUCTID
taxclass: REL_PRODUCT_TAXCLASS
taxpercent: REL_PRODUCT_TAXPERCENT
taxvalue: REL_PRODUCT_TAXVALUE
UOM: REL_PRODUCT_UOM
Line Total: REL_PRODUCT_TOTAL

Product -> Invoice Relationship fields

buyprice: REL_PRODUCT_BUYPRICE
buyprice2: REL_PRODUCT_BUYPRICE2
buyprice3: REL_PRODUCT_BUYPRICE3
buyprice4: REL_PRODUCT_BUYPRICE4
buyprice5: REL_PRODUCT_BUYPRICE5
category: REL_PRODUCT_CATEGORY
description: REL_PRODUCT_DESCRIPTION
discount: REL_PRODUCT_DISCOUNT
invoiceproductid: REL_PRODUCT_INVOICEPRODUCTID
listprice: REL_PRODUCT_LISTPRICE
listprice2: REL_PRODUCT_LISTPRICE2
listprice3: REL_PRODUCT_LISTPRICE3
listprice4: REL_PRODUCT_LISTPRICE4
listprice5: REL_PRODUCT_LISTPRICE5
margin: REL_PRODUCT_MARGIN
markup: REL_PRODUCT_MARKUP
prd_cf_1: REL_PRODUCT_PRD_CF_1
prd_cf_2: REL_PRODUCT_PRD_CF_2
prd_cf_3: REL_PRODUCT_PRD_CF_3
prd_cf_4: REL_PRODUCT_PRD_CF_4
prd_cf_5: REL_PRODUCT_PRD_CF_5
productcode: REL_PRODUCT_PRODUCTCODE
productid: REL_PRODUCT_PRODUCTID
quantity: REL_PRODUCT_QUANTITY
remarks: REL_PRODUCT_REMARKS
taxclass: REL_PRODUCT_TAXCLASS
taxpercent: REL_PRODUCT_TAXPERCENT
taxvalue: REL_PRODUCT_TAXVALUE
UOM: REL_PRODUCT_UOM
Line Total: REL_PRODUCT_TOTAL

Product -> Sales Order Relationship Fields

buyprice: REL_PRODUCT_BUYPRICE
buyprice2: REL_PRODUCT_BUYPRICE2
buyprice3: REL_PRODUCT_BUYPRICE3
buyprice4: REL_PRODUCT_BUYPRICE4
buyprice5: REL_PRODUCT_BUYPRICE5
category: REL_PRODUCT_CATEGORY
description: REL_PRODUCT_DESCRIPTION
discount: REL_PRODUCT_DISCOUNT
listprice: REL_PRODUCT_LISTPRICE
listprice2: REL_PRODUCT_LISTPRICE2
listprice3: REL_PRODUCT_LISTPRICE3
listprice4: REL_PRODUCT_LISTPRICE4
listprice5: REL_PRODUCT_LISTPRICE5
markup: REL_PRODUCT_MARKUP
margin: REL_PRODUCT_MARGIN
prd_cf_1: REL_PRODUCT_PRD_CF_1
prd_cf_2: REL_PRODUCT_PRD_CF_2
prd_cf_3: REL_PRODUCT_PRD_CF_3
prd_cf_4: REL_PRODUCT_PRD_CF_4
prd_cf_5: REL_PRODUCT_PRD_CF_5
productcode: REL_PRODUCT_PRODUCTCODE
productid: REL_PRODUCT_PRODUCTID
quantity: REL_PRODUCT_QUANTITY
salesorderid: REL_PRODUCT_SALESORDERID
soproductid: REL_PRODUCT_SOPRODUCTID
taxclass: REL_PRODUCT_TAXCLASS
taxpercent: REL_PRODUCT_TAXPERCENT
taxvalue: REL_PRODUCT_TAXVALUE
UOM: REL_PRODUCT_UOM
Line Total: REL_PRODUCT_TOTAL

Product -> Purchase Order Relationship Fields

buyprice2: REL_PRODUCT_BUYPRICE2
buyprice3: REL_PRODUCT_BUYPRICE3
buyprice4: REL_PRODUCT_BUYPRICE4
buyprice5: REL_PRODUCT_BUYPRICE5
category: REL_PRODUCT_CATEGORY
description: REL_PRODUCT_DESCRIPTION
listprice: REL_PRODUCT_LISTPRICE
listprice2: REL_PRODUCT_LISTPRICE2
listprice3: REL_PRODUCT_LISTPRICE3
listprice4: REL_PRODUCT_LISTPRICE4
listprice5: REL_PRODUCT_LISTPRICE5
poproductid: REL_PRODUCT_POPRODUCTID
productcode: REL_PRODUCT_PRODUCTCODE
productid: REL_PRODUCT_PRODUCTID
purchaseorderid: REL_PRODUCT_PURCHASEORDERID
quantity: REL_PRODUCT_QUANTITY
taxclass: REL_PRODUCT_TAXCLASS
taxpercent: REL_PRODUCT_TAXPERCENT
taxvalue: REL_PRODUCT_TAXVALUE
UOM: REL_PRODUCT_UOM
Line Total: REL_PRODUCT_TOTAL

Individual Product Line Fields

It is possible to include fields from a given product line (e.g. merge the name of the first product). To do this - take the standard product tag as above,  replace "PRODUCT" with "PRODUCTS" anywhere it appears in the tag, and then append the line number to the end e.g:

PRODUCTS_PRODUCTSNAME_1
REL_PRODUCTS_QUANTITY_1

Opportunity Fields

Account Name: POTENTIALS_ACCOUNTNAME
Active Time: POTENTIALS_ACTIVETIME
Amount: POTENTIALS_AMOUNT
Assigned To: POTENTIALS_ASSIGNEDTO
Campaign: POTENTIALS_CAMPAIGN
Cost Centre: POTENTIALS_COSTCENTRE
Created Time: POTENTIALS_CREATEDTIME
Default Currency: POTENTIALS_DEFAULTCURRENCY
Description: POTENTIALS_DESCRIPTION
Email: POTENTIALS_EMAIL
Expected Close Date: POTENTIALS_EXPECTEDCLOSEDATE
Expected Revenue: POTENTIALS_EXPECTEDREVENUE
Fiscal Quarter: POTENTIALS_FISCALQUARTER
Fiscal Year: POTENTIALS_FISCALYEAR
Forecast Category: POTENTIALS_FORECASTCATEGORY
Last Action: POTENTIALS_LASTACTION
Last Action Date: POTENTIALS_LASTACTIONDATE
Lead Source: POTENTIALS_LEADSOURCE
Modified Time: POTENTIALS_MODIFIEDTIME
Next Step: POTENTIALS_NEXTSTEP
Potential Name: POTENTIALS_POTENTIALNAME
Probability: POTENTIALS_PROBABILITY
Project Name: POTENTIALS_PROJECTNAME
Sales Stage: POTENTIALS_SALESSTAGE
Start Date: POTENTIALS_STARTDATE
Total Linked Amount: POTENTIALS_TOTALLINKEDAMOUNT
Total Opportunity Quantity: POTENTIALS_TOTALOPPORTUNITYQUANTITY
Type: POTENTIALS_TYPE
Weighted Amount: POTENTIALS_WEIGHTEDAMOUNT

Event fields

Event ID : EVENT_EVENT_ID
Event Name: EVENT_EVENTNAME
Assigned To: EVENT_ASSIGNEDTO
Required Days To Complete: EVENT_REQUIREDDAYSTOCOMPLETE
Required Hours Attendance to Complete: REQUIREDHOURSTOCOMPLETE
Default Currency: EVENT_DEFAULTCURRENCY
Modified Time: EVENT_MODIFIEDTIME
Event Type: EVENT_PRODUCTTYPE
Description: EVENT_DESCRIPTION
Created time: EVENT_CREATEDTIME
Event Group: EVENT_EVENTGROUP
End Date:EVENT_ENDDATE
 Fee: EVENT_FEE
Default Currency: EVENT_DEFAULTCURRENCY 

Event > Day Fields

Day End date and time : DAY_ENDDATETIME
Day Day type : DAY_DAYTYPE
Day Host : DAY_HOST
Day Contact Name : DAY_CONTACTNAME
Day Subjects : DAY_SUBJECTS
Day Notes : DAY_NOTES
Day Start Date : DAY_STARTDATE
Day Start Time : DAY_STARTTIME
Day End Time : DAY_ENDTIME
Day Start Date and Time : DAY_STARTDATETIME
Day End Date : DAY_ENDDATE
Day Name : DAY_DAYNAME

Assigned User

USER_FIRSTNAME,
USER_LASTNAME,
USER_USERNAME,
USER_YAHOOID,
USER_TITLE,
USER_OFFICEPHONE,
USER_DEPARTMENT
USER_MOBILE,
USER_OTHERPHONE,
USER_FAX,
USER_EMAIL,
USER_HOMEPHONE,
USER_OTHEREMAIL,
USER_PRIMARYADDRESS
USER_CITY,
USER_STATE,
USER_POSTALCODE,
USER_COUNTRY

Current User

First Name: CURRENTUSER_FIRST_NAME
Last NameCURRENTUSER_LAST_NAME
UsernameCURRENTUSER_USER_NAME
TitleCURRENTUSER_TITLE
DepartmentCURRENTUSER_DEPARTMENT
Office PhoneCURRENTUSER_PHONE_WORK
Home Phone: CURRENTUSER_PHONE_HOME
Other Phone: CURRENTUSER_PHONE_OTHER
Fax: CURRENTUSER_FAX
Email: CURRENTUSER_EMAIL1
Street: CURRENTUSER_ADDRESS_STREET
City: CURRENTUSER_ADDRESS_CITY
State: CURRENTUSER_ADDRESS_STATE
Country: CURRENTUSER_ADDRESS_COUNTRY
Postcode: CURRENTUSER_ADDRESS_POSTALCODE

My Company Fields

Organization Name: MYCY_ORGANIZATIONAME
Street Address: MYCY_ADDRESS
City: MYCY_CITY
State: MYCY_STATE
Country: MYCY_COUNTRY
Postcode: MYCY_CODE
Phone: MYCY_PHONE
Fax: MYCY_FAX
Website: MYCY_WEBSITE
Logo Name: MYCY_LOGONAME
Logo: MYCY_LOGO
VAT: MYCY_VAT
Reg: MYCY_REG
Email: MYCY_EMAIL
Address2: MYCY_ADDRESS2

Custom Text Tags

When launching the template, you can enter text into up three text boxes which are then also merged into the template. You can use the following 3 custom tags in your template. The tag names are only used as a guideline to help you logically structure your templates, but can actually be inserted anywhere in the template (so, for example CUSTOM_HEADER does not necessarily be in the template header)

CUSTOM_HEADER
CUSTOM_BODY
CUSTOM_FOOTER

Custom Fields

The RTF Merge has been tested and should work fine on custom fields too. Please use your field label as reference ie: if I create a custom field on the Leads module and call it "Moon Address".
I will be able to merge that field value using the following variable "LEAD_MOONADDRESS".


Need More Help?

If you have any questions, just start a Live Chat, "Click" on the Chat Icon in the lower right corner to talk with our support team.