Say you are running an employee engagement survey. One grid asks people to rate several statements about recognition and pay. Underneath it you want to know why — but a single “anything you'd like to add?” box will not tell you which statement a comment refers to.
Logic is for showing and hiding whole questions. Pipe is for pulling earlier answers into this one — piping, carry-forward and looping all live there together.
Setting one up
- 1Put the follow-up after its source
Add or drag your follow-up question directly beneath the grid or checkbox question it should loop over.
- 2Open the Pipe panel
The small Pipe link at the top-right of the question's title field. Scroll to the amber “Loop over selections” section.
- 3Choose the source
Under “Repeat for each selection from”, pick the question whose answers drive the repetition.
- 4Narrow it down, if you want to
When the source is a grid, a second dropdown appears: “Only loop rows where column equals”. Leave it on any column to ask about every rated row, or pick one column to ask only about those.
- 5Click Apply loop
The picker is replaced by a confirmation box, and a “Loops over Q…” chip appears in the question card header.
- 6Insert the token
Click “Insert {{LOOP}} in title”, then write your question around it. The token is replaced at display time with the item being answered about.
A required loop question is required for every iteration. Somebody who rated six statements down would have to write six answers before they could submit. On sensitive subjects that is the fastest way to lose the response altogether.
What can be a source
Any of these, as long as it appears earlier in the survey.
| Question type | Loops | Notes |
|---|---|---|
| Checkboxes | Once per ticked option | The most common source. |
| Matrix / Grid | Once per rated row | Can be narrowed to one column — see below. |
| Image Choice | Once per selected image | Good for concept and creative tests. |
| Ranking | Once per ranked item | Iterates in the order they ranked them. |
| Multiple Choice | Once | A single-pick source loops exactly once. The editor warns you. |
| Dropdown | Once | Same as Multiple Choice. |
Filtering a grid by column
This is what makes loops useful on agree/disagree batteries. Without a filter, the follow-up repeats for every row the respondent rated — including the ones they agreed with. With a filter, it repeats only for rows rated with the column you name.
The filter is an exact match against a single column. There is no “contains”, no “either/or”, and no free-text entry — you pick one of the grid's own columns from a dropdown. So on a five-point scale, a loop filtered to Strongly disagree will not pick up people who chose Disagree.
Add a second copy of the follow-up directly beneath the first, with identical wording, and set its filter to the other column. Respondents cannot tell the difference — they simply get one follow-up per row they rated down. The survey only gets longer for the people who actually rated something down.
If you find yourself wanting three or four columns covered, that is usually a sign the scale itself should be narrower, or that the follow-up belongs on fewer statements.
How it behaves
- The {{LOOP}} token — Works in the title and the description, and can appear more than once in either. It becomes the option label or grid row wording — which is why grid rows should read as complete statements.
- Nothing to loop over means no question — If the source is unanswered, or the filter matches none of their rows, the question is skipped entirely rather than shown empty.
- Every answer is tagged to its item — In a CSV export you get one column per possible item, filled in only where that respondent answered — so you can sort every verbatim by the statement that prompted it, with no manual coding.
Troubleshooting
| Symptom | Usually means |
|---|---|
| The loop question never appears | The source is unanswered, or the column filter matches none of the rows they rated. |
| You see the literal text {{LOOP}} | The loop was never applied — re-open Pipe and check for the “Looping over Q…” confirmation. |
| Every iteration has the same title | The loop is set up but the title has no {{LOOP}} token in it. |
| The source is not in the dropdown | It comes after this question, or it is a type that cannot be a source. |
| “Single-pick source loops once” | You picked a Multiple Choice or Dropdown source. Fine if intended. |
Once answering the source so the loop fires — check the iterations appear and the wording substitutes properly. Then once without triggering it, to confirm the question disappears cleanly and the survey can still be submitted.
A loop that silently fails to appear looks identical to a loop that was never set up, which is why the second pass matters.