How to: make automatically numbered annexes or schedules

In many documents, annexes/schedules must be added based on certain options or clauses being chosen in the main body of the document. A good example would be a consent form annex to a share transfer agreement, which is what we will be implementing here.

We want the consent form to be included if the share transfer agreement contains a clause requiring a consent form to be included. The annex must also be included if the target company is a company type to which transfer restrictions apply by law. For this latter category, we will take as an example the Belgian law BV/SRL (besloten vennootschap/société à responsabilité limitée).

To avoid cluttering your production account, it is advisable following these steps in your ClauseBase Sandbox account. If you do not have such Sandbox account, please contact your administrator.

Starting materials

Prior to starting this tutorial, please create the following concepts if you do not have them yet:

  • #buyer, concept label buyer
  • #seller, concept label seller
  • #company, concept label company and datafield named company-type with one predefine: BV/SRL
  • #agreement, concept label agreement

Make a clause with content title “Consent” and the following content body:

1. On the date of #°agreement, #seller will provide #buyer with the consent letter in the form as attached hereto as Annex Form of Consent Letter.

Create a new document with document title “Share Transfer Agreement”. The document title can be configured under the document pane of the Assemble Document operations panel.

Create another document with document title “Annex Form of Consent Letter”. While in a real situation we would add clauses to this document, for the purposes of this tutorial we will leave it empty.

Creating a binder

In order for the end user to be able to generate several documents in one go (even having the option to create separate Word files or PDFs), we have to include these documents in a binder. A binder is created by holding Shift and clicking in the top right corner. Go to the binder pane and add both the Share Transfer Agreement and the Annex Consent Letter using the button.

The Share Transfer Agreement will function as the main body so we can check the option under the Share Transfer Agreement document.

Making the annex conditional

How can we make sure the annex only appears when required? As a reminder, these are the conditions on which the annex should appear:

  • the consent clause was implemented; or
  • the company type of the target company is BV/SRL.

In ClauseBase grammar, the second condition is easy to implement: {#company^company-type = "BV/SRL"}. But how can we implement the first condition?

There are two ways of doing this. Either we add an “implements” link to a concept to our clause, or we add a cross-tag. The Cross-references article provides some guidance on when to use the link and when to use cross-tags. For the purposes of this tutorial, we will be using a cross-tag.

Edit the “Consents” clause you created in the beginning. Navigate to cross-tags in the navigation menu on the right. Add “consent-required” as a cross-tag and press Enter.

To make the annex subdocument conditional on the clause with the cross-tag being included and visible in another subdocument in the binder, we can make use of the @crosstag-implemented special function. This function takes a cross-tag and checks whether the document or binder contains a clause (that is currently visible) with such cross-tag. If it does, the function returns true. Else it returns false.

Let’s implement this. In the binder pane, edit the Annex Form of Consent Letter document properties. You can do this by clicking the button under the advanced heading. Now we can edit this subdocument’s properties. Go to enabled? in the navigation menu on the right and write the condition using the @crosstag-implemented special function. It will look like this:


In the enabled? section, conditions are written without curly brackets. As this section can only contain conditions, curly brackets are not needed.

However, we want our other condition (i.e. the company being a BV/SRL) to trigger the annex as well. How can we combine both of these conditions? We can make use of ways of combing conditions: AND, OR or NOT. Consider which one we want to use here.

As either of our conditions should trigger the annex, we will make use of OR:

@crosstag-implemented("consent-required") OR #company^company-type = "BV/SRL"

Cross-reference to the annex

We also want to be able to refer to the annex dynamically in our clause. We can do this by using cross-tags as well (or, again, by creating links). Let’s add a cross-tag to our annex subdocument: “annex-form-of-consent-letter”.

Now how do we refer to the subdocument in our “Consents” clause? We make use of the § symbol. Let’s implement this in our clause:

1. On the date of #°agreement, #seller will provide #buyer with the consent letter in the form as attached hereto as §annex-form-of-consent-letter.

Document title in cross-references

Full or short title

Under default styling settings the clause text will refer to the annex using its short document title, if there is one. If you have not chosen a short document title, the full title will be used. We can make ClauseBase always use the full title by going to the styling pane of the operations panel. Under the tab “references”, you can choose what cross-references look like by changing this setting:

However, let’s keep this setting as it is – using the short title.

Subdocument numbering

One final tweak we can make is giving our subdocument dynamic numbering. Let’s assume our agreement can contain more than one annex. In such case, we will want to number our annexes. But the numbering should of course adapt automatically to annexes being added/deleted. There’s an easy way of doing this in ClauseBase.

ClauseBase’s placeholder for dynamic numbering of document titles is {1}. Add {1} to the document title you use for cross-references. In your document, {1} will be changed to the actual number of the relevant subdocument in the binder.

There you go – you have now made a binder of two documents where one document will be enabled based on one of two conditions being fulfilled in another document. In practice, these conditions can be anything you want them to be. And you can use more complex combinations of conditions as well. Good luck!

Was this article helpful?
How to: create a list with both predefined options and free input
How to: reuse any clause in a different context