Templates

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 CaseColumns
Invoice line itemsDescription, Quantity, Price, Total
Order manifestSKU, Product, Qty, Weight
Attendee listName, 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:

  1. Click Add Column
  2. Set the column name (e.g., description)
  3. Set the width percentage
  4. 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

PropertyDescription
NameIdentifier for workflow mapping
PositionTop-left corner coordinates
WidthTotal table width
Max HeightMaximum space for rows
Row HeightHeight per row
Header RowInclude column headers (optional)
BorderShow cell borders (optional)

Column Configuration

Each column has:

PropertyDescription
NameMaps to data property
Width %Percentage of table width
AlignmentLeft, center, right
Font SizeText 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

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:

  1. Toggle Show Header in properties
  2. Headers use column names by default
  3. Customize header text in column settings

Headers are styled separately:

  • Often bold
  • May have background color
  • Don't count toward data rows

Styling

Borders

OptionEffect
NoneNo visible borders
AllBorders around every cell
HorizontalLines between rows only
OuterBorder 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:

  1. Design the table to fit the first page
  2. Create a continuation area on subsequent pages
  3. Use workflow logic to split data across pages

Best Practices

On this page