Skip to content

How to Use the Gravity Forms Repeater Field (Now in the Form Editor)

Gravity Forms 3.2 added the Repeater field to the form editor. Build repeating rows with prices, nested repeaters, validation and merge tags, tested on a real form.

Chris Eggleston 6 min read

To add a repeater in Gravity Forms, update to Gravity Forms 3.2 or later, drag the Repeater field from Advanced Fields onto your form, then drag the fields you want to repeat inside it. Set the row label, the maximum number of rows and the button text in the field settings. Visitors can then add a row for each person or item, and every row is saved with the entry.

The Repeater field has been in Gravity Forms since version 2.4, but until now it was a beta you could only build with code. Gravity Forms 3.2 added it to the form editor. I built a team workshop registration form with it, with an attendee row per person, a ticket price in every row and a nested repeater for emergency contacts, and tested what works and what doesn’t.

What the Repeater Field Does

A repeater is a group of fields the visitor can repeat. Instead of guessing how many attendees, team members or vehicles someone has and adding “Attendee 1” to “Attendee 5” fields, you add one set of fields. The visitor clicks Add for each extra row.

It’s different from the List field, which repeats a row of plain text columns. A repeater row can hold Name, Email, radio buttons, drop downs, product fields and even another repeater, each with its own validation.

Step 1: Add the Repeater to Your Form

Open your form and find Repeater under Add Fields → Advanced Fields. Drag it onto the form. If you don’t see it, update Gravity Forms to 3.2 or later.

Gravity Forms form editor Add Fields panel with the Repeater field highlighted under Advanced Fields
The Repeater is under Advanced Fields.

Then drag the fields you want to repeat into the repeater box. For my workshop form, each attendee row has:

  • Name and Email (both required)
  • Lunch (Radio Buttons: Chicken, Vegetarian, Vegan, No lunch)
  • T-shirt size (Drop Down)
  • Emergency contacts (a second repeater, up to 2 rows)
  • Ticket (a Single Product field at $149)

The person filling in the form has their own Name, Email and $149 ticket above the repeater, so the repeater is only for the people coming with them.

Step 2: Set the Row Label, Limit and Buttons

Click the repeater to open its settings:

  • Row Label: the heading for each row. With “Attendee” and Show Row Label checked, rows are numbered Attendee 1, Attendee 2 and so on.
  • Maximum Number of Rows: I set 5. The form shows “Add up to 5 rows” under the description. Leave it empty for no limit.
  • Add Button Text and Remove Button Text: mine say “Add another attendee” and “Remove”.
Gravity Forms Repeater field settings with Row Label Attendee, Show Row Label, description, Maximum Number of Rows 5 and Add Button Text
The repeater’s settings.

Every row is a copy of the first one, so set up the fields inside the repeater (labels, required, choices) the same way you would anywhere else.

Step 3: Show the Repeater Only When It’s Needed

Fields inside a repeater can’t have conditional logic, but the repeater itself can. I added a question above it, “Is anyone coming with you?”, with the choices “No, just me” and “Yes, I’m registering my team”. The repeater’s conditional logic shows it only when the answer is the team choice. Someone coming alone never sees the attendee rows.

Step 4: Charge per Row With a Product Field

Product fields work inside a repeater. Each row’s Ticket adds $149 to the Total field, and the total updates as rows are added or removed. With two attendees plus the registrant, the total was $447.

Gravity Forms repeater row with Ticket price, Add another attendee and Remove buttons, and a Total of $447
The Add and Remove buttons sit at the bottom of each row. The total includes every row’s ticket.

When someone clicks Remove, Gravity Forms asks them to confirm (“Are you sure you want to remove Attendee 2?”) before deleting the row.

Each row’s product becomes its own line in the order, so payment add-ons such as Stripe charge the right amount. The lines all have the same name, though, so the order doesn’t say which ticket belongs to which attendee.

Gravity Forms entry order summary with Your ticket and two Ticket lines at $149 each, total $447
One line per row in the order summary.

Step 5: Test the Validation

Required fields are checked in every row. I left the second attendee’s email empty and submitted. The error message names the row, and everything else the visitor entered, including the nested emergency contact, was still there.

