Overview
Blocks let you group InfoSheet fields into structured sections that can repeat, appear conditionally, or be nested within other blocks.
They are designed for advanced data capture scenarios where simple, flat field lists are not sufficient, such as when users need to enter multiple items of the same type, optional sections, or hierarchical information.
Blocks control both:
- how fields are presented to users when completing an InfoSheet, and
- how repeated or conditional data is assembled into documents.
This article explains how blocks work, how to configure them, and how they behave during document assembly.
Note: Click any screenshot to expand it for a clearer view while following the steps.
Who can do this
- System Administrators
- Template Administrators
In this article, you'll learn:
- What blocks are and when to use them
- The different types of blocks:
- How separators work for repeating blocks
- How to create and configure blocks
- How to use blocks in documents
What blocks are
A block is a group of InfoSheet fields that behave together.
A block can:
- Repeat as a group (repeating blocks)
- Be shown or hidden as a group (conditional blocks)
- Contain other blocks (nested blocks)
Blocks allow you to capture structured data that better reflects real-world scenarios, such as multiple assets with their own details or optional sections that only apply in certain situations.
Unlike field-level conditions, block behaviour is applied once to the entire block, rather than individually to each field inside it.
When to use blocks
Use blocks when:
- The same set of fields may need to be completed more than once
- Several related fields should appear or disappear together
- Structured or repeatable data is required for document assembly
If fields always appear together and do not repeat or hide conditionally, use a Heading field to visually group them instead.
Types of blocks
InfoSheets support the following block behaviours:
- Repeating blocks
- Conditional blocks
- Nested blocks
Blocks can also combine behaviours. A block can be both repeating and conditional.
Repeating blocks
Repeating blocks allow users to add multiple instances of the same group of fields.
Each instance can represent a separate set of values.
Behaviour
- A repeating block can have zero to many instances
- All instances contain the same fields
- Each instance can have different values
- Instances are assembled in the order they appear
Example: A "Chattels" block that contains:
- Name (text field)
- Value (money field)
- Description (text area)
Users can add multiple chattel instances, each with its own name, value, and description.
Instance controls
Repeating blocks support:
- Minimum instances, the minimum number of instances required (e.g. at least 1 chattel). Users always see at least this many.
- Maximum instances, an optional limit on how many instances can be added (e.g. no more than 10 chattels)
- Add / Remove, users can add or remove instances, subject to the minimum and maximum
- Reordering, users can reorder instances by dragging the block header
Each instance is automatically numbered (for example, Chattel (1 of 3)).
Understand separators (repeating blocks only)
Separators control the text that appears between block instances when repeating block content is assembled into documents.
They are designed for formatting lists within paragraphs.
For example:
- Use ", " (a comma and a space) to separate items in a list
- Use " and " (a space, the word and, then a space) before the final item
Separators can be configured for:
- a single item
- two items
- three or more items
Separators are optional and apply only to repeating blocks used with merge fields.
Conditional blocks
Conditional blocks are shown only when a specified condition is met, similar to conditional fields but applied to an entire group of fields.
The condition is based on another field having a specific value.
Example: An "Insurance Details" block that only appears when a "Has Insurance" checkbox is checked.
Behaviour
- When the condition is not met, the entire block is hidden, including all fields and nested blocks it contains.
- Hidden blocks are excluded entirely from document assembly
- Fields inside a conditional block do not need their own visibility conditions
Conditional behaviour can be combined with repeating behaviour.
Nested blocks
Blocks can be nested inside other blocks to create hierarchical structures.
Nesting rules
- Blocks can be nested up to five levels deep (InfoSheet + four block levels)
- Nested blocks can be repeating, conditional, or both
- Child blocks inherit visibility from their parent block
Nested blocks are evaluated per parent instance. Each instance of a repeating parent block can contain its own nested block instances.
Example:
- InfoSheet: "Property Details"
- Block: "Chattels" (repeating)
- Field: "Name"
- Field: "Value"
- Block: "Warranty Details" (nested, repeating)
- Field: "Provider"
- Field: "Expiry Date"
- Block: "Chattels" (repeating)
Each chattel can have multiple warranty details.
Behaviour
- Parent blocks are evaluated before child blocks
- For repeating blocks, conditional logic is evaluated independently for each instance
- If a parent block is hidden, its child blocks are hidden automatically
- Each instance of a repeating parent block can contain its own nested blocks
Before you start
Before creating blocks, ensure that:
- You are familiar with creating and configuring basic InfoSheet fields
- You understand how conditional fields work, as the same logic is used for conditional blocks
Blocks are intended for advanced scenarios where fields need to repeat, appear conditionally as a group, or be structured hierarchically.
Create and configure a block
Use this process to create repeating, conditional, and nested blocks.
-
Start creating a block
From the Create InfoSheet or Edit InfoSheet window:
- Select the Add a new block (paper with green +) icon, from the field options, or right-click on an existing field or block and select Insert New Block Above or Insert New Block Below.
Result: The New Block window opens.
-
Configure required block properties
In the New Block window, complete the required fields:
- Block Name: What users see (e.g. "Chattel")
- Block List Code: Internal identifier, plural form (e.g. "Chattels")
- Block Item Code: Internal type name, singular form (e.g. "Chattel")
These fields are required to create the block.
Note: The Block List Code and Block Item Code cannot be changed once the block is saved, and neither can be reused later even if the block is deleted. They set the Start and End field names used in precedents, so confirm them before you save.
-
Configure block behaviour (optional)
Configure additional block settings as required:
Conditional
- Select Is Conditional.
- Select a Condition Field that controls when the block is shown.
- From the Condition Field dropdown, set how visibility is triggered. What appears next depends on the type of field selected:
- a choice field shows Condition Choice Values. Tick the values that show the block.
- a checkbox field shows When checked and When unchecked. Select one.
When the condition is not met, the entire block, including all fields and nested blocks, is hidden and excluded from document assembly.
For detailed guidance, see Configure Conditional Fields in InfoSheets.
Repeating
- Set Minimum instances: Minimum number of instances required (0 or more).
- Set Maximum instances: Optional maximum number of instances allowed (leave blank for unlimited)
Separators (repeating blocks only)
- Select Specify list separators.
- Configure separator text for:
- Single Item: Before Item sets the text used when there is only one instance.
- Two Items: Before First Item and Before Second Item set the text used when there are exactly two instances. For example, leave the first empty and set the second to " and ".
- Three+ Items: Before First Item, Before Middle Item(s) and Before Last Item set the text used when there are three or more instances. For example, leave the first empty, set the middle to ", " and the last to ", and ".
-
Create the block container
- Select OK.
The block is added to the InfoSheet as an empty container.
At this point, the block exists but contains no fields or nested blocks.
-
Add fields to the block
- Select the block.
- Select the Add Field (green +) icon.
- Add the required fields inside the block.
For detailed instructions on adding and configuring fields, see Create an InfoSheet
Fields added inside the block inherit the block's repeating and conditional behaviour.
Note: Field Codes inside a block cannot be: index, count, is_first, is_last, separator or blockref. OneLaw reserves these names for block behaviour. The properties available for merge fields are described in Using blocks in documents.
-
Add nested blocks (if required)
If the block needs structured sub-sections:
- Select the parent block.
- Select the Add a new nested block to the end of this block (paper with green +) icon, to create a nested block.
- Configure the nested block using the same steps above.
- Add fields to the nested block as required.
Nested blocks can themselves be repeating, conditional, or both, and follow the same configuration process.
-
Finish block configuration and ordering
Once the block structure is complete, review the final configuration and ordering.
Ensure that:
- required fields have been added
- nested blocks have been added (if applicable)
- repeating and conditional behaviour is configured
- separators are configured (if applicable)
Block ordering controls how blocks and fields appear to end users.
- Blocks can be reordered alongside fields, either by dragging them in the Fields list or by selecting one and using the Up and Down arrows beside the list
- Blocks and fields can be mixed in any order
- The order determines how they appear to end users
Using blocks in documents
This section provides a high-level overview of how InfoSheet blocks are used in documents.
It is intended to explain supported behaviour and structure, not to provide step-by-step guidance on authoring merge fields.
The block's Start and End fields do not have to be typed by hand. With a precedent open in Word, the Fields tab of the OneLaw Templates panel lists the attached InfoSheet's blocks and writes the matching Start and End fields for you in the layout you choose.
For detailed syntax, worked examples, and advanced formatting techniques, see InfoSheet Block Behaviour in Precedents (Advanced). To filter or order the instances, or to reference a single one, see Merge Field Syntax for InfoSheet Blocks (Advanced).
Merge Fields (required)
Blocks are supported only with merge fields.
Blocks are not supported with Content Controls.
Basic block merge structure
The Start and End field names come from the InfoSheet's field code prefix, the block's Block List Code, and its Block Item Code. Each Start pair and End pair sits together:
{ MERGEFIELD Start:InfoSheetPrefix.BlockElementName }{ MERGEFIELD Start:BlockTypeName }
{ MERGEFIELD FieldName }
{ MERGEFIELD separator }
{ MERGEFIELD End:BlockTypeName }{ MERGEFIELD End:InfoSheetPrefix.BlockElementName }
The system repeats the content between the inner Start and End fields for each block instance.
Nested block merge structure
A nested block uses the same structure inside its parent. Its Start and End field names are relative to the parent, so they carry no InfoSheet prefix:
{ MERGEFIELD Start:Property.Chattels }{ MERGEFIELD Start:Chattel }
{ MERGEFIELD Name }
{ MERGEFIELD Start:WarrantyDetails }{ MERGEFIELD Start:WarrantyDetail }
{ MERGEFIELD Provider }
{ MERGEFIELD End:WarrantyDetail }{ MERGEFIELD End:WarrantyDetails }
{ MERGEFIELD End:Chattel }{ MERGEFIELD End:Property.Chattels }
Reserved block properties
Each instance of a repeating block automatically exposes the following properties for use in merge fields. These properties are added by OneLaw during document assembly to describe the position of each block instance.
They do not require any setup in the InfoSheet and are listed here to support understanding of how repeating blocks behave in documents:
- index, the position of the instance within the block (starting at 1)
- count, the total number of instances in the block
- is_first, true only for the first instance in the block
- is_last, true only for the last instance in the block
- separator, the resolved separator text for the instance, based on the block's separator configuration
These properties are commonly used to:
- control punctuation between repeated items
- show headings or introductory text only once
- format lists correctly in assembled documents
For worked examples, see InfoSheet Block Behaviour in Precedents (Advanced).
Best practice
- Use blocks only when repeating or conditional behaviour is required
- Use Heading fields for simple grouping
- Set appropriate minimum and maximum counts
- Use separators to improve document readability
- Test with multiple instances and edge cases
- Keep nesting as simple as possible
Result
You can design and use InfoSheet blocks that repeat, appear conditionally, nest correctly, and assemble into documents exactly as intended.