A Word on Styles – The Last 30 Minutes in Document Production

Deep in the midst of a CAPSAuthor Conversion and a HotDocs template rebuild, I had a chance to reengage with Word Styles.  I was explaining to my client that part of the rebuild involved the creation of a custom styles template for their entire suite of documents.  In one instance, when the client pointed to a visual discrepancy to some paragraph, I opened the template and assigned the paragraph to a different paragraph style.  In another instance, I opened the stylesheet, changed a style definition,and then pushed out the new definition to 20 templates.  What would have been an hour or so of work to edit the templates, or 15 minutes cleanup on every assembly, was eliminated in under a minute.

Read moreA Word on Styles – The Last 30 Minutes in Document Production

Easy Case Management & Technolawyer

A recent series of posts on Technolawyer, titled “Legal Software and Consultants” troubled me.  In this series, Mark Deal, Ay Uaxe, and Jason Havens spared on the role of legal consultants in implementing case management solutions. There was a touch of resentment on both sides.  On one side, the lawyers (of whom I count myself), look to their extensive education, their extensive domain knowledge and work experience as qualifiers in the world of software design and process.  It should be “easy”; it should be “cheap”; and anyone can do this stuff; it’s not rocket science.  Why don’t those vendors understand?  Why don’t they anticipate and design for my needs. On the other side are the legal technology consultants who have spent years studying the software tools, designing solutions with the software, and implementing and training. Many serve in defacto advisory capacity to software vendors, fielding feature requests and reporting on bugs. 

Read moreEasy Case Management & Technolawyer

Template vs. System Design

Over the years of working with HotDocs we have encountered many issues with the basic design of HotDocs, client requests and what not, that have required creative solutions.  And in so doing, we have changed our approach from one that centered around “documents” to one that centers around data and workflow.  In so doing, we have substantially changed the way that we code in HotDocs, using methods and approaches that arise from other coding languages and programming principals.  We have found HotDocs to be flexible and powerful enough to support, for example, the use of common elements across multiple templates, use of templates as reusable objects, using local and global variables, internal databases, and dynamic indexing and cross-references.  Such features are not required for basic template design.  However, there use leads to more user-friendly interviews, more dynamic data entry, and the ability to design templates and interviews that reflect and respond to the data input.

Read moreTemplate vs. System Design


The DECREMENT and INCREMENT instructions are relatively new to HotDocs and they serve identical, but reversed purposes.  DECREMENT will reduce a given number variable by one, whereas INCREMENT will increase by one.

These two instructions are most useful in conjunction with WHILE and REPEAT instructions.  Lets say we are doing some real estate templates and one of the templates is ONLY required where there are one or more corporate borrowers. To do this, we could just use a TF variable that is set to TRUE if there is at least one corporate borrower, but that isn’t as useful as knowing exactly how many corporate borrowers we have.  Making MORE specific information available to your system is nearly always better than “the shortest approach”.

SET BORR Corporate CNT TO 0 //our var to store how many corporate borrowers
IF BORRS Corporate TF = TRUE //a checkbox on the dialog if the borrower is a company

And that’s it.  At the end of this, BORR Corporate CNT will contain the number of corporate borrowers we have.  The same usage would apply in a WHILE statement, except that in a WHILE loop, it is nearly always imperative that you have an INCREMENT (or DECREMENT) statement.  The reason for this is that REPEAT will auto terminate when you have finished the repeated answers whereas WHILE does not – YOU must manually code that ‘cut out’.  And that’s where INCREMENT comes in.

At the end of the day, INCREMENT and DECREMENT could already be achieved in HotDocs scripting as follows:

INCREMENT: SET Variable NU TO Variable NU + 1
DECREMENT: SET Variable NU TO Variable NU - 1

Both of these would work. But these two new instructions are cleaner and easier to type.  And lets face it – convenience and clean code are pretty cool things to have.

Twitter Twitter Twit … What is in a Twit

I have recently noticed a number of attorneys and software vendors getting “Twitter” personas … see www.twitter.com. So I got one for myself.  I can be reached via @bashasys.  I had a long drive up to Montreal with time to kill on my new Blackberry Storm (Rose was driving).  And so I enrolled in Twitter and began to Twit (yes… that is a new verb that I cannot claim credit for). And here are some of my thoughts after a week of Twittering.

