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.

Flow: Conditions and Routing

Block Builder
Preview
Deploy

Flow Canvas

Interactive routing surface from the app, running in no-persist help mode.

Consent and Study Intro

1 question

Political Knowledge Block

2 questions

Control Message

1 question

Treatment Message

1 question

Outcome Measures

2 questions

Survey Ends

Anchors explicit end of survey

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

    Survey Editor

    No-persist demo using the real builder shell.

    Add a Block

    Trash is empty.

  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

    Block Builder: Voter Registration Screener

    The registered_voter variable drives the Flow branch — eligible respondents continue, ineligible route to a screen-out end screen.

    Closing text
    Redirect (optional)
  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

    Block Builder
    Preview
    Deploy

    Flow Canvas

    Interactive routing surface from the app, running in no-persist help mode.

    Consent and Study Intro

    1 question

    Political Knowledge Block

    2 questions

    Control Message

    1 question

    Treatment Message

    1 question

    Outcome Measures

    2 questions

    Survey Ends

    Anchors explicit end of survey

  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

    Block Builder
    Preview
    Deploy

    Flow Canvas

    Interactive routing surface from the app, running in no-persist help mode.

    Consent and Study Intro

    1 question

    Political Knowledge Block

    2 questions

    Control Message

    1 question

    Treatment Message

    1 question

    Outcome Measures

    2 questions

    Survey Ends

    Anchors explicit end of survey

  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

    Block Builder
    Preview
    Deploy

    Flow Canvas

    Interactive routing surface from the app, running in no-persist help mode.

    Consent and Study Intro

    1 question

    Political Knowledge Block

    2 questions

    Control Message

    1 question

    Treatment Message

    1 question

    Outcome Measures

    2 questions

    Survey Ends

    Anchors explicit end of survey

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

    Step 6: Preview each branch path

    Block Builder
    Preview
    Deploy

    Preview: Voter Screener

    Answer 'No, I am not registered' to trace the ineligible branch in Flow. Confirm respondents reach the Screen Out end screen.

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

Block Builder
Preview
Deploy

Preview

Walk through respondent-facing behavior in the same preview surface.

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.

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

Block Builder: Question Name

The export variable label is the column name for this question in downloaded data.

Closing text
Redirect (optional)

Related Help