> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hubspotcards.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Repeater

> Repeat a set of display blocks for every row in a list.

# Repeater

**Repeater** renders its nested blocks once per row in a list. Use it for a flexible card layout when a regular table doesn't give you the presentation you want.

## Availability

Repeater can be used in all placements. It cannot sit inside another Repeater.

## Add and configure

1. Add **Repeater** from **Structure**.
2. Choose a **Data source (list)**.
3. Optionally set **Rows shown** from 1 to 25. An empty field uses the source's/default count.
4. Write a **Message when empty**.
5. Drag display building blocks into the content area.

The repeater must have at least one and can have up to 10 direct children. A new block starts with a Status tag bound to the first known row field.

## Use the row's fields

Select a nested block. Its dynamic field picker gets the **Row** group, e.g. "Row · Deal name" or "Row · Amount". It refers to the current row for each repetition.

The list source can be associated records or a list from a connected system. A row field is only valid inside the Repeater that provides the list.

## Blocks not allowed inside

The following cannot be used inside a Repeater:

* Input field;
* Buttons;
* CRM action;
* another Repeater.

The restriction also applies if they sit inside a Row/column or Accordion under the Repeater. The reason is that interactive blocks would otherwise get the same ID across multiple rows.

## Data, rules, and steps

The repeater can be assigned to a step and have an overall visibility rule. The nested blocks can have rules that use the row's own values, for example only showing a critical status tag on overdue invoices.

## Limitations and tips

Use Table for many homogeneous columns. Use Repeater when each row needs multiple lines of text, statuses, or a grouped layout. Limit the row count in the sidebar to avoid a very long card.
