Logic & flow10 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.

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.

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.

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?