Variable Manifest Overview

This documentation refers to version 4 of the variable manifest. Previous versions did not provide information on the dialog structure of the interview. If re-uploading templates originally uploaded with an earlier version of Author, ensure all templates are tested before making them live in HotDocs Advance.

The variable manifest provides metadata about variables and dialogs used in a HotDocs template. This metadata enables integrators to determine the context of each variable, including its location within the dialog hierarchy and whether it appears in repeated dialogs.

HotDocs Author automatically generates the variable manifest when you upload a template to HotDocs Advance, as part of the template package. You can then access variable manifest data from the uploaded package using the HotDocs Advance API.

You use the variable manifest to:

  • identify which variables are answerable in an interview.
  • understand the dialog structure of the interview.
  • determine the context of each variable within repeated or nested dialogs.

Only variables that are referenced in dialogs are included in the manifest. However, variables used exclusively in computations may still appear.

Manifest Structure

The manifest is a JSON file containing two main sections:

  • variables: a list of answerable variables present in the interview.
  • dialogs: a list of dialogs present in the interview, including their structure and contents.

Variable Object

Each variable object includes the following properties:

Property Type Description
name string The name of the variable.
type string The variable type, for example textVarType
parentDialog string The name of the dialog that contains the variable.
title string A user-friendly label, taken from the Title property of the component.

Dialog Object

Each dialog object includes the following properties:

Property Type Description
name string The name of the dialog.
parentDialog string The name of the parent dialog, or null if it is a top-level dialog.
childDialogs string array A list of child dialog names.
variables string array A list of the variable names contained in the dialog.
maxRepeatDepth integer Indicates whether the dialog is repeated. A value of 0 indicates the dialog is not repeated.
title string A user-friendly label for the dialog, taken from the Title property of the dialog component.

In some cases, the title may be dynamically generated using a computation or another variable. These titles typically contain HotDocs markup, such as <<VariableName>>. If the title value contains << it should be treated as dynamic and may not resolve to a meaningful label outside the HotDocs interview. In such cases, ignore the title and use the name property as the display label.

Table Variables and Fixed Tables

Templates may include Table Variables or Fixed Tables, which are used to represent structured, tabular data. These tables can contain multiple columns and rows, and may or may not designate a key column.

For example:

{
	"name": "exampleTable1",
	"type": "RecordList",
	"title": "An example table",
	"tableOptions": {
		"columns": [{
				"name": "exampleTextVariable",
				"type": "Text",
				"isKey": true
			}, {
				"name": "exampleTrueFalseVariable",
				"type": "TrueFalse"
			}, {
				"name": "exampleNumberVariable",
				"type": "Number"
			}, {
				"name": "exampleDateVariable",
				"type": "Date"
			}
		],
		"rows": []
	}
}

Example Manifest

{
  "variables": [
    {
      "name": "MyTextVariableName",
      "type": "textVarType",
      "parentDialog": "dialogName",
      "title": "Variable Title"
    }
  ],
  "dialogs": [
    {
      "name": "dialogName",
      "parentDialog": null,
      "childDialogs": [],
      "variables": ["MyTextVariableName", "MyTextVariableName 2"],
      "maxRepeatDepth": 0,
      "title": "Text Variable Dialog Title"
    }
  ]
}