Domandata
FeaturesProductPlansAboutHelp
Sign InCreate Free Account
Domandata
Follow us on LinkedInFollow us on YouTubeFollow us on XFollow us on Bluesky

Product

  • Features
  • Product
  • Plans
  • Changelog

Company

  • About
  • Cite
  • Help
  • Feedback

Compare

  • Switch to Domandata

Account

  • Sign In
  • Create Account

Legal & Trust

  • Privacy
  • Terms
  • Security
  • Trust Center
  • Status
© 2026 Domandata LLC. All rights reserved.
Back to Help
Flow

Branching and Skip Logic for Research Surveys

Use Flow to build eligibility paths, treatment routes, follow-up sections, and clear endings.

When To Use Branching And Skip Logic

Branching and skip logic send respondents through different survey paths based on answers, variables, quotas, or experimental assignments. Use branching when an academic research survey has eligibility rules, treatment paths, follow-up sections, early exits, or respondent-specific blocks.

Build the route after the blocks and variables exist. Flow can only use information that respondents have already provided or that the survey has already assigned.

“Skip logic” on this page means routing a whole block on the Flow canvas. For a jump driven by a single question’s answer — hide this question, send the respondent to another block, or end the survey — use Skip Rules on the question itself in Block Builder. A Skip Rule redirect takes effect once the respondent finishes the rest of the block that holds the question, so put the deciding question in its own block when the jump must happen immediately.

Flow: Conditions and Routing

Build Branching In Flow

  1. Step 1: Create every destination block first. In Block Builder, add the blocks for eligible, ineligible, treatment, follow-up, quota-full, and completion paths before wiring the route.

    Step 1: Add blocks in Block Builder

  2. Step 2: Collect the routing variable before the split. Put the screener, answer, quota status, or custom variable in a block that respondents reach before the branch.

    Step 2: Name the routing variable

  3. Step 3: Open Flow. Select the Flow tab in the survey editor and locate the block where the route should split.

    Step 3: Open Flow canvas

  4. Step 4: Add the condition set. Use Random Assignment for experiments or By Variable when a previous answer should choose the path.

    Step 4: Add a condition set

  5. Step 5: Connect each outcome. Link every condition arm to the next block respondents should see, including fallback or ineligible routes; use quotas when full cells need their own path.

    Step 5: Connect condition arms

  6. Step 6: Preview each path. Open Preview and test every major route before publishing.

    Step 6: Preview each branch path

Common Research Uses

  • Eligibility screening: route ineligible respondents to an end screen.
  • Experimental treatments: send respondents to control or treatment blocks.
  • Follow-up questions: show additional questions only for relevant answers.
  • Quota management: route respondents when a quota is open or full.
  • Language paths: send respondents to translated blocks when the study supports multiple languages.
  • Longitudinal modules: route returning participants to wave-specific follow-ups when a tracking variable is available.

Preview: Test Each Branch Path

Which Answers Can Drive A Rule

Skip Rule conditions, By Variable branch rules, flow variables, and quota rules can all read answers from most question types, not just multiple choice and dropdown. When the source question has a fixed set of possible values, the value box becomes a picker that lists them. With Equals, a rule matches when the answer includes that value, even if the respondent gave several.

  • Constant Sum: each item that received more than 0 points.
  • MaxDiff: Best: item or Worst: item, for any set where that pick was made.
  • Card Sort: Category: Card for each placement.
  • Text Highlighter: the tag labels the respondent used.
  • Tree Test: Task N: Success, Task N: Failure, or Task N: Gave Up, where N is the task's position in the editor.
  • Heatmap with zones: the labels of the zones clicked, or No Zone.
  • Reaction Time: the mean reaction time in milliseconds, so greater-than and less-than comparisons work.
  • Audio questions: the typed answer or the transcript.
  • File Upload: the file name.
  • Signature: the printed name, or Signed.

Informational content blocks and reCAPTCHA collect no answer, so they are not offered as rule sources.

In Flow, the same searchable source picker is available when you create a value or choose a branch source. Grouped choices include questions, existing Flow values, survey metadata, panel or prior-wave fields, quota/fielding state, and a named parameter from the survey URL. This makes it possible to build a value from several upstream sources instead of copying identifiers between separate controls.

Branching can use a copied or recoded Flow value as one scalar source. A Highest Value Count value returns the single label with the greatest count, including separate counts for comma-delimited selections such as apple, pear. Python branch rules run on the server using the source answer and return an arm when the script sets result = True. Flow-value cycles are rejected, and linked branches are flagged for review when their source options change or disappear.

When a value combines multiple sources, each source appears as a compact removable chip, so the recipe stays readable as it grows. Less-common recode and ranking controls remain available under an advanced disclosure, while new values receive a suggested unique name based on their source that you can still edit.

Every expanded value card shows Built from and Used by. Use those summaries to check that a recode or combined value has the intended inputs and to see which branches, quotas, or other values will be affected before you edit it.

In Survey Preview, the Flow values panel shows the current resolved result for each value. Answer questions and confirm that copied, combined, recoded, or metadata-backed values change as expected before publishing.

Data And Design Notes

Make routing variables easy to find in the export. Use stable answer labels and clear variable names so the path a respondent took can be audited later. For randomized designs, export condition assignments with the response data.

Responses only contain answers from the respondent's final path. If someone answers a question, goes Back, and changes an earlier answer so that question is hidden or its block is skipped, that earlier answer is dropped when they submit, so your export never shows answers to questions they did not end up seeing. Preview test responses work the same way.

Retest every path after changing answer labels, recodes, or block order — any of these can silently break an existing branch.
  • Place source variables early: do not branch on a question that appears after the split.
  • Create fallback paths: decide what happens when an answer is missing, a quota is full, or no condition matches.
  • Name end screens clearly: separate completion, ineligible, quota-full, and debriefing endings.
  • Retest after edits: changing answer labels, recodes, or block order can change how a branch behaves.

Block Builder: Variable Name

Related Help

  • Create and Manage Follow-Up Questions for conditional questions inside one block
  • Create Experimental Conditions
  • Set Survey Quotas
  • Multiple Choice Survey Questions
  • Preview and Pilot Test a Survey

Frequently Asked Questions

When should a research survey use branching or skip logic?

Use branching for eligibility rules, treatment paths, follow-up sections, early exits, language paths, or quota-full endings — whenever respondents should not all see the same sequence.

How do I build skip logic without custom JavaScript?

Create destination blocks first, collect the routing variable before the split, then connect condition arms in Flow. Preview every major path before launch.

Why did a branch stop working after an edit?

Changing answer labels, recodes, or block order can break an existing route. Retest every path after those edits, and keep routing variables early in the instrument.