Logic & flow13 min read

Display Logic

Show or hide questions and sections based on conditions.

On this page (7 sections)

Display logic controls whether a specific question or section appears for a given respondent. If the condition is not met, the respondent simply never sees that question or section.

For how display logic fits with skip logic, randomization, and the Flow tab, see the Logic, Flow & Conditions hub.


How to add display logic to a question#

  1. Select the question on the canvas.
  2. In the properties panel, look for Display logic.
  3. Open the condition builder and set your rule — for example, "Show this question only if Q1 = Yes".
  4. Save the condition. A summary label will appear on the question card so you can see at a glance that logic is active.

If the condition is not met, the respondent simply never sees that question.

Hiding a question can also skip a Section Loop that loops over that question's choices later in the survey — when the respondent never saw the source question, there is nothing active to loop over, so the looped section is skipped. Loops set to All Choices, All Rows, or All Columns are never skipped this way.


How to add display logic to a section#

In the Flow tab, each section appears as a block. You can attach display logic to an entire section so that all questions inside it are skipped when the condition is false. This is useful for paths like "Show this section only to parents" or "Skip for non-customers".

See Flow editor for how sections and logic blocks appear on the visual map.


The condition builder#

Whenever you set up display logic, skip logic, or quota rules, you'll use the same condition builder dialog. Here's how it works:

  • A condition is a single rule, like "Q3 = Very satisfied".
  • A condition group bundles multiple conditions together with ALL (every condition must be true) or ANY (at least one must be true).
  • You can nest groups inside each other for complex rules — for example, "Show if (Country = US AND Age = 18–24) OR (Country = UK AND Age = 25–34)".
  • Each group can have a name to help you remember what it does.
  • The + button on a condition adds a copy of that condition directly below it, joined with AND, so you can build a run of similar rules by editing the copy. On a condition that isn't finished yet, + adds an empty one instead.

When you close the dialog, a compact summary appears on the question or flow element so you can see what's configured without reopening it. Each answer in the summary shows its recode value in front of the label, for example "Q2 Gender Is Equal to 1) Male", so you can match the rule to your coded data at a glance. If you haven't set recode values, the number is the answer's position in the list. For a matrix condition on a specific row, the row is named and the scale point carries the recode, for example "Q7 Rate each factor “Price” Equals “10) Good”".

Condition sources#

Every condition row starts by choosing what to look at. The same list is available on question display logic and on section display logic in the Flow tab:

SourceWhat it checks
QuestionAn answer the respondent already gave
Global variableThe current value of a survey variable
BooleanA plain True / False
Survey metadataSession details such as language, panel, duration, or date
Loop numberWhich pass of a Section Loop you are on (only inside a looped section)
ModeWhether the survey is being taken in preview or through a published link

Mode is the last entry in the source list. Pick it and the row becomes simply "Mode Is Preview" or "Mode Is Published Link" — there is nothing else to fill in.

  • Preview means the preview you open from the build page.
  • Published Link means a real, live distribution that respondents are taking.

Use it to keep test scaffolding out of live fielding — for example, put a Display Global Variables block behind "Mode Is Preview" so you can watch your variables while building, and real respondents never see it.

Note: A question or section with no Mode condition shows in both places, exactly as it always has. Adding the feature changes nothing about your existing surveys.

Operators by question type#

The condition builder automatically shows only the operators that make sense for the selected question type. You don't need to remember which operators apply — just select a question, and the dropdown updates.

Single choice#

OperatorWhat it checksValue input
SelectedAnswer is exactly this optionSearchable answer dropdown
Not selectedAnswer is not this optionSearchable answer dropdown
Is any ofAnswer is any of these optionsMulti-select checkbox dropdown
Is none ofAnswer is none of these optionsMulti-select checkbox dropdown
Not answeredQuestion was not answeredNone
AnsweredQuestion was answeredNone

Example: "Show Q3 only if Q1 Selected 'Yes'" or "Show Q3 if Q1 Is any of [Red, Blue, Green]".

Multiple choice#

Since respondents can select multiple answers, the operators reflect set logic:

OperatorWhat it checksValue input
Includes any ofAt least one of these options was selectedMulti-select checkbox dropdown
Includes all ofALL of these options were selectedMulti-select checkbox dropdown
Does not includeNONE of these options were selectedMulti-select checkbox dropdown
Not answeredNothing was selectedNone
AnsweredAt least one option was selectedNone

Example: "Show Q5 if Q2 Includes any of [Apple, Samsung]" — true if the respondent selected Apple or Samsung (or both).

Text (short text, long text, email, phone, zip code)#

OperatorWhat it checksValue input
EqualsExact matchText input
Not equalsDoes not matchText input
ContainsAnswer includes this substringText input
Does not containAnswer does not include this substringText input
Starts withAnswer begins with this textText input
Ends withAnswer ends with this textText input
Is one ofAnswer matches any of these valuesText input (comma-separated)
Is not one ofAnswer matches none of these valuesText input (comma-separated)
Is emptyNothing was enteredNone
Is not emptySomething was enteredNone

Example: "Skip to Section 3 if email ends with '@company.com'" or "Show Q4 if zip code starts with '90'".

Numeric (rating, NPS, slider)#

OperatorWhat it checksValue input
EqualsExact numeric matchNumber input
Not equalsNot this numberNumber input
Greater thanAbove this valueNumber input
Less thanBelow this valueNumber input
BetweenWithin a range (inclusive)Min and Max inputs
Is one ofMatches any of these numbersText input (comma-separated)
Is not one ofMatches none of these numbersText input (comma-separated)
Is emptyNot answeredNone
Is not emptyAnsweredNone

