Branching Logic
Show questions based on previous answers
Branching Logic
Create dynamic surveys that adapt to respondent answers. Show or hide questions based on conditions, skip irrelevant sections, and create personalized survey paths for each respondent.
Quick Start
Add branching logic to your survey in three steps:
- Create your questions - Build the questions that will control the logic in your survey sections
- Set conditions - Define when questions or sections should appear based on previous answers
- Test the flow - Use the Preview button to verify each path works correctly
How It Works
Branching logic evaluates respondent answers in real-time:
- When a respondent answers a question, the system checks all conditions
- Questions with unmet conditions are hidden
- Sections with matching exclusion values are skipped entirely
- The survey flow adjusts automatically, showing only relevant content
- Response data includes only the questions that were displayed
Condition Logic
Srvey uses a simple but powerful condition system based on answer matching:
| Level | Logic | Description |
|---|---|---|
| Question | Show if matches | Show this question only if a previous question has one of the selected values |
| Section | Hide if matches | Hide this entire section if a previous question has one of the selected values |
Setting Up Conditions
Question-Level Conditions
- Open the Section Manager for your survey and click into a section
- Click on the question you want to conditionally show
- Scroll to the Conditional Display section
- Select the trigger question from "Show this question only if..."
- Check one or more answer values that should make this question appear
- Save the question
Section-Level Conditions
Apply conditions to entire sections to skip groups of questions:
- Open the Section Manager for your survey
- Click on the section you want to conditionally hide
- Go to the Conditional Display section in the modal
- Select the trigger question from "Hide this section if..."
- Check the answer values that should hide this section
- Save the section
How Conditions Work
Question conditions use OR logic: If you select multiple values, the question appears when the trigger question has ANY of the selected values.
Section conditions use exclusion: If you select values, the section is HIDDEN when the trigger question has ANY of those values.
Real-World Examples
Example: Product Eligibility Screening
Scenario: Only show product-specific questions to users of that product.
Section 1: Product Selection
Q1 (key: products): Which products do you use?
[ ] Product A
[ ] Product B
[ ] Product C
Section 2: Product A Feedback
Hide if "products" has values: Product B, Product C (users who only use B/C skip this)
- Q2: Rate Product A (1-5)
- Q3: What do you like about Product A?
Section 3: Product B Feedback
Hide if "products" has values: Product A, Product C
- Q4: Rate Product B (1-5)
- Q5: What do you like about Product B?
Example: Follow-up on Negative Responses
Scenario: Ask for details when someone gives a low rating.
Section 1: Initial Feedback
Q1 (key: satisfaction): How satisfied are you?
- Very satisfied
- Satisfied
- Neutral
- Dissatisfied
- Very dissatisfied
Q2: What could we improve?
Show only if "satisfaction" has: Neutral, Dissatisfied, Very dissatisfied
[Text area for feedback]
Q3: Would you like us to contact you?
Show only if "satisfaction" has: Dissatisfied, Very dissatisfied
- Yes, please reach out
- No thanks
Example: Role-Based Survey Paths
Scenario: Different questions for managers vs. individual contributors.
Section 1: Role Selection
Q1 (key: role): What is your role?
- Individual Contributor
- Manager
- Executive
Section 2: Team Management
Hide if "role" has: Individual Contributor
- Team size questions
- Management challenges
Section 3: Work Experience
Hide if "role" has: Manager, Executive
- Day-to-day work questions
- Career growth questions
Plan Availability
| Feature | Free | Pro | Enterprise |
|---|---|---|---|
| Question-level conditions | - | Yes | Yes |
| Section-level conditions | - | Yes | Yes |
| Multiple trigger values | - | Yes | Yes |
Branching logic requires the Pro plan or above.
Troubleshooting
Issue: Condition not working
Symptoms: Question appears when it should be hidden, or vice versa.
Solutions:
- Verify the trigger question has been answered before this question appears
- Check you selected the correct values in the condition
- Remember: question conditions SHOW when values match; section conditions HIDE when values match
- Preview the survey and test the specific path
Issue: Cannot select a trigger question
Symptoms: No questions available in the condition dropdown.
Solutions:
- Only Single Choice, Multiple Choice, and Dropdown questions can be triggers
- Only questions from PREVIOUS sections can be triggers (to prevent circular dependencies)
- Add a qualifying question to an earlier section first
Issue: Data missing in exports
Symptoms: Some question responses are blank.
Solutions:
- This is expected behavior: questions with unmet conditions are not shown to respondents
- Check if the respondent's path included those questions
- Review the branching logic to understand which paths exist
Best Practices
- Test all branching paths - Preview and complete the survey through each possible path
- Keep logic simple - Complex logic is harder to maintain and debug
- Use descriptive question keys - Makes conditions easier to understand (e.g., "role" not "q1")
- Place trigger questions first - Put qualifying questions in early sections so they can be referenced later
- Consider the inverse - Section conditions hide content; plan accordingly when designing your flow
- Document complex flows - Use section descriptions to explain the logic for team members