XpressDox Help Center

Use Google To Find Help Fast, e.g. xpressdox choosefromlist

Press Getting Started in the XpressDox toolbar for basic template development
Watch the tutorial videos
View command help from list of commands
Press F1 for help on a command in the Command Editor
Email support@xpressdox.com for assistance


How To Create A Template

This is a short guide on how to begin creating templates with XpressDox. Before you begin, you should watch the short tutorial videos.

The first step is to add fillpoints (questions) to your document which will ask for input when the template is run.

  1. Begin with a fairly simple Word document—for example a short agreement or letter or something not too complex. Open the document in MS Word.
  2. Next, highlight all of the information that will change. (This is purely to organise your thinking.)
  3. Begin by selecting the text you wish to replace, and then clicking on the Insert Fillpoint button in the XpressDox toolbar, which is located in MS Word.
  4. Each fillpoint will require a unique name. For example «Company_name». Note that fillpoint names are case-sensitive, and they cannot contain spaces or illegal characters. (Use underscores instead of spaces as the underscores are converted to spaces in the interview. (So Company_name would display as Company name in the interview.) Fillpoint names can be long if you wish (for example «Enter_the_name_of_the_purchaser») but then you need to ensure that you get the spelling 100% correct if you use the fillpoint elsewhere in your template. (Name is different from name is different from NAME, etc. Got it?)
  5. It is also good practice to stick with one form of capitalization for all of your templates so that you don't need to remember this each time you repeat fillpoint names in your template. For example, stick to first word capitalized in a fillpoint name, or maybe every word capitalised. (For example Company_name or Company_Name). But stick to one convention for all your templates if possible. (I promise you will understand this the first time you come across it!)
  6. Next, you might need to add some list choices. The simplest command is ChooseFromList. (Click on the command name to read more about it.) [An example: «ChooseFromList(City,London,New York,Sydney,Toronto)»] Important: The Choose command only gives you a list of choices, but you still need to insert the fillpoint into the template if you want the list to appear in your interview. Like this: «City».
  7. You may also want the fillpoint named «City» to be in Upper case, like this: «ToUpper(City)». The first chevron determines the style for the entire fillpoint (like this: «City»), although it is easier to identify at a glance if you make the entire fillpoint bold, like this: «City». Or red, like this: «City».
  8. Another useful Choose command is the radio button list, like this: «ChooseFromRDBList(Tax,Yes,No)» (Remember to use the fillpoint in your template or the command will not appear in your template, like this «Tax». A close relative of the RDB list command is ChooseUsingCheckBox. (Click on the command name for help on that command.)
  9. If you would like a more descriptive question in your interview, use the Caption command, like this: «Caption(City,Enter the destination city here)». Note that you can have spaces in the second part of the caption command. It is also possible to change colour/font/size for caption commands.
  10. There is one more simple command which we will cover here, and that is CaptureAsLongText. This allows you to capture multi-line addresses or other long text.
  11. The final step is to name and save your template: Click on the Save Template button in the XpressDox toolbar. Next click on theRun Templatebutton.
  12. If you have done everything correctly, you should see an interview (questionnaire) on your screen. Answer the questions, and press OK to assemble the template.
  13. If you haven't done everything correctly, you will receive an error message. Don't panic—we all get those from time to time! Most error messages are very helpful, and in addition to telling you what the problem is, XpressDox will take you to the place in your template where the error occurred.
  14. Assuming you have created (and run) your first template successfully, there are now a few things you can do to learn more about authoring templates.
    1. In the XpressDox toolbar, click on the Commands button to display a list of all commands. Click once on a command name, and then press the F1 key for detailed help on that command. Or double-click to insert an example of that command into your template. And lastly, right click to display a wizard for that command.
    2. You can also view the Cookbook of examples and the User Reference section.
    3. And there is a list of all commands in the help center, as well as a list of the Top 40 commands, which are most often used to create templates.
  15. If all else fails, email us at support@xpressdox.com with your query and one of the team members will reply to you.

Congratulations on creating your first template. With a little practice, you will soon be able to create more advanced templates. Just one bit of advice though: Learning XpressDox is a bit like learning a new language. It takes a little practice (and patience) to become fluent. The great news is that in this language, you only need about 40 words (commands) to speak the language!

40 Often Used Commands and Functions

Learning XpressDox is a bit like learning a new language. It takes a little practice (and patience) to become fluent. The great news is that in this language, you only need about 40 words (commands) to speak the language!

Here are the 40 most often used commands and functions:

Command or Function Name Description and Examples

Base (or overlay) this template on another template




Set the caption for the data element on the interview screen

«Caption(Amount,Capital amount of loan)»

«Caption(Amount,^bu^@Navy@Capital amount of loan)»


Places a control for the data element on the interview screen




Specify whether or not a repeater should be displayed and captured in a grid




Present a horizontal list of radio button choices



Present the user with a list of choices in a drop down list

«ChooseFromList(Province,Ontario,Quebec,British Columbia,Alberta,Manitoba,Saskatchewan,Nova Scotia,New Brunswick,Newfoundland and Labrador,Prince Edward Island)»

«ChooseFromList(Province,,Ontario,Quebec,'British Columbia', 'Alberta' ,Manitoba,Saskatchewan,Nova Scotia,New Brunswick,'Newfoundland and Labrador',Prince Edward Island)»

«ChooseFromList(Province,O~~Ontario,Q~~Quebec,BC~~British Columbia,A~~Alberta,M~~Manitoba,S~~Saskatchewan,NS~~Nova Scotia,NB~~New Brunswick,NL~~Newfoundland and Labrador,PE~~Prince Edward Island)»


Present a radio button list of choices


«ChooseFromRDBList(Clause,Security~~The undersigned undertakes to provide security covering the loan to be granted.,NoSecurity~~The undersigned is not required to provide security for the loan.)»

«ChooseFromRDBList(Clause,~~The undersigned undertakes to provide security covering the loan to be granted.,~~The undersigned is not required to provide security for the loan.)»


Presents a drop down list of choices, but the user can type their own if it is not in the list



Choose a value using a check box


«ChooseUsingCheckBox(Clause,~~The Parties agree to cede their rights to various assets without prejudice.)»
«If(Clause != '')»


Enter a comment into the template

«Comment(Any arbitrary comments)»


Define the interview properties of a data element

«Define(Amount,^biu^@Red@Caption text,|^b^@Navy@Heading text,Footing Text,Tab Caption,CaptureDataElement,,Required,Initial Value,hard;IsDigits;The amount must be numerics only.,Cases;RefreshSave;'Id=;')?Enter the amount of the deal.»

«Define(Title,^biu^@Red@Title of the party,|^b^@Navy@PARTY DETAILS,,Contact Information,ChooseFromList,;Mr.;Mrs.;Ms.;Dr.;Prof.)»

«Define(TaxIncluded,Is Tax included,,,,ChooseUsingCheckBox,Y;N;N)»


Insert the body of the originating template into the Base Template



Render a numeric amount as a number of Dollars, in words




Place footing text below a data element in the interview

«Footing(CompanyPostalCode,END OF COMPANY DETAILS)»


«Footing(CompanyPostalCode,|^bu^@Navy@END OF COMPANY DETAILS)»


Repeat for a number of repeating data elements

«ForEach(Party)» «End()»

«ForEach(Party,Surname,ascending,text)» «End(for each)»

«ForEach(Child[Age < 12]) selects children whose age is less than 12» «End()»


Format a field as date and/or time


«FormatDate(SignatureDate,'o MMMM yyyy')»


Format Number





Get the value of a variable



Place heading text above a data element in the interview

«Heading(CompanyName, COMPANY DETAILS)»

«Heading(CompanyName,|^bu^@Navy@COMPANY DETAILS)»


Conditionally include text into the document

«If(Answer = 'No')» «End(If)»

«If(Answer = 'Yes')»text when Answer is 'Yes'«Else()»text when Answer is not 'Yes'«End(If)»

«If((Answer = 'Yes') or (Answer = 'Maybe') and (Amount > 500)»«End()»

«If(position()= 1)»This applies only to the first repeating item.«End()»

«ForEach(Party)»«PartyFullNames»«If(last() > 1)»«When(position() < last()-1,!, )»«When(position() = last()-1, and )»«End(party > 1)»«End(for each)»

«ChooseFromRDBList(Gender,Male,Female)»«If(Gender = "Male")»«SetV("PronounHe","he")»«Setv("PronounHim","him")»«SetV("PronounHis","his")»«Else()»«SetV("PronounHe","she")»«SetV("PronounHim","her")»«SetV("PronounHis","her")»«End()»«RemoveParagraph()»
«GetV('PronounHe')» took «GetV('PronounHis')» bag with «GetV('PronounHim')»


IIf function

«IIf((VatIndicator = 'Yes'),FormatNumber(Amount * 0.14),'0.00')»


Include a template as part of this template





Insert text captured as long text





Insert a template whose name appears in a data element which is chosen by the user.



«InsertTemplate('Party Underage Clause',Destination)»

«InsertTemplate('letters:Covering Letter',Destination,PreserveHeaders)»


Insert the current date (i.e. today) and/or time into the document


«Now('MMMM o yyyy')»

«Now('d MMMM yyyy HH:mm:ss','de')»



Format a number as words


«NumberPhrase(Price - 100,'en-us','ToUpper')»


Mark one or more data elements as required - i.e. must have a non-empty value





Applies a custom made validation rule to the data element in the interview process

«Rule(Cost,hard,IsNumber,110.00,12000.00,The Cost must be greater than 109 and less than or equal to 12000.)»

«Rule(SellingPrice,hard,(Area > 1000 and SellingPrice > 500000) or (Area < 1001 and SellingPrice < 50001),'The SellingPrice must be greater than 500000 when the Area is more than 1000.')»

«Rule(IDNumber,hard,IsDigits,The IDNumber must consist only of digits)»«Rule(IDNumber,hard,string-length(IDNumber) = 13,the IDNumber must be exactly 13 digits long.)»

«Rule(IDNumber,hard,IsZAIDNumber,The IDNumber failed the test for a valid South African ID Number.)»

«Rule(Email,hard,IsEmailAddress,'The field must be a valid email address')»«Rule(Email,hard,(not(contains(Email,',')) and not(contains(Email,';'))),'not a list of addresses.')»

«Rule(Postal_Code,hard,IsUKPostalCode,'Please enter a valid UK Postal Code')»

«Rule(Price,hard,IsRegionalNumber,'EU','The value must be a number in the format 9.999,99')»

«Rule(IDNumber,soft,1 = 1,'do you want to accept the value anyway?')»


Specify whether or not to save the merged document in PDF format.


Sets the initial value for a data element that is to be captured




Set a variable value and remove the paragraph


«SetVr('Balance',GetV('Balance') + RenderAsNumeric(Amount))»

«ChooseFromRDBList(Gender,Male,Female)»«If(Gender = "Male")»«SetVr("PronounHe","he")»«Setv("PronounHim","him")»«SetV("PronounHis","his")»«Else()»«SetVR("PronounHe","she")»«SetV("PronounHim","her")»«SetV("PronounHis","her")»«End()»
«GetV('PronounHe')» took «GetV('PronounHis')» bag with «GetV('PronounHim')»


Add a tab to the main panel of the interview screen

«Tab(Financial Information,Capital,InterestRate,InterestDate,AmountPaid)»


Specify whether Tabs appear Horizontally or Vertically



Insert the current date into the document


«Today('MMMM o yyyy')»



Convert to lower case






Convert to Sentence case



Convert to Title Case




Convert to UPPER case






Provide condition for including small text values (e.g. for gender or plural handling)

«When(Gender = 'M',he,she)»

«When(count(Child) = 1,child,children)»

«When(StartsWithVowel(Fruit),an,a)» «Fruit»

Back to top »


There are many ways to find help with XpressDox, but sometimes you may have an issue and not know how to get passed it. Here are some of the more common troubleshooting questions we get asked.

If XpressDox was showing in your toolbar previously, but is no longer doing so, Word may have disabled the XpressDox add–in. This sometimes happens with Word or Windows updates, or if Word experiences a technical problem, it invariably blames the add–in, and then disables it. See How to re–enable your XpressDox Add–In

If you have just installed XpressDox and it is not showing in your Word ribbon, it is likely that there is some problem with your Word installation. Here are a few things to look out for.

The Starter version of Office comes preloaded with new computers

New computers most often have a Starter version of Office 365 preloaded and sometimes when trying to install XpressDox you might see a message saying that Word is not installed. The Starter version is not a full version of Word so although it appears as though Word is installed, it isn’t. XpressDox cannot be installed in this environment.

The most success we’ve had is to completely uninstall this Starter version and install the full version of Office.

Note however that some Office subscriptions are limited to the online version of Office and will therefore not have the option to install the full version locally. But if this is the case, remember that XpressDox can only be installed onto a locally installed Word version.

De-registering the pre-installed copy of Office

If you are still unsuccessful after trying an XpressDox reinstall, we have had some success with the following steps from Google:

Because many vendor machines come pre-installed with a consumer copy of Office pre-installed, simply de-registering the second version could be a solution. To do this, follow these steps:

  • Navigate to C:\Program Files (x86)\Microsoft Office\Office16
  • Run cscript ospp.vbs /dstatus
  • Search within the results for the “Grace edition” and the “Last 5 characters of installed product key:”
  • Run cscript ospp.vbs /unpkey:[productkey] and then restart the PC

Some background information around this scenario

Even when you login to Office365.com using the user’s credentials to download and install the product, two license keys will be created:

“Office16O365ProPlusR_Subscription1 edition” and “Office16O365ProPlusR_Grace edition”

This happens after Office365 is installed and after you sign in to the first product (i.e. Word, Outlook etc). The Grace key will eventually expire, but will lie dormant for an unspecified period of time. And inevitably it seems will interfere with the credential system, causing issues.

Check the bitness of Office

When installing XpressDox you must install the correct bitness that matches your Office installation, and not your Windows installation. It is possible that you can have a 64 bit Windows installation but a 32 bit Office installation. In that case you would install the 32 bit XpressDox version. Installing the incorrect bitness would result in a missing ribbon.

Once XpressDox is installed you can run the XpressDox Trouble Shooter which you will find on your Desktop. It contains useful information and will display the bitness of Office and of XpressDox. If you are having trouble identifying which version of Office you have, run the Trouble Shooter to check.

Check for conflicting Add-ins

It sometimes happens that other Add-Ins can conflict with XpressDox. Disable your Add-ins and then enable them one by one until you find the conflict. And then a choice will need to be made!

Re-install XpressDox as Administrator

If you are still not having any success, re-install XpressDox, but be sure that your AV is temporarily disabled (yes, we know that’s scary but we have been in business for many years and we have some huge multi-national customers so you can trust us!) and also be sure that you Run as Administrator.

Refresh your Office installation

The next thing to try is to run a repair on Office, and if that also does not work, you will need to re-install Office.

If all else fails

The last resort, if none of these options worked is to re-format and re-load the computer from scratch. Remember that if you re-format all of your information on your computer will be erased and you will need to re-load your information from a backup.

We have noticed this problem in Office 365 after a recent update. Microsoft has fixed it in their latest version so the first thing you can do is upgrade your Office installation. Alternatively you can try the following:

In Word 365, click File and then Options.

Set to Optimise for Compatibility, and then restart Word.

There are a number of possible causes as to why your calculations will not work. If you use EU regional settings, you may need to add «ExpectXSLTFormatNumbers(Yes)» to your template. Another reason your calculations might not work is that you could have mixed up your data elements and variables.

Usually when this happens you have mixed chevron («…») delimiters with angle bracket (<<…>>) delimiters in your template. When XpressDox encounters angle brackets in a template, it ignores the chevrons. This results in no questions showing in your interview. See a more technical explanation

Generally, XpressDox is quite helpful with its error messages. Please read the main part of the error message to see if that sufficiently explains the problem. If not, please email the error text to support@xpressdox.com.

The Choose commands only ask for information if the answer to that question is used somewhere in the template. In its simplest form you will need to insert a fillpoint after the question. For example:

«ChooseFromList(City,New York,Miami,Los Angeles)»«City»

Or you could use the answer in an If command:

«ChooseFromList(City,New York,Miami,Los Angeles)»
«If(City = ‘New York’)»Some text about New York.«End()»

You could also use the CaptureAllDataElements command.

Sometimes there is an If or an End which is missing and it is difficult to find. Normally, XpressDox will do its best to find it for you. But sometimes XpressDox cannot work out where it is. Read the help post on troubleshooting end-else. Generally, you should test you template regularly so that when you do get an error like this you will know where to look for it. It is also an idea to put some descriptive text into your End() and Else() commands so you can identify the culprit. Like this «End(if there is more than one child)». Some coders also put an identification number into the If and matching end, like this: «If(Child > 1) 7»and its end«End(7)»

This happens when there is already an interview open on XpressDox Desktop for Word. You need to close that interview first.

There are a number of ways to control the order in which questions are asked. Normally, XpressDox will ask the questions in the sequence it encounters them in your template. But you can change that, for example by using the CaptureDataElement command which asks the question in the interview, but does not insert the answer in that position into the end document. (The converse of that is the CaptureLater command.) Another good way of changing the order is by using Tab command where you can override the order.

How to Convert HotDocs Templates to XpressDox Templates

Whether you are simply looking for a better–priced alternative to HotDocs, or maybe you want to run your Desktop templates on the Web, XpressDox is a smart choice. Join the growing number of firms who are looking for better value for money!

  • XpressDox is as powerful as HotDocs with over 300 commands
  • Substantially more affordable, with outright purchase and rental options
  • No long–term contract lock in, no up–front cost
  • Highly rated customer support
  • The same template runs on MS Word and the Web
  • Extensive deployment options: Desktop. Server: On-premise or Cloud. API
  • Built–in HotDocs–to–XpressDox converter as standard

Did You Know?
Templates authored in HotDocs can be converted to run successfully with XpressDox.

Why this works

XpressDox allows a user to choose his or her own delimiters. So almost any delimiters can be used by XpressDox as fillpoint delimiters. Fortunately HotDocs and XpressDox use «…» as their default delimiters, and this makes conversions all the more straightforward.

Simple fillpoints

This means that if your HotDocs template has only “simple” fillpoints—that is the fields consist of variable names only within delimiters—then XpressDox can run that template without the need to make any changes to the content of the template. All that would be needed is to save that template as an XpressDox template, and run it.

Save the converted template in XpressDox format

To run a HotDocs template with XpressDox, it must be saved as an XpressDox template. You can save a document as an XpressDox template in one of two ways:

  1. Open the template in Word, and save it using the XpressDox Save as XpressDox Template button in the ribbon or toolbar
  2. Convert an entire folder of documents as follows:
    1. Load the XpressDox Template Author Utilities using the button on the ribbon or toolbar.
    2. Choose the Configure and Convert Delimiters tab on the screen that appears. The screen will look like this:
    3. The third part of that tab is the area where you can designate an entire folder of HotDocs templates to be saved in XpressDox template format. Choose the folder either by typing in the path or using the Browse button.
    4. Optionally select the fillpoint delimiters that are on the existing HotDocs templates (which will be converted to the current Authoring Delimiters, as discussed above, and which are displayed for your information on the conversion form).
    5. If you have chosen to convert text (field) delimiters, then the converter will also, if required, convert the syntax within the delimiters from HotDocs syntax to XpressDox syntax. If this is required, then check the checkbox labelled “Replace delimiters and Convert syntax (first pass). (Please read the article Foreign Templates to XpressDox syntax conversion for more details on syntax conversion).
    6. Pressing Convert will cause all the Microsoft® Word documents in the provided folder to be converted to XpressDox templates.

The variable names in a simple template described above need to be valid XML element names, which will always be the case in some document assembly systems, but in particular might not be the case with HotDocs templates, where spaces are allowed in variable names.

Complex fillpoints

Your HotDocs templates most likely contain simple and complex fillpoints. Complex fillpoints are those that contain formatting instructions, conditional assembly or repeating instructions for example. The syntax of these fillpoints needs to be changed to conform to XpressDox command syntax. To assist with this, the XpressDox Template Author Utilities Convert Current Document’s Fields has some powerful features which will make this task considerably less onerous. This feature is discussed later in this article.

XpressDox does not have the concept of a data element containing a boolean (i.e. true/false) value. This is because the data used by XpressDox are XML, and XML supports only string values. This means that constructs like «IF OPTION1»…«END IF» in HotDocs need to be translated into something like «If(OPTION1 = ‘Y’)»…«End()» in XpressDox. The syntax converter will perform this translation, but needs to be given the "true" and "false" values that should be used, and hence the need to provide these in the converter’s screen.

Converting complex templates

In principle, there is a common set of features that various document assembly systems offer in order to automate the production of standard documents. However, that does not mean that there is necessarily a one-to-one correspondence between features in one system and similar features in another. This means that converting a template from HotDocs to XpressDox is not a simple matter of changing fillpoint delimiters. In any case, as discussed above, XpressDox will work natively with a template marked up with HotDocs delimiters. It is not just delimiters that may need to change, but the content of the fillpoints and sometimes even the basic design of the template and its commands.

The XpressDox utility for converting complex templates is found in the XpressDox Template Author’s Utilities, in the first tab called Convert Current Document’s Fields. The form with this tab visible looks like this:

The following steps are appropriate:

  1. Load the HotDocs template to be converted, into Word.
  2. Load the template converter above.
  3. Choose the delimiters that are required.
  4. Because this discussion is about complex templates, the check-box “Replace field delimiters only (Simple Conversion)” is not appropriate here.
  5. Once the Convert button is pressed, then the converter takes each HotDocs field in turn and presents the contents (stripped of delimiters) in the “Existing field” text box. At the same time, the converter fills the “XpressDox field” drop-down box with samples of what might be used as data element names.
    1. You can choose from the drop down list, or edit the XpressDox fillpoint.
    2. If you choose one of the choices in the "Common Commands and Functions" list, then the converter will take the data element name that is now in the XpressDox field and insert it into the correct place in the chosen command or function.
    3. Suppose in the previous step you choose a FormatDate or FormatNumber but don’t like the format that is provided. You can change that format, and then copy–and–paste it into the Snippets area. Then, in a later field, you can choose that format specifier in the Snippets dropdown and then paste it into the "XpressDox field". In other words, the Snippets area gives you a place to store frequently used snippets of text to be copied into commands at a later stage of the conversion. Even into future documents to be converted.
    4. Once you like the contents of the "XpressDox field", press the Accept button, and the converter goes on to the next field in the HotDocs template.
  6. The converter stores all the "Existing field" values as well as the resulting "XpressDox field" in a "translation dictionary". It stores that dictionary into the folder where the HotDocs template resides. Thereafter, whenever it encounters a field in a HotDocs template during conversion, it looks up the field contents in the dictionary, and presents as a default the corresponding XpressDox field in the "XpressDox field" on the conversion form. This means that after a few templates in a suite have been converted, as long as the original template author was consistent in the naming of variables (now data elements in XpressDox) and conditional commands, etc., then the conversion of templates becomes a question of inspecting the choice suggested for the conversion of a fillpoint, and pressing the Accept button over and over again.
  7. Once a template has been converted, it must be saved as an XpressDox template (with the Save button on the ribbon or toolbar).

XpressDox Author Free Trial

Download a 30–day trial of the XpressDox Author. It's free. No credit card required.

We’ll never share your email with anyone else.

How to Integrate an Interview into your Application (JavaScript or iFrame)

Step 1. Upload the template solution to the cloud

The first step is to design, author and upload the template ‘solution’ to the cloud. Usually a solution comprises a number of templates and supporting files, as in this case.

Step 2. Copy and paste the integration code from the cloud

There should be a particular template that runs your solution. Locate that template within your cloud account. Then click to the right of the template name, and choose the ‘Include in your Page’ option, as shown below. Need a cloud account? Register a Cloud Account free trial.

javascript integration include in your page

Step 3. Include the code snippets in your page

Follow the instructions to select a user profile and configure your results page URL. Then click ‘Show Me How’ for XpressDox to generate the code snippets for you. There are instructions and comments within the snippets to guide you.

javascript integration include in your page

Step 4. View your page

Install XpressDox Server

This document contains instructions on how to install your XpressDox Server. Before you start, please note:

  • We assume you have the authority and rights to add and configure a website on your network
  • We assume you have experience working with website and database configuration in a Windows environment.

Your XpressDox Server can be opened to the internet to allow remote access if required.

Hardware Recommendations

Based on our experience we recommend your own hosted server has these, or higher, hardware specifications. Below is suitable for an environment where there are 30 to 50 concurrent users.

True Server Environment
  • Processor: Intel XEON CPU 1.8 Ghz or faster. 4 Core with Hyperthreading (Minimum)
  • RAM: 32 GB ECC Ram
  • Hard drives: Minimum of 4 Hard drives configured in Raid 10. (Enterprise SSDs are recommended, but Enterprise SAS drives should suffice)
  • Ethernet Connection: 1 GB port or faster
  • Bandwidth: 50 Mbps or faster internet connection (Full Duplex) 50 Mbps Download and 50 Mbps Upload speed. (It will work on slower connections but with degraded performance)
Desktop Server Environment
  • Processor: Intel Core i5 CPU 2 Ghz or faster. 4 Core with Hyperthreading (Minimum)
  • RAM: 32 GB Ram
  • Hard drives: Minimum of 4 Hard drives configured in Raid 10. (Enterprise SSDs are recommended, but Enterprise SAS drives should suffice)
  • Ethernet Connection: 1 GB port or faster
  • Bandwidth: 50 Mbps or faster internet connection (Full Duplex) 50 Mbps Download and 50 Mbps Upload speed.
Virtual Environments
  • 4-8 vCPU (Depending on underlying CPU speed) If 1.8-2.0 Ghz we recommend 8 vCPU’s. With 2.4 Ghz and faster 4 vCPU should suffice.
  • 32Gb vRAM
  • 150 GB Minimum Storage for Operating System and supporting software.
  • 500 GB Storage for XDOX data. These can be on one virtual drive or separate virtual drives, but it is important that the underlying hard drive infrastructure must have at least 6 drives in Raid 10, SSDs are also recommended here.

Software Requirements

  • Microsoft Windows Server 2012, or higher
  • Microsoft .Net Framework v4.5.2, or higher
  • Internet Information Services (IIS) v7, or higher
  • Microsoft SQL Server [Express] 2012, or higher, if XpressDox WinAuth Server or XpressDox Cloud Server (i.e. not XpressDox API Server) is being installed
  • Optional: Access to your Windows network, only if Windows Active Directory user authentication is required

1. Configure Windows Server

Using Server Manager, configure the roles and features of your Windows Server. In addition to the defaults ensure these values are set:

  • Server Role Web Server Role
  • Web Server (IIS) > Web Server > Security, enable Basic Authentication (WinAuth Only) or Windows Authentication (WinAuth Only)
  • Web Server (IIS) > Web Server > Performance, enable Static and Dynamic Content Compression
  • Features, .NET Framework 4.5 WCF Services -> HTTP Activation

2. Add or Configure Application Pool

Using IIS Manager, add or configure an application pool for your XpressDox Server processes. In particular ensure these values are set:

  • .NET CLR version, set to .NET CLR Version v4.0
  • Managed pipeline mode, set to Integrated
  • Identity, select Custom User Account and supply the details of an existing user, or create a new user if required. (If the templates will be stored on a different server to the software)

The selected or created user must have rights to access the XpressDox Shared Settings and XpressDox-configured Shared folders. (WinAuth Only)

3. Add or Configure Website Application

Using IIS Manager, add or configure a website application to host your XpressDox Server. In particular ensure these values are set:

  • IIS Authentication as required – Anonymous Authentication (All Server Versions) and Forms Authentication (Cloud Server Only) or Basic Authentication (WinAuth Server Only) or Windows Authentication(WinAuth Server Only)
  • Optional: Bindings, add https binding only if you require HTTPS access to your XpressDox Server and have an appropriate SSL certificate.

4. Install XpressDox Server Application Files

Run the installation file called [unzipped directory]\Setup-xpressdox-[winauth OR api]-[Vx.x.x].exe. Ensure these steps are taken:

  • Destination Directory, set to the physical path of your website application configured in IIS
  • When the application installation finishes, the Microsoft Office Access database engine installation launches automatically. Install the database engine. This is required by XpressDox Server to use Microsoft Excel files as data sources.

To install a licence key, create a text file [Installation_Directory]\License\XpressDoxServerLicense.lic and paste the provided key into this file.

5. Add or Configure Application Database

Required for XpressDox WinAuth Server OR XpressDox Cloud Server installations

Using your SQL Server database management tool:

  • Run the script found at [unzipped directory]\XpressDoxData.sql to configure your database

6. Configure XpressDox Server

Open HomeConfiguration\DocumentAssembly.config.xml and edit this setting: (WinAuth Only)

  • SharedSettingsConfigurationFolder, set to the path as configured in XpressDox Desktop Author for the Shared Settings Folder

Open Web.config and ensure your preferences are set for these values:

  • Set the ServerUrl property with your domain base url
  • XpressDoxApplicationDatabase, set to the connection string for your SQL Server application database
  • AdministratorEmail, set the email address of your System Administrator (WinAuth Only)
  • Email server settings, set your email server credentials if you require outbound email support
  • Replace all placeholders indicated by Square Brackets to match your desired configuration. A commented explanation text is included above each property.

7. Run XpressDox Server

Navigate to http[s]://[host name OR ip address]/xpressdox/protected/explorer.aspx to launch your XpressDox Server.

If you are using Windows Active Directory to authenticate users on your XpressDox Server, please note:

  • Users sign in to your XpressDox Server using their Windows domain network username and password
  • Your Windows network file and folder read/write permissions are used by your XpressDox Server to allow or deny a user access to files and folders

For further information on any errors, all detail is logged at [Installation_Directory]\logs\XpressDoxApplicationLogging.log


Send support requests to XpressDox Support support@xpressdox.com

Configure a Data Source for a Salesforce Database

XpressDox offers salesforce.com users a simple–to–use Salesforce with Word integration that enables Sales Reps and Managers to populate their documents with Salesforce data automatically. This means that anything from simple documents to complex quotes and contracts can be produced in seconds.

In order to prepare for this integration you need to download and install XpressDox if you haven’t done so already.

You will also need to get a salesforce.com security token so that XpressDox requests for data comply with the Salesforce’s security requirements. Here is more information about the Salesforce security token.

Once you have XpressDox installed, and your saleforce.com user name, password, and security token at hand, you are ready to begin authoring your first template to make Salesforce data available in Word. Follow the tutorial below for step–by–step instructions.

PDF documentHow to use your Salesforce data in Microsoft Word

Install a third party data source

It is possible to export an XpressDox configuration file which contains data source definitions. This exported configuration can then be sent to other interested parties and imported into their own configurations. A typical example is when a data source for a specific data base is created by, say, a system administrator, and this is to be transmitted for installation by someone at a remote branch.
If you have received an exported configuration file with data sources defined in it, and want to import those data source definitions into your own configuration, then here’s how to do it:

    1. Copy the exported configuration file to a known location.
    2. Start the XpressDox configuration utility and browser to the folder which you would like to configure.
    3. In the Data Sources tab of the configuration utility, click the New button in the toolbar (the button with the little green + sign in it)
    4. Select the option “Exit this wizard and …” (see screenshot) and then press the Finish button.

    1. A form will be presented which contains the current folder’s configuration file name, and a list of the data sources in the configuration file, something like this:

  1. Using the Browse button, select the file which you copied in step 1.
  2. A list of data sources in that configuration file will be presented to you – choose the one you want, and choose the option that you would like (typically “Copy the Datasource”) and then press OK.
  3. Pressing OK causes the data source definition to be copied into the configuration you are working with.
  4. Perhaps you will need, or want, to change the name of the data source, in which case do so.
  5. Using the “Use Data Source’s Editor”, make sure the data source definition is correct (e.g. if the data source refers to a data base you may need to modify the connection string).

Upgrading to Version 4

Version 4 of XpressDox (XDv4) represents a major change from Version 3.

The principle change is that the format of an XpressDox template is no longer Word 2003 XML, but Office Open XML. Office Open XML (or OOXML) is the format in which Microsoft Word 2007 and 2010 save their documents – i.e. documents saved with .docx (or .docm) extension. In addition, there are a number of useful new commands and functions introduced in Version 4.

This article presents just those issues which the template author needs to take into account when upgrading to version 4 of XpressDox. For a full list of all the changes in Version 4, please see Version 4.1.0 Released.

Word 2003 and XpressDox V4

If you are using Word 2003, then before upgrading to XDv4 you will need to install the Microsoft Office Compatibility Pack from the web site http://www.microsoft.com/download/en/details.aspx?id=3.

This very useful extension to Word 2003 enables any documents in OOXML format to be opened in Word 2003 and also to saved from Word 2003 (using the “Save as” function). This capability is needed by XpressDox so that it can save its templates in OOXML format.

Word 2007 and XpressDox V4

It is recommended that you make sure your Office 2007 is at SP2 at least (the latest service pack is SP3). This is to cater for issues which occurred in earlier versions of Office 2007 when opening documents created in Office 2010.

Convert Version 3 templates to Version 4 format

This conversion needs to be done because the XDv4 template format is not the same as in Version 3.

The conversion happens fairly painlessly – using the XpressDox explorer, open a folder containing Version 3 templates, and the explorer will suggest that you convert all of the templates in that folder and its sub-folders.

Clicking “Yes” will cause XpressDox to convert the templates to Version 4 format, and will move the older format templates to a sub-folder called Version3Templates.

In addition, XpressDox can be asked to convert all the folders in the Explorer’s Recently Used list – which will probably cover most of the folders that you use which contain old Version 3 templates.

When a template in the “Favourites” list is converted to Version 4 format, there is no automatic conversion of the file name in the configuration where the Favourite is defined.  However, XpressDox will check, when asked to run a “Favourite”, that a new format template exists, and run that if it is there.

XDv4 Template File Extensions

In Version 3 and previous versions, the XpressDox templates were stored with the file extension .xdtpl.  With XDv4, the actual format of the template is Open XML, but the templates are stored with extension .xdtpx or .xdtpm.  This is purely to distinguish them (in the XpressDox and Windows explorers) from other Open XML documents which will probably be stored with extension .docx (and .docm).

During the conversion process referred to above, if XpressDox is converting an old format template which contains VBA macros, it will save that template as a “macro enabled document”  (which is what Word 2007 and 2010 require), and use the extension .xdtpm.

This change in extension might cause problems where a template author has specified the .xdtpl extension in IncludeTemplate or BaseTemplate commands.  If this has happened, then the templates containing those commands will need to be changed.  The best course is to specify only a template file name without extension, optionally qualified with a helper folder alias.  This permits the actual template file to be saved with either .xdtpx or .xdtpm extension, and XpressDox will resolve that at the time it executes the IncludeTemplate or BaseTemplate.

Fillpoint Delimiters

Prior to XDv4, the default fillpoint delimiters were << and >>.  These are now called XpressDox Classic delimiters.  With Version 4, the default fillpoint delimiters for all new installations of XpressDox will be the “chevrons”, i.e. « and ».  This will not affect existing installations of XpressDox.  As before, XpressDox will in any case recognise on a per-assembly basis which delimiters are being used, so that even where a new installation at a site will default to chevrons as the delimiters for authoring, any templates authored (on other workstations) with the XpressDox Classic delimiters will continue to function correctly.


The XpressDox relevance “engine” has been upgraded.  XpressDox will now recognise data elements in various commands and contexts where this was not the case in earlier versions.  This will affect the layout of some interviews, because XpressDox has always used the first occurrence of a data element in a template to determine its position in the interview.  Because data elements are now recognised in more contexts than before, this might cause the position of some data elements to move higher up in the interview.


Data elements referenced in Tab commands will now be used to determine relative position of the data elements in the interview.  As explained above, this means that if the first occurrence of a data element is in a Tab command, this will determine its relative position in the interview.  This might cause data elements to change their position in the interview compared to interviews created in Version 3.  A workaround for this might be to move the Tab commands to the end of the template or assembly.

If, When, Setv:

Prior to Version 4, these commands/functions (and some other contexts) were not scanned for the occurrence of data elements.  With Version 4, data element names inside these fillpoints are recognised and used to determine relative positioning of the data element in the interview.  This might cause data elements to appear earlier in an interview than in previous versions, and might cause a control for a data element to appear when it did not appear at all in an interview constructed in a previous version.  CaptureDataElement, CaptureLater and ExcludeFromIV can be used either to change the position on the interview of a control or to exclude it completely from the interview.

Choose… commands:

In pre-Version 4 XpressDox, commands such as ChooseFromList, ChooseUsingCheckbox, and others (those in the Data Capture category in the Command Editor) would cause the relevant control to appear in the interview, regardless of whether or not the data element being chosen was used elsewhere in the template.  With XDv4 the control will only appear in the interview if the data element being captured is used elsewhere in the assembly.  The command CaptureAllDataElements can be used to cause those Choose controls to appear even where the data element is not used in the current assembly.

Note that the SetInterviewDataOnly command will issue a CaptureAllDataElements command implicitly.

The new relevance algorithms result in a more consistent treatment of placement of controls on the interview. However, there will be some instances when controls are in different places on the version 4 interview compared to the interview created with earlier versions. Don’t worry if this happens, because judicious use of the CaptureDataElement and CaptureLater commands will place the controls exactly where needed on the interview.


«InterviewIsWizard(yes)» (see here) is now implemented in the desktop version of XpressDox.  If there are Tabs defined, then those tabs will now appear in the treeview, where repeated items go.

A pair of navigation buttons will appear inside the interview form to help the user navigate through the nodes of the treeview.

Source Formatting

This feature in the BaseTemplate, IncludeTemplate and InsertTemplate has been improved.  No longer will this cause new styles to be inserted into the destination template.  Instead, the style in the source template is inserted with the same name into the destination, and replaces a same-named style in the destination.

This might have unexpected results because if the style “StyleA” appears in source AND destination, then any and all paragraphs in the destination which are formatted according to StyleA will, after the merge, be formatted with the StyleA from the source template.

Please see Source and Destination formatting in Version 4 for more comprehensive coverage of this subject.

Supervisor Functions

The Supervisor, Template Author and Template Runner (new feature) functions are now controlled via special XpressDox licence keys. The “Supervisor Toolkit” program (i.e. the one which was used to “sign” the supervisor’s home configuration) is no longer needed. The Template Author features are also controlled by the licence which is registered for that user, and no longer requires the user to empower themselves as a template author by specifying a password in their home configuration. If you have been using the Supervisor features, please contact support@xpressdox.com to get more information on these features using Version 4.