Early on in my career as a HotDocs developer, I asked myself, “How can I set it up so that the user can enter a list of names and addresses and such at the beginning of the interview and then make selections from the list without having to retype what he or she has already entered?” So over time I came up with a system that does just that. I call it the “Indexed Data System.” I’m happy to report that I’ve been able to code hundreds of templates with great success using this system, and I’m pleased that the folks at HotDocs have given me an opportunity to share my techniques with the developer community.­­

What Is the Indexed Data System?

The Indexed Data System is an innovative collection of HotDocs coding techniques, which provides a convenient and useful alternative to conventional methods of inputting, storing, and selecting data in interviews and merging the data into HotDocs templates. All coding is done in HotDocs; there are no “hacks,” add-ins or external software involved, and it is relatively simple for an intermediate-to-advanced developer to set up.

This 4-minute YouTube video  (best viewed in full screen HD mode) will give you an idea of how the system operates from the user’s perspective.


Advantages of the Indexed Data System

The convenience of this system from the user’s perspective is immediately evident, but the system also has some nice perks for developers:

  • It can dramatically reduce the number of variables that the developer needs to create for a template or template set.
  • Each dropdown variable operates independently, so the developer may group as many as needed on a single dialog. (A dropdown variable is just a specialized multiple choice variable used to select names during an interview.)
  • Allows the developer to filter and/or sort the list of names displayed by a dropdown variable using simple or complex criteria. For example, you may have one dropdown that displays only children and another that displays only organizations that are charities.
  • Since all data is stored in the answer file, there is no need to establish connections to external databases.
  • If desired, the developer may import and combine data from one or more external data sources (such as databases, Excel spreadsheets, and Outlook contacts) into the Indexed Data System and use all such data in a unified way.


The Indexed Data System relies on the order in which names are entered at the beginning of the interview. If, after entering names and making selections, the user then deletes, inserts or moves names up or down in the list, it may throw off any selections that were made by the user. (Adding names to the end of the list at any time does not cause problems.) Thus, developers should alert users to avoid changing the list order after they have already made selections. (I’ve developed a version of the Indexed Data System that is independent of the list order, but that’s still in the testing stage.)

Another thing to consider: this system works best for lists on the order of 100 names or fewer. If you will be working with larger lists, it may have a perceptible effect on assembly speed, so you should run some tests and weigh the benefits and performance of this system against the built-in database capabilities of HotDocs.

More Information

So there you have an introduction to the Indexed Data System. If this is something that is of interest, I invite you to visit my HotDocs blog, where you will find step-by-step instructions for implementing a system, as well as a link to a sample template to get you started.


About Lee Knight

Lee Knight Consulting, based in San Diego, CA, provides expert document automation services based on the HotDocs platform. Services include complex HotDocs template and interview development, HotDocs API programming, and integration of HotDocs with Microsoft Office applications. Lee Knight has been developing HotDocs systems since 1999.