Logic & flow6 min read

Flow Editor

Visual survey path, branches, randomizers, global variables, and Set Language.

On this page (9 sections)

The Flow tab gives you a visual map of your entire survey path. Each section, branch, randomizer, loop, and end point appears as an element you can arrange and connect.

Use it together with question-level display logic and skip logic. The hub Logic, Flow & Conditions lists every logic feature and a suggested learning path.

The Flow tab showing the survey flow tree from Survey Start down through each section, with the Global Variables registry above it


The Flow tab#

The Flow tab gives you a visual map of your entire survey path. Each section, branch, randomizer, loop, and end point appears as an element you can arrange and connect.

Use the Flow tab to:

  • See the overall order of sections and logic elements.
  • Confirm where respondents enter or skip particular paths.
  • Add branch elements that route respondents based on conditions. A branch runs only when the respondent reaches it in the flow: an End of Survey or Set Variables inside a branch waits until everything placed above the branch is finished, even if its condition is already true earlier. Once reached, the condition is checked as it stands, whether or not the variables it reads have been set.
  • Add randomizer elements to shuffle or subset sections (randomizers can mix sections and other flow blocks as children).
  • Add end-of-survey elements to control what happens when the survey finishes (completion message, redirect, etc.). An end-of-survey element takes effect only when the respondent reaches its place in the flow. If you give it a condition, the condition is checked at that point, so a screen-out placed after Section 2 that looks at a Section 1 answer still shows the respondent all of Section 2 first.
  • Set or update global variables at specific points in the flow.
  • Add Web Service blocks to call an external API mid-flow — push answers out or pull data back into variables. See Web service block.
  • Switch the respondent's display language mid-survey with a Set Language block (see Set language below).

For a respondent's-eye view of the same logic, use Preview — it runs through all the flow rules just as a real respondent would experience them.

Tip: Section-level display logic is configured on flow blocks as well as in section settings. See Display logic — sections.

For randomizers and loops on the flow map, see Randomization & section loops.


Global variables#

Global variables are named values you can create and use throughout your survey. They're helpful for building more advanced flows.

How to use them#

  1. Go to the builder's settings and open the Global Variables panel.
  2. Create a variable (for example, CustomerSegment).
  3. Use it in conditions, piping, or quota rules anywhere in the survey.

Example uses:

  • Branch the survey based on a running total of "yes" answers.
  • Skip a screening section if a variable indicates the respondent is already qualified.

Variable assignments#

All global variables store text values. When you attach an assignment to a question or flow block, choose how the value is applied:

OperationWhat it doesExample
SetReplace the variable with the given valueSet Region to ${q://Q1/SelectedValue}
IncrementAdd to the current value when both sides are numeric textIncrement YesCount by 1 when the answer is "Yes"
DecrementSubtract when both sides are numeric textDecrement Remaining by ${q://Q5/SelectedValue}
FormulaCompute and store a result as textSet from piped tokens via the formula field

Increment, decrement, and formula assignments are skipped when values cannot be read as numbers. The builder validates formula syntax as you type.

Practical examples#

Example 1 — Copy an answer into a variable On Q1, add an assignment:

  • Operation: Set
  • Value: ${q://Q1/SelectedValue}

Later questions can pipe ${gv://Field/Region}.

Example 2 — Conditional assignment Attach a variable assignment to a question with a condition:

  • Condition: Q4 equals "Premium"
  • Operation: Set
  • Value: VIP

The variable is only updated when the condition is met.

Example 3 — Pipe the result into later questions Once a variable is set, use it in question text with piping:

"Your segment is ${gv://Field/CustomerSegment}."

See Carry forward & piping for more token examples.


Set language#

The Set language flow block changes the respondent's display language partway through the survey. Use it when the language a respondent should see depends on what they tell you — usually a question like "What language do you want to use?" near the start.

How to add a Set Language block#

  1. Make sure your survey has at least one translation language under the Translations tab — the base language plus the translations you want to offer.
  2. (Optional) Add a single-choice question that asks the respondent which language they want.
  3. In the Flow tab, add a Set Language block somewhere after that question.
  4. Choose the language source:
    • Base language — switch back to the survey's base language.
    • Static — always switch to one specific language (e.g. always fr).
    • From question answer — read the respondent's choice from a language-selection question.

The block runs when the respondent finishes the section just before it in the flow, never earlier. From then on, every section, question, system label, and translated string that comes after it is rendered in the chosen language. If multiple Set Language blocks fire on the same page, the last one wins.

Builder shortcut — AI answer autofill#

When you create a single-choice (or multiple-choice) question whose text looks like it's asking the respondent to pick a language (e.g. "What language do you want to use?", "Choose your language"), the builder will automatically:

  1. Run a short AI check to confirm the question is really asking about display language.
  2. Replace the placeholder options (Option 1, Option 2…) with one row per language configured under Translations — with the full English language name as the option text and the locale code (en, es, ja, …) saved on the option's variable name.
  3. Show a small "✨ AI suggestions based on your configured translations" banner above the answer list and highlight the suggested rows.

The autofill only runs while the question is selected, only when the answers are still defaults (or already match the language set), and only when at least two languages are configured. If you customize the rows, the autofill leaves them alone.

This pairing — a language-picker question + a Set Language block set to From question answer — is the recommended way to switch languages at runtime. The mapping from the chosen option back to the locale code happens automatically using the option's variable name.

Note: Set Language requires the target language to be added under Translations. A code that isn't configured is ignored at runtime — the survey stays in the current language.

For translation setup outside the flow, see Multi-Language Surveys.


Was this page helpful?