Software updates — September 2020

New features

  • ClauseBase now has a versioning system for its clauses and definitions. When enabled in your account, you can create one or more new versions of a clause or definition, and then afterwards easily swap between those versions within Assemble Document. Versions can have their own “version name”, and you can retrieve a list of all versions currently stored. In all other aspects, versions are simply clauses/definitions that behave like you are used to.

    This versioning system is ideal when you for example have to store a legacy version of a clause that got changed due to new legislation. Please be aware that, if you have the right, ClauseBase will continue to allow you to edit old versions.
  • You can now add markup (comments, highlights and strikethrough) directly from within Assemble Document and Q&A. This markup will be preserved when saving, and optionally print. Different users can add cascading comments.
  • You can now send Q&A answers and Documents/Binders to colleagues. These colleagues will then receive the document/binder/answers in a personal mailbox that is visible on the homepage.
  • The homepage has been changed to show both a general mailbox and personal mailbox where messages and documents/binders/answers can be sent to.
  • The assemble document, design Q&A and edit Q&A pages have been changed. When no item is opened, they now show an overview of all available items and recently opened/saved items.
  • You can copy and paste in bulk various elements (attributes, concept-labels, cross-tags, datafields, description, comment, custom style) from a source file to one or more target files.
  • In both Q&A and Assemble Document, you can now activate a feature “highlight data in datafields” which will highlight (in a cyan background) datafields that were filled in. As this will also export to Word/PDF, this can support reviewing processes.
  • ClauseBase now highlights in the left margin whether a clause contains:
    • No datafields or conditions. Such static clauses will have a white left margin.
    • Only placeholder-datafields, i.e. datafields that can be filled in, but will not change the structure of the clause. Such datafields will have a yellow background, and the left margin will be light blue.
    • Datafields that are used within conditions to modify the clause. Such datafields will have a light purple background, and cause the left margin to be light purple as well.
  • Under the miscellaneous panel of Assemble Document, a new uncover panel is added. It will dissect the currently selected clause, and show which text parts are currently shown or hidden using red/green/purple color codes.

    When the user hovers his mouse over the info-icon at the right side, a popup will appear that explains why that is currently visible or hidden. In addition, when logically possible, the icon can be pressed that will immediately toggle the visibility of that text part.

    This mode is particularly useful for non-clause authors who want to quickly understand how a certain clause can be transformed. When users spot a clause with a light purple left margin, they can select it and play with the uncover functionality.
  • ClauseBase now allows you to search on keywords within a document/binder of Assemble Document, Design Q&A or Q&A. This search is better than the browser’s built-in search-functionality, because it only searches within the document itself (and not within other user interface controls that happen to be visible), also searches across different sub-documents (instead of only the visible sub-document) and gives a small preview of relevant snippets.


  • You can now set the locale styling to always round all fractional numbers / currencies.
  • ClauseBase now hosts more than 30 different currencies.
  • You can search for images in the various file browsers.
  • The following Google fonts were added: Lato, Lora, Montserrat, Noto Sans, Noto Serif, Open Sans, Robot and Source Sans Pro.
  • In an action button, you can now define that the newly inserted clauses must be inserted as an (indented) sub-clause of the selected clause.
  • When you misspell a datafield-name, the software will now suggest the correct spelling (and allow you to immediately insert that spelling).
  • You can bulk-edit the concept-labels from within the terms pane.
  • The software will now suggest how to correct misspelled datafields:
  • A new definition styling feature is added that avoids capitalisation if a defined term does not have a definition attached to it. This is particularly useful for short contracts where commonly used terms (“contract”, “duration”, “party”) will not always receive a definition in the definition list.
  • Q&As now have an option to enable “export as separate subdocuments” by default, if the Q&A covers a Binder.
  • In the terms panel, you will now get a warning when no definition list is present in the document. If a definition list is present, you can immediately scroll to it on the left side. If multiple definition lists are available, then you will get an exhaustive list.

  • In the popup-menu of the terms panel of Assemble Document, two new options are added that allow you to either remove all definitions at once, or to set all terms to “don’t show a definition”.

New special functions

  • The @fullycurrency function will spell out a currency-value in full words, in the correct language. For example, @fullcurrency(123.456 CNY) will be printed as “one hundred and twenty-three yuan and forty-six jiao.
  • The @has-definition special function allows you to check whether a certain concept has any kind of definition assigned to it.
  • The @has-autonomous-definition special function allows you to check whether a certain concept has a “real” definition assigned to it (as opposed to an integrated definition).
  • The @has-integrated-definition special function allows you to check whether a certain concept has an integrated definition assigned to it (as opposed to an autonomous definition).
  • The @hides-definition special function allows you to check whether the definition for a certain concept is deliberately hidden.
  • The @definitionlist-present special functions allow you to check whether a definition-list is inserted into the document/binder.
  • The functions @refs-if-and and @refs-if-or function like @refs-and & @refs-or, respectively, but do not show any invalid references.
  • The @void function results in nothing, but is nevertheless useless in those situations where you technically have to insert something to comply with the technical grammar, but do not want anything to actually show up in the document. In practice, this can for example be used to create the following structure, where you do not want anything to show up next to 1. (without the @void, the 1. would simply be ignored by ClauseBase because that paragraph is actually empty, so that the subclauses would be inadvertently moved one level up).
  • The @filter and @filter-indices functions filter a list of elements using a logical expression.
  • The @filter-by-indices function filters a list on the indices present in another list.
  • The @for function generates a list with a variable number of textual elements, similar to how a for-loop in a regular programming language functions.
  • The @trim function removes whitespace from its text-argument.
  • The @matches function checks whether text matches a certain pattern with * and ? wildcards — e.g. @matches(“Alpha Beta”, “alpha*”) returns true. The @strictly-matches performs the same function, but takes into account capitalisation and spacing.
  • The @length function returns the number of characters in its text-argument (taking into account whitespace).