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 - for example, where 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.
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 - for example, 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 count - the minimum number of instances required (e.g., at least 1 chattel)
- Maximum count - 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/maximum count
- Reordering - users can reorder instances by dragging the block header or by selecting the block header and using the reorder arrows to move the instance up or down
Separators
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 “, " (comma and space) to separate items in a list
- Use “ and " (space, “and”, space) before the final item configure different separators for:
- a single item
- two items
- three or more items
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: "Warranty Details" (nested, repeating)
- 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 displays
-
-
Configure required block properties
In the New Block window, complete the required fields:
- Display 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.
-
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 Options, choose how visibility should be triggered:
- Choice List - Choice Value(s)
- Check Box - Checked
- Check Box - Unchecked
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 - Text used when there's only one instance
- Double First/Second - Text used when there are exactly two instances (e.g., first: empty, second: " and ")
- Multi First/Middle/Last - Text used when there are three or more instances (e.g., first: empty, middle: ", ", last: ", 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.
-
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 within the InfoSheet field list
- Blocks and fields can be mixed in any order
- The order determines how they appear to end users
End users can reorder block instances only, using drag-and-drop on the block header
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.
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 Mail Merge authoring guidance.
For detailed Mail Merge syntax, worked examples, and advanced formatting techniques, see Use InfoSheet Blocks in Documents
Mail Merge fields (required)
Blocks are supported only with Mail Merge fields.
Blocks are not supported with Content Controls
Basic block merge structure
The system repeats the content between the inner Start and End fields for each block instance.
Nested block merge structure
Reserved block properties
Each instance of a repeating block automatically exposes the following properties for use in Mail 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 HasSeparator 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 Use InfoSheet Blocks in Documents