Example: "Show Q6 if NPS score is between 0 and 6" (detractors) or "Skip to thank-you if rating is greater than 8".

Date / Time / Date & Time#

OperatorWhat it checksValue input
EqualsExact date/time matchDate/time input
Not equalsNot this date/timeDate/time input
AfterLater than this date/timeDate/time input
BeforeEarlier than this date/timeDate/time input
BetweenWithin a date/time rangeMin and Max inputs
Is emptyNot answeredNone
Is not emptyAnsweredNone

Example: "Show section if appointment date is after 2025-01-01" or "Skip if date is between 2025-06-01 and 2025-06-30".

Matrix#

Matrix questions store a response per row (which column was selected). The operators work across rows:

OperatorWhat it checksValue input
Any row equalsAt least one row has this column selectedColumn dropdown
All rows equalEvery row has this column selectedColumn dropdown
No rows equalNo row has this column selectedColumn dropdown
Any row in setAt least one row's answer is one of these columnsMulti-select checkbox dropdown (columns)
All rows in setEvery row's answer is one of these columnsMulti-select checkbox dropdown (columns)
Is one ofAnswer matches one of these columnsMulti-select checkbox dropdown (columns)
Is not one ofAnswer matches none of these columnsMulti-select checkbox dropdown (columns)
Is emptyNo rows answeredNone
Is not emptyAt least one row answeredNone

Example: "Show Q5 only if any row in the satisfaction matrix equals 'Very Dissatisfied'" or "Skip section if all rows in set [Good, Excellent]".

Ranking#

Ranking questions store an ordered list of items. The operators check positions:

OperatorWhat it checksValue input
Item ranked atA specific item is at this exact positionItem dropdown + Position number
Item not ranked atA specific item is NOT at this positionItem dropdown + Position number
Item in top NA specific item is in the top N positionsItem dropdown + N number
Item in bottom NA specific item is in the bottom N positionsItem dropdown + N number
Items ranked count =The total number of ranked items equals thisCount number
Is emptyNothing was rankedNone
Is not emptyAt least one item was rankedNone

Example: "Show Q8 if 'Price' is ranked in position 1" or "Show follow-up if 'Quality' is in top 3".

Items that the respondent did not rank are treated as not matching any position.

The logic summary on the question card and in the Flow tab names the item and the number, for example 'Taste' Item In Top N 3. The same applies to Grid Rank (which also names the row) and MaxDiff conditions.

MaxDiff#

A MaxDiff question offers the same conditions as a Ranking question. The rank is the respondent's MaxDiff ranking, most preferred first: each Best pick scores +1 and each Worst pick −1, and ties go in a random order that stays fixed for that respondent. This is the same order carry forward uses, so a condition and a carried-forward list always agree.

Pick an item, then the operator — for example Item In Top N with N = 3.

Example: "Show the Taste follow-up only if 'Taste' is in the respondent's MaxDiff top 3."

A respondent who has not picked a Best or Worst on any screen has nothing ranked yet. MaxDiff conditions saved before rank conditions existed (Is Selected / Is Not Selected) are left as they were.

Constant Sum#

Constant Sum questions (list or grid layout) store the points the respondent gave each item. Pick an item first; the operator list then offers the value comparisons (Is Equal to through Does Not Contain) followed by:

OperatorWhat it checksValue input
Is HighestThis item got the most points of any item in the questionNone
Is LowestThis item got the fewest points of any item in the questionNone

Ties count for every tied item. If "Quality" and "Price" both got 40 points and nothing got more, "Quality" Is Highest and "Price" Is Highest are both true. An item with no points recorded (for example, one that was not shown) or a question the respondent did not answer is never highest or lowest; an item given 0 points still counts.

Example: "Show Q9 only if 'Quality' Is Highest in the budget question."

Tip — auto-answer "the top item", with ties broken at random: give a single-choice question one option per Constant Sum item, add display logic "item Is Highest" to each option, and set its Auto-Answer to use the displayed options. With one clear winner, that option is recorded; with a tie, one of the tied options is picked at random.

Simplified Shelf Choice questions offer them too; a product that was not on the respondent's shelf is never highest or lowest.

File upload#

OperatorWhat it checks
Is emptyNo file was uploaded
Is not emptyA file was uploaded

File upload questions only support checking whether a file was provided or not.

Form fields#

OperatorWhat it checksValue input
EqualsExact matchText input
Not equalsDoes not matchText input
ContainsIncludes this substringText input
Does not containDoes not include thisText input
Is emptyNot filled inNone
Is not emptyFilled inNone

How the value input works#

The condition builder automatically picks the right value input based on the operator and question type:

  • Answer dropdown — For equality operators (Equals / Not equals) on choice questions, you pick from the question's answer options.
  • Multi-select dropdown — For set operators (Is any of, Includes any of, etc.) on questions with predefined options, a dropdown with checkboxes appears. Check/uncheck options to build your selection. The trigger shows your selected values.
  • Column dropdown — For matrix equality operators, you pick from the matrix question's columns.
  • Item + Position — For ranking operators, you pick an item from the ranking question and enter a position number.
  • Min / Max range — For the Between operator, two number inputs appear with a "to" separator.
  • Text input — For text-based operators or when no predefined options exist.

Tip: When you switch the source question to a different type, the operator automatically resets if the current operator isn't valid for the new question type. For example, switching from a text question (which supports "Contains") to a rating question (which doesn't) will reset the operator to "Equals".

Warning: Display logic hides content from the respondent — it does not change where they go next. Use Skip logic when you need to jump to another section or end the survey.


Was this page helpful?