LogoLogo
ClausesDatafieldsSpecial FunctionsStylingQ&AAPI
  • Welcome!
  • Getting started
    • What is Clause9?
    • Structuring your clause library
    • Structuring your clauses
    • Drafting modes in Clause9
    • Creating a questionnaire
    • Sample clauses
    • Videos
      • Concepts and datafields
      • Conditions
      • Q&As
      • Binders
      • Styling
      • Enumerations
      • Tables
      • Definitions
      • Snippets
      • Cross-references
      • Special functions
      • Examples of common clauses
      • Import clauses from MS Word
      • Grammatical conjugations
      • Action buttons
      • Alternative clauses
  • Assemble document
    • Document toolbar
    • Clause hierarchies
    • Focus Mode
    • Bulk generation of documents
    • Exporting documents
    • Assemble Document - FAQ
    • How to: Assemble Document
      • Insert images
  • Assemble Document Operations Panel
    • Operations panel
    • File pane
    • Edit pane
    • Document pane
    • Binder pane in the operations panel
    • Search pane
    • Browse pane
    • Terms pane
    • Data dashboard
    • Advanced pane
    • Styling pane
    • Miscellaneous pane
    • Visibility settings & actions menu
  • Binders
    • Binders: general
    • Styling cross-references to subdocuments
    • Global and local definition lists
    • Document and binder properties
    • Styling of a Binder versus subdocuments
    • (Un)locking documents in a binder
    • Binders - FAQ
    • How to: binders
      • Make a subdocument in a binder conditional
  • Clauses
    • Introduction to clauses
    • Clause structure
    • Grammar sheet
    • Writing conditions
    • Examples of conditions
    • Using codes instead of text fragments
    • Bold, italic and underline
    • Special codes
    • Enabled?
    • Links
    • Cross-references
    • Introduction to tables
    • Deviating table styling
    • Shrinking clauses
    • Action buttons
    • Enumerations
    • File position
    • Snippets
    • Parameters
    • Conjugations
    • Mixing data types
    • For-loops
    • Clause versioning
    • Abstract article references
    • Advanced multi-language features
    • Clauses - FAQ
    • How to: clauses
      • Create an ad-hoc clause
      • Create a library clause
      • Make a clause repeat
      • Make a paragraph within a clause conditional
      • Use a shortcut to refer to a concept
      • Insert a line break or page break
      • Creating a list with both predefined options and free input
      • Defining alternative clauses
      • Creating cross-references
      • Creating signature blocks
      • Creating advanced party introduction clauses
      • Automatically numbered annexes or schedules
      • Reuse any clause in a different context
      • Setting MS Word document properties
      • Add action buttons to clauses
      • Electronically signing documents
  • concepts
    • Introduction to concepts
    • Creating concepts
    • Concept labels
    • Links
    • Organising concepts
    • Concepts - FAQ
    • How to: concepts
      • Add predefines to a datafield
  • Datafields
    • Introduction to datafields
    • Types of datafields
    • Rules of thumb for using datafields
    • Data-expressions
    • Datafield aliases
    • Datafield labels
    • Datafield special tags
    • Datafield descriptions
    • Repeating list datafields
    • Datafield predefines
    • Datafields - FAQ
    • How to: datafields
      • Change datafield type
      • Change the datafield's name or alias
  • Definitions
    • Introduction to definitions
    • How to: definitions
      • How do definitions work?
      • Create a definition
  • Files
    • How files are organised
    • Browse files
    • File types
    • Custom styling
    • Legal comments
    • File description
    • Attributes
    • Reporting
    • File name
    • File category
    • Access rights
    • How to: files
      • Creating advanced folders
      • Naming your files
      • Shortcuts to folders or files
  • Q&A
    • About cards
    • Cards pane
    • About changes
    • Changes pane
    • Types of changes
    • Adding conditions
    • Question options
    • Copying & pasting answers
    • Comments, notes & documentation
    • Interactive Q&A inspection
    • Embedding questions into a document
    • “Changes” button
    • Batch create pane
    • Identifiers pane
    • Import pane
    • Edit clauses pane
    • Q&A options
    • Q&A - FAQ
    • How to: Q&A
      • Create predefined answers to a question
      • Add disclaimers
      • Create categories of questions
      • Modify the exported filename
      • Create a question to change the language of a document
      • Send a questionnaire to someone without a ClauseBase account
      • Create questions for repeating list datafields
      • Selecting legal entities & addresses
      • Create a questionnaire using "batch create"
      • Launch other Q&As
    • Leveraging ClauseBuddy Smart Templates in Clause9
  • Import
    • Introduction to importing clauses
    • Uploading clauses
    • Defined terms in Import mode
    • Datafields in Import mode
    • Cross-references in Import mode
    • Assigning folders
    • Conversion process
    • Exporting
    • Stashing intermediate results
    • Tips, tricks & limitations
  • Styling
    • Styling overview
    • Base styling
    • Numbering
    • Definitions styling
    • Enumerations styling
    • Locale styling
    • References styling
    • Page styling
    • Styling of a Binder versus subdocuments
    • Styling: tips and tricks
    • Advanced styling topics
    • Copying headers and footers from an MS Word file
    • How to: styling
      • Using custom fonts
      • Change bullet styling
  • Special functions
    • Introduction
    • Calculations
    • Concepts
    • Conditions
    • Conjugations
    • Content Control Elements
    • Datafields
    • Dates & durations
    • Languages
    • Lists
    • Numbers
    • References
    • Repeating (looping)
    • Special items
    • Text structure
    • Text modification
    • User
    • Q&A
  • Settings
    • Account
    • Preferences
    • Access bundles
    • Favourites
    • Saved searches
    • Saved datafields
    • Styles
    • Default styles
  • Admin
    • General
    • Users
    • User rights
    • Profiles
    • Groups
    • Styles
    • Default styles
    • Attribute models
    • Usage page
    • Custom homepage
    • Global placeholders
    • Access rights
    • How to: admin
      • Adding a new user
      • Disabling a user
      • Managing group memberships
  • Miscellaneous
    • Advanced tips & tricks
    • Typing special symbols on your keyboard
    • Shortcuts
    • Grammar style guide
    • Inserting MS Word files
    • Globo-panel
    • Creating high-quality documents
    • Excel calculations and lookups
  • Integrations
    • Overview
    • Spreadbases
    • E-signing documents
    • Drag & drop integrations
  • For developers
    • Clause9 API
    • Custom functions
    • Example custom functions