Twitter, for those who don’t know, is a hybrid of “texting” (or using cell phones for Text messaging) and Blogging.  It is texting in that it limits all posts or messages (aka Twits) to 140 characters.  For people like me who can barely keep a sentence under 140 characters, such limits can be crippling. The message box for Twitter is titled “What are you doing”.  And so the initial inpulse is to answer the question.

Note my early posts on my drive to Mont Tremblant:
# Bilingual jokes á Le hotel de ville and 30 degrees below zero … Celsius 4:26 PM Feb 15th from TwitterBerry
# Lost to my son in the brain activity game … Can move the ball with alpha waves 12:06 PM Feb 15th from TwitterBerry
# 30 degree below zero Celsius in downtown Montreal 12:04 PM Feb 15th from TwitterBerry
# Just got through the border crossing … They speak French here 4:03 PM Feb 14th from TwitterBerry
# All stop… Just arrived at the Canadian border. Do they still have borders 3:05 PM Feb 14th from TwitterBerry
# How to build self organizing systems for practice management ….with a simple memo field. All in the markup and the interpreter. 12:52 PM Feb 14th from TwitterBerry
# More snow as we get closer to Montreal

Others have taken to use Twitter to announce product developments, links to interesting articles, and business gossip. Take a look at posts from RocketMatter, a cloud based case management system:
# @adamr Brilliant move. Even more brilliant would be sending a new Kindle 2 to me as well. about 22 hours ago from TweetDeck in reply to adamr
# @TheHRLawyer I would agree. Most theft is low-tech, not high-tech. Overwhelmingly so. Thanks for reading! about 22 hours ago from TweetDeck in reply to TheHRLawyer
# Get an understanding of this murky “Cloud” thing. See “The Cloud” Explained, Part 1 of 2 at FindLaw.com: http://is.gd/ky96 about 22 hours ago from TweetDeck
# @RonJeffries Find you where you are – usually at Panera Bread with Chet, no? about 22 hours ago from TweetDeck in reply to RonJeffries
# @claxtonlegal Rocket Matter does not make you sign a yearly contract. Pay per month and cancel anytime. 30 Day $$ back guarantee. about 24 hours ago from TweetDeck

Ross Kodner chooses to use this as a links exchange that primarily announces posts on his blog:
# Ross Ipsa Loquitur: All a Twitter About OutTwit: While I’m personally still baffled abo.. http://tinyurl.com/bzw3b9 10:10 AM Feb 7th from twitterfeed
# Ross Ipsa Loquitur: Coolest Demand Letter Ever: Just ask El Paso lawyer David Ferrell who dem.. http://tinyurl.com/b4qtwe 10:10 AM Feb 7th from twitterfeed
# Ross Ipsa Loquitur: No Longer a SkyFi Virgin! Now a Member of the 7 Mile High Club!: Yes, on .. http://tinyurl.com/bbtbxm 10:10 AM Feb 7th from twitterfeed
# Ross Ipsa Loquitur: 12 of 14 . . . No, it’s Not a New Star Trek Character: No, it’.. http://tinyurl.com/adyubj 10:10 AM Feb 7th from twitterfeed
# Ross Ipsa Loquitur: The Inauguration Live!: See it unfold live at www.hulu.com! Wow! May God .. http://tinyurl.com/9p8gdh 11:12 AM Jan 20th from twitterfeed

So what should I do with Twitter?
Who is my audience?
Send me a twit to @bashasys

For now, I will keep the personal twits down …. I do not have papparazzi on my trail, nor ever will.  If you do what to follow me, you have to ANNOUNCE yourself and request permission to follow.  That may be “unfriendly” of me, but I do want to know who my “friends and followers” are.  Further, I will strive to come up with something interesting for that millisecond you review my twit … and maybe links to my more extensive ramblings.



The HotDocs DEBUG instruction model is very simple, very powerful and very clear about its use.  DEBUG is used to…well, debug!  If you have templates or computations that are producing unexpected or incorrect output, using the DEBUG instruction may get you back on track just a little quicker.

There are two uses of DEBUG – in templates and in scripts (both Dialog scripts and computations).  Both uses have a very similar effect.

