Tables
Add dynamic tables for repeating data in templates
Tables handle repeating data like invoice line items, order details, or attendee lists. They grow dynamically based on the data provided.
When to Use Tables
Use tables for data with:
- Variable number of items
- Consistent structure per item
- Multiple columns of related data
Examples
| Use Case | Columns |
|---|---|
| Invoice line items | Description, Quantity, Price, Total |
| Order manifest | SKU, Product, Qty, Weight |
| Attendee list | Name, Email, Role, Check-in Status |
Creating a Table
Add the Table
Click Add Table in the template editor toolbar.
Position and Size
Draw a rectangle for the total table area. This defines the maximum space the table can occupy.
Configure Columns
In the properties panel:
- Click Add Column
- Set the column name (e.g.,
description) - Set the width percentage
- Repeat for each column
Widths must total 100%.
Set Row Height
Define how tall each row should be. Consider:
- Font size you're using
- If text might wrap
- Padding around text
Name the Table
Give the table a clear name like line_items or order_rows. This is used when mapping data in workflows.
Table Properties
| Property | Description |
|---|---|
| Name | Identifier for workflow mapping |
| Position | Top-left corner coordinates |
| Width | Total table width |
| Max Height | Maximum space for rows |
| Row Height | Height per row |
| Header Row | Include column headers (optional) |
| Border | Show cell borders (optional) |
Column Configuration
Each column has:
| Property | Description |
|---|---|
| Name | Maps to data property |
| Width % | Percentage of table width |
| Alignment | Left, center, right |
| Font Size | Text size for this column |
Mapping Data
When a workflow fills the template, it provides an array:
{
"line_items": [
{ "description": "Widget A", "qty": 5, "price": "$50.00" },
{ "description": "Widget B", "qty": 3, "price": "$45.00" }
]
}Column names match the object properties. Each array item becomes a row.
Row Behavior
Dynamic Growth
Tables start at the header (if enabled) and grow downward. Each data item adds a row.
Maximum Rows
The max height divided by row height determines how many rows fit. If data exceeds this:
- Extra rows are truncated
- Consider pagination or multiple pages
Plan for your maximum expected data. If you might have 50 line items, ensure the table area accommodates them.
Empty Tables
If no data is provided, the table area remains blank (or shows just the header if enabled).
Header Rows
Enable headers to show column titles:
- Toggle Show Header in properties
- Headers use column names by default
- Customize header text in column settings
Headers are styled separately:
- Often bold
- May have background color
- Don't count toward data rows
Styling
Borders
| Option | Effect |
|---|---|
| None | No visible borders |
| All | Borders around every cell |
| Horizontal | Lines between rows only |
| Outer | Border around entire table |
Alternating Rows
Enable Alternating Colors for zebra striping:
- Improves readability for many rows
- Set the alternate row color
Cell Padding
Adjust padding to prevent text touching borders:
- Horizontal padding affects all columns
- Vertical padding affects row height appearance
Multi-Page Tables
For tables that might exceed one page:
- Design the table to fit the first page
- Create a continuation area on subsequent pages
- Use workflow logic to split data across pages
Multi-page tables require workflow-side logic to manage. Consider if you really need that many rows, or if summarization would work.