Powered by GitBook
On this page
  • Issue at stake
  • Solution
  • Tips
Export as PDF
  1. Clauses

Using codes instead of text fragments

Issue at stake

When inserting predefined values in a datafield or predefined answers in a Q&A question, it can be very tempting to use wording that can be inserted as such in the text of a document. For example, when a transport contract allows a delivery to be made in three different countries, you would be tempted to use the name of those three countries as the predefined value/answer.

This is not problematic when drafting a short, single-language document where the names of those three countries are only inserted into one specific clause. However, this approach has several drawbacks:

  • In a multi-lingual document, you would have to use predefined values/answers per language, because the names of the countries differ per language.

  • Writing condition statements in the body text of a clause becomes much more complex, because the conditions would change per language. For example, {#country^name = "United Kingdom": ... | "Germany": ... } becomes {#country^name = "Royaume-Uni": ... | "Allemagne": ... } in French.

  • Writing enabled-conditions for a clause becomes almost impossible in a multi-lingual context, because enabled-conditions can only be drafted for a single language.

  • Even in a single-language context, writing conditions becomes much more error-prone, because of the length and complexity of the names. For example, the likelihood of misspelling Czechoslovakia (French: Tchécoslovaquie) is quite high. Also, different variations of country names are used — for example, should you use “the Netherlands” or instead “Netherlands” ?

  • With long values, reading condition statements becomes much harder because the condition part can get quite long.

  • Managing small changes becomes much harder and error-prone.

    For example, assume that a transport contract allows the user to choose between normal delivery and premium delivery. The text that needs to be inserted into the document would then be either “delivery in accordance with the national carriers’ service levels” and “two-day guaranteed delivery at a premium rate”.

    Now assume that the delivery term is lowered to one-day delivery. Suddenly you will have to manually search for every occurrence of the text parts above, and manually change them — not only in the clauses, but potentially also in (conditions within the) Q&A.

  • Text fragments cannot contain any conditions, concept-labels or datafields. Accordingly, those text fragments will not reflect changes in styling, concepts, datafields contents, etc.

Solution

The solution is to use codes instead of text fragments, optionally paired with labels and text snippets.

For example, in the transport contract referred to above, the normal delivery option could be referred to with code normal-delivery, and the premium delivery option with premium-delivery. Inside a clause, you would then write:

{#contract^delivery = "normal-delivery": .... whatever text needs to be inserted here for the normal delivery ... | "premium-delivery": ... text for the premium delivery stuff ... }

This indirection through a special code may seem like more work, but will not suffer from the scalability and management disadvantages outlined above:

  • a code is much shorter, and therefore takes less time to type, and are less error-prone

  • the document text associated with a code can be independently and centrally modified

  • codes are language-independent, and can therefore also be used in enabled-conditions

Tips

Another tip is to associate (possibly translated) labels with the predefined value or answer. This avoids that the code itself would be presented to the end-user.

PreviousExamples of conditionsNextBold, italic and underline

Last updated 1 year ago

When you frequently have to insert the same text fragment in conjunction with a certain code, it is beneficial from a management point of view to turn the text fragment into an , because such snippets allow for central updating. (If the entire conditional statement is frequently repeated, it is probably also a good idea to turn that entire statement in its entirety into an external snippet.)

Please also consult the other , for various best practices related to choosing the right code.

external snippet
Grammar style guide