Gravity Forms validation message Attendee 2 Email: This field is required, above a filled-in workshop registration form
Errors name the row: “Attendee 2 Email”.

How Repeater Entries Look

On the entry, each row is a small table, and a nested repeater shows as a table inside its row.

Gravity Forms entry detail showing an attendee row with name, email, lunch, T-shirt size and a nested emergency contact
An attendee row with its nested emergency contact.

Use Repeater Data in Notifications

The repeater’s merge tag, such as {Other attendees:5}, outputs every row as a table. These modifiers worked in my tests:

Merge tagOutput in my test
{Other attendees:5}A table for each row, including nested repeaters
{Other attendees:5:count}2 (the number of rows)
{Other attendees:5:field_ids=6|7|8|9}Only the Name, Email, Lunch and T-shirt size fields of each row
{Other attendees:5:field_ids=8,value}Chicken, Vegan
{all_fields}Every row, with nested rows indented

The Gravity Forms docs list :rowCount for the number of rows, but on 3.2.0 it printed the full table. :count gave the number. The field_ids modifier takes field IDs separated by |, and adding ,value gives a comma-separated list, which is handy for a lunch order.

Here’s the admin notification I set up, with the subject New registration: {Your name (First):1.3} {Your name (Last):1.6} + {Other attendees:5:count} attendees:

Admin notification email with group size 2, order total $447, lunch orders Chicken and Vegan, and an attendee list table for each row
The notification for the test entry.

For more modifiers, see Gravity Forms Merge Tags.

Download the Form Template

It’s free. Get the team workshop registration form from this tutorial, with the attendee repeater, nested emergency contacts, per-row tickets and the admin notification, as a Gravity Forms import file.

This field is for validation purposes and should be left unchanged.
Name*(Required)

Things to Know

  • No conditional logic inside the repeater. You can show or hide the whole repeater, but not a field inside a row.
  • No calculations. Number fields with calculations aren’t supported inside a repeater. Product fields with a fixed price do work.
  • Some fields can’t go inside, including File Upload, CAPTCHA, Page, Post fields, Total, Coupon, Shipping, payment fields such as Stripe, and Poll, Survey and Quiz fields.
  • Order lines share a name. Each row’s product shows in the order with the same label, so use the attendee list to see who each ticket is for.
  • Check your add-ons. Before mapping repeater fields in a CRM or email marketing feed, test that the add-on handles repeater data.

When to Use Nested Forms Instead

If you need conditional logic or calculations inside each row, file uploads per row, or a separate entry for each child item, use Gravity Wiz Nested Forms. Each row is an entry in a separate child form, so it can use conditional logic, calculations and file uploads. For simple repeating groups like attendees, the built-in repeater is now enough, and it’s free with any Gravity Forms license.

Frequently Asked Questions

Does Gravity Forms have a repeater field?

Yes. The Repeater field has been in Gravity Forms since version 2.4 as a beta you could only add with code. Since Gravity Forms 3.2 it is in the form editor under Advanced Fields, and it is included with every Gravity Forms license.

Can I use conditional logic inside a repeater?

Not on the fields inside it. Fields in a repeater row cannot have conditional logic. You can add conditional logic to the repeater itself, so the whole group shows or hides based on another field.

Can I add product fields to a repeater?

Yes. A product field with a fixed price inside a repeater adds its price to the Total for every row, and the total updates as rows are added or removed. Each row becomes its own line in the order. Calculated fields are not supported inside a repeater.

How do I show repeater data in a notification?

Use the repeater merge tag, such as {Other attendees:5}, to output every row. Add :count for the number of rows, :field_ids=6|8 to include only certain fields, and :field_ids=8,value for a comma-separated list of one field.

Can I put a repeater inside a repeater?

Yes. A repeater can contain another repeater, such as emergency contacts inside each attendee row. Each nested repeater has its own row label, button text and row limit, and nested rows are saved inside their parent row.

Need More Help?

If you still need help, use the chat or leave a comment below and we’ll get back to you.

Comments

Ask a question or leave a comment

Your email is never shown. For help with a specific form, share what you expected and what happened instead.