By placing a DEBUG instruction in your template or script, you tell HotDocs to display the Debugger screen.  With the debugger, you can manually step through a script or template while viewing extremely detailed information regarding each variable’s value.  You can add variables to watch lists, “step” the script (ie: manually tell HotDocs to progress the script line by line) and watch the variable values change with each step.  Using DEBUG, you can quickly identify what data is coming in/going out and what data is changing.  This will allow you to track down any errors quickly, as you can not only assess each computation or variable, but also the variable values that went into creating the problematic data.

Additionally, the Debugger contains a processing stack tab.  This is a sequential list of templates and components to be processed, in order.  It will also give you the reason as to WHY HotDocs has a particular item in the queue.

In the most general sense, the Debugger gives you a real look under the hood as to exacty how HotDocs is handling/treating your code.  This is invaluable if you simply cannot make your code produce the correct content.

Deciding on a Practice Management System: The Three Lists Method

By this point, most law firms and businesses have automated to some degree. Few offices still depend on the typewriter and the paper calendar. Word Processors, MS Outlook and some form of billing program can be found in most, if not all, offices.

Lawyers, paralegals and businesses are ready to move to the next level. The most important thing to determine, of course, is which is the most efficient and cost effective move to make.


I often receive inquiries that go something like this: “I’m looking for some software for my office. My office has gotten to the point that I really need to get things more organized. It takes forever to find information on a client. It is also taking us far too long to create documents and get them out the door. We’re losing money on client work. In fact, I’m having a hard time keeping track of my billables and I’d really like to get a handle on how long it is taking my staff to do certain tasks and how to speed them up. If possible, I would like to be able to increase my business without having to hire new staff.”

When I hear this, the first thing that springs to mind is that what they are looking for is really three different types of software: (1) Case Management, such as Time Matters, Amicus Attorney or PracticeMaster, to organize their matter data, documents and case notes; (2) Document Assembly software like HotDocs to more quickly create quality controlled documents like Wills and Real Estate Contracts. And (3) a good billing program to track time and invoice clients.  The question that also springs to mind is: “Do they need all of these all at once?”

It is natural to want it all at once. However, the cost f such an implentation and the disruption of a wholesale transformation may undermine the very value of such action. It is far better to prioritize – both areas of frustration and desire. That’s why I always ask my prospects to make three lists.


I ask them to list, in order, the five to ten things that are happening in their office that are driving them up the wall.  For some people, its “I am so frustrated
because when I have a paralegal or a junior attorney create a document, I often spend more time revising it than it would have taken to do it myself.” Or, “I am so frustrated because I have such a hard time tracking phone calls and other items that I know I should be billing.”


This is your dream list. These are the things you wish you and your office could do that would make it into the model office of your dreams. Such as “I wish that I had an easy way of accessing, from my desktop, all of the information I need on a client. Then when they call for advice or a case update, I could tell them everything they need to know instantly instead of having to send someone to look for a file and flipping around in it.”


This in some way overlaps with the first two lists and is not completely necessary but it is a good exercise in office psychology and basic venting.  In the heat of the moment, you may cry out “There’s got to be a better way” – to prepare documents for real estate closings, to track estate assets, to communicate with other firms on document changes, etc.


Now, put your lists side by side.  Do most of the items have to do with billing, document preparation or general office organization?

  • If most of the entries have to do with billing, start there. Possibly, your greatest need is a well set up billing program like PCLaw, TABS or even Quicken and the services of a specialist in that area.
  • If most of your frustration lies with lack of organization, it might be time to look into a Office/Case Management system, like Time Matter or Amicus Attorney, that can help you organize your data on the computer.
  • On the other hand, if getting any document out the door is a slow and tortuous process, HotDocs might give you the best initial bang for your tech buck.
  • Or, possibly, your biggest issues involve none of the above. Maybe, your greatest area of frustration is computer crashes or other hardware issues and not a software issue at all. In that case, you must address this issue before investing in the newest software.

This is something that I cannot urge too strongly.  Before you invest in any of these great software programs, you need to be aware that they can take a toll on computer memory and performance. Putting wonderful, memory intensive software on a clunky, obsolete computer will only result in additional frustration, software returns and many, many bouts of misdirected cursing.

Use the three lists methods to get a handle on your real tech needs. A ounce of foresight can avoid pounds of future regret.  NOW, you’re ready to give us a call.


