Capturing multiple records from a user in a single interaction has historically been one of the more awkward problems to solve in Salesforce Screen Flows. Before the Repeater element, the options were limited: build a sequence of repeated screens, manage complex collection logic outside the screen, or build a custom Lightning Web Component to handle the input. None of these were particularly clean, and all of them introduced complexity that admins then had to maintain. The Repeater element changes this entirely. It allows users to enter as many rows of data as they need — within a single screen, through a simple Add Row interaction — and passes the entire collection forward to whatever comes next in the flow. No custom code. No repeated screens. No loop logic inside the UI layer.
What the Repeater Element Is
The Repeater is a screen component that renders a dynamic, user-driven set of input rows inside a Screen element. Each row contains the same set of input fields — text fields, picklists, number fields, date selectors, toggles, or any other standard screen component — and users can add as many rows as their task requires at runtime. Think of it as a loop that the user controls rather than one the flow controls. Instead of the developer deciding how many sets of inputs to display, the user adds rows as needed and submits the entire collection at once. Each row in the Repeater becomes one item in a collection variable. After the screen completes, that collection is available to the rest of the flow — for creating records, updating related data, running calculations, or processing through a standard Flow Loop.
Why This Matters
The practical value of the Repeater becomes clear when you consider the specific scenarios it addresses. A salesperson adding multiple contacts to an account during an onboarding process should not have to navigate through three separate screens to add three contacts. A user capturing multiple line items for an order should not encounter a fixed number of input rows that may not match what they actually need. A form requiring a variable number of entries should not require a developer to anticipate the maximum number upfront and build that many screens. The Repeater handles all of these scenarios through a single, clean screen interaction — and does so without requiring any code.
How to Set It Up — Step by Step
Step 1: Create a Screen Flow
Open Flow Builder and create a new Screen Flow. This is the flow type that supports screen components including the Repeater.
Step 2: Add a Screen Element
Place a Screen element on the canvas. This is the screen where the Repeater will appear to the user.
Step 3: Insert the Repeater Component
Inside the Screen element's component panel, search for Repeater and drag it into the screen layout. The Repeater acts as a container — its contents define what each row will look like.
Step 4: Add Input Components Inside the Repeater
Place input components inside the Repeater container. For a Contact collection scenario, this might include a text field for First Name, a text field for Last Name, and a text field for Email. For a line item scenario, it might include a text field for Product Name, a number field for Quantity, and a currency field for Unit Price. Whatever fields are placed inside the Repeater will appear in every row the user adds. These inputs automatically form a structured collection — each row is one item, and all items share the same field structure.
Step 5: Use the Collection After the Screen
After the Screen element, the collection produced by the Repeater is available as a collection variable. Use a Create Records element to insert all the collected items as new records in a single bulk operation. Use a Loop to process each item individually if conditional logic is required. Use Assignment elements to transform or restructure the collection before passing it to subsequent flow elements.
A Practical Example
A salesperson needs to add multiple contacts during an account onboarding process. With the Repeater, they see a single screen containing a Repeater with First Name, Last Name, and Email fields. They add three rows — one for each contact — fill in the details, and click Next. A Create Records element after the screen creates all three Contacts simultaneously using the collection the Repeater produced. The entire interaction takes one screen and requires no custom code. The same pattern applies to line item capture, beneficiary entry, task creation, and any other scenario where a user needs to submit a variable number of structured records in a single interaction.
Best Practices
Validate inputs inside the Repeater using required field settings, visibility rules, and formula-based validations. Validation at the row level prevents incomplete or invalid data from reaching the Create Records element. Consider setting a maximum row limit if the use case has a practical upper bound. Very large Repeater submissions can produce collection sizes that affect flow performance — setting a reasonable maximum prevents edge cases where a user adds hundreds of rows and creates unexpected processing load. Use clear, consistent naming conventions for inputs inside the Repeater — Repeater_ContactFirstName, Repeater_ContactLastName — to make the collection structure immediately readable when working with the output in subsequent flow elements. Combine the Repeater with conditional visibility rules for more complex dynamic forms where certain inputs should only appear based on values entered in the same row.
What the Repeater Cannot Do
The Repeater has real limitations worth understanding before designing around it. File upload components are not supported inside a Repeater — any use case requiring file attachment per row needs a different approach. Repeaters cannot be nested — a Repeater inside a Repeater is not supported. Advanced custom styling requires a custom LWC component rather than the standard Repeater. And for scenarios where the number of items is known and fixed, separate individual input fields are cleaner than a Repeater with a constrained row count.
When to Use It and When Not To
The Repeater is the right choice when the number of items the user will enter is variable and unknown at design time — multiple contacts, multiple line items, multiple tasks, multiple email recipients, dynamic survey entries. It is not the right choice when the number of items is always exactly the same — three approval stages that always exist, two addresses that every record requires. Fixed-count inputs are cleaner as individual, named fields on a standard screen.
Official References
Flow Screen Display Component: Repeater — Salesforce documentation on configuration and capabilities:help.salesforce.com — search "Flow Repeater Screen Component"
Add Records from User Input in Screens Using Repeaters:help.salesforce.com — search "Add Records Repeater Screen Flow"
Create Multiple Records with a Repeater Screen Component:help.salesforce.com — search "Create Multiple Records Repeater"
Flow Example: Create a Contact for Each Beneficiary:help.salesforce.com — search "Flow Repeater Beneficiary Contact Example"


.png)
.png)