A very brief HotDocs tip today – the CONCEAL and OMIT instruction models.  These two commands make working with HotDocs dialogs as answer sources a little cleaner and easier for users to work with.

In short, CONCEAL keeps a variable from showing in the “Select from Answer Source” dialog – it is simply hidden from the user, allowing for the more meaningful fields to be shown only.  OMIT does a similar thing, but hides a variable from the user in the “Edit Answer Source” dialog box – again, allowing only the meaningful fields to show to the user.

These two commands go hand in hand to pare down information that displays in dialog answer source manipulation.  Rather than trying to show an example, these two commands are best “tinkered” with on a case by case basis.  If you want to try something cool, try using dialog answer sources in a scenario where only ONE variable is not CONCEALed.  The variable still showing should be an identifier, such as a name or similar.  That way, a user will simply see a nice drop down to pick from and all the other data will ‘appear out of nowhere’ – just like magic!

This stuff is super simple and takes about 10 minutes to master.  Play around with dialog answer sources, CONCEAL and OMIT – it may actually be FUN.


Unfortunately, the CLEAR instruction model doesn’t really have any use on its own.  Its job is simple: to remove all the options and option prompts from the specified multiple choice (“MC”) variable.  That’s it.  When used in conjunction with the ADD instruction (which adds options & option prompts to a specified MC variable), you end up with a pair of commands that can dynamically build MC variables on the fly, based on whatever data you desire.

For the sake of this example, lets say we are drafting real estate documents.  We have BORROWERS RPT, which collects information on…well, borrowers!  We have BORRS Full Name CO which constructs the full name of each individual borrower (ie: can only be used inside the repeat).  Lastly, we have BORRS Guaranteed MS, which is a multi select MC variable which asks which borrowers have guarantors.  Here’s how we’d build our BORRS Guaranteed MS variable:

ADD "«BORRS Name Full CO»" TO BORRS Guaranteed MS

That’s it.  We firstly clear the MC variable, then inside an ASK NONE/ASK DEFAULT pair, we add the full name of each borrower to the MC variable.  The user may now select borrower names from the MC variable for insertion into the template.  In conjunction with the list format applied to the variable, you can quickly and easily generate user-specified lists of any data from any repeat you have in your system.

There are far more uses for CLEAR/ADD, but this covers what we consider to be the most useful one.


One of the cooler instructions is the ASSEMBLE command, which allows you to queue up a template for assembly in HotDocs.  When it comes to assembling individual documents in packages/batches (as opposed to a template package in a single document output), assemble is the only way to fly.

The syntax is easy enough:

ASSEMBLE "FileName.ext"

The true power comes from being able to conditionalize the ASSEMBLY command, as well as apply command switches to the ASSEMBLE command.  Imagine that you are drafting a Will or similar document for a client.  You could have a multi-select multiple choice variable (WILL Docs Additional MS) that asks what additional documents you wish to draft after the will.  You could then have something like:

IF WILL Docs Additional MS"Cover Letter"
ASSEMBLE "WillCoverLetter.rtf"

IF WILL Docs Additional MS = “Trust Deed”

IF ANSWERED ( WILL DEED Exec to Trustee TF ) AND WILL DEED Exec to Trustee TF

WILL POA Exec to Trustee Duplicator CO //duplicates data from executors in will to deed trustees – run before assembling
ASSEMBLE “POA.rtf /ni” //no interview – Trustees uses same Will executors!


ASSEMBLE “DeedOfTrust.rtf” //use interview as the trustees are different


Between optional use of command line switches, and optional additions of templates to be assembled, the ASSEMBLE command offers a very flexible way to build packages of documents on the fly, based on interview choices.  Many times, this is far more flexible and easier to build than master templates that actually contains 10 or so templates inside it.  Certainly, where a firm wishes to individually profile each document in their DMS, ASSEMBLE is nearly always the right answer.

Final note: you can use the ASSEMBLE instruction directly in templates, inside or outside IF statements – it works the same way you would use INSERT, but with the difference of assembling a separate document, not an ‘in-line’ document.  For basic ASSEMBLE usage, this is fine.  But if you’re writing conditions around them, it is nearly always more elegant and easier to work with in a computation (and quicker for HotDocs to process!).