Logic Jumps
Branch your feedback form based on answers, context, and user traits
Logic jumps let you send respondents to different questions based on their answers, workflow context, or user traits—so they can skip irrelevant steps and follow branching paths instead of a single fixed order.
The Logic jumps tab sits in the feedback editor next to Form and Appearance. Use Form to add questions and pages first; then open Logic jumps to design and test branching.
Before you start
- Add questions on the Form tab. The logic jumps canvas stays empty until at least one question exists.
- For paths that should end without a thank-you screen, add an Exit form in the Thank you & Exit Section and use it as a jump target.
Enable logic jumps
At the top of the Logic jumps tab, turn on Enable logic jumps.
- When enabled, the flow canvas appears with a Start node, your questions, and routing edges.
- When you turn logic jumps off, a confirmation dialog warns that all logic jump rules, canvas layout, and workflow context for this feedback are cleared. You can enable logic jumps again later, but you will need to set them up from scratch.
Flow canvas
The canvas is an interactive graph of your form flow:
| Element | Description |
|---|---|
| Start | Entry point before the first question. Rules here choose which question respondents see first. |
| Question nodes | One node per form element (welcome, questions, message panels, thank-you screens, exit form). Each shows the type badge and title. |
| Section backgrounds | Faint regions grouping nodes by form page/section. |
| Edges | Lines from a source to a Go to target. Custom rules use the default edge style; the automatic Else (default) rule uses a fuchsia edge. |
Canvas controls
- Pan and zoom the graph; use the minimap and fit view control in the corner.
- Open fullscreen for a larger canvas on complex forms.
- When zoomed out, nodes switch to a compact view (type + title only). Zoom in to add or edit rules—compact nodes show a hint if you click them while zoomed out.
Visual indicators
- Yellow border — Hidden question (skipped at runtime like welcome/message panels; still routable).
- Red border — Never reached: no incoming logic jump targets this question (orphan in the graph).
Terminal screens (Thank you screen, Exit form) appear at the end of the logic order even if they live in the Thank you & Exit Section on the Form tab. They cannot have outgoing Else rules.
How routing works
For each question (and for Start), the runtime evaluates rules in this order:
- Custom rules — Listed on the node; evaluated top to bottom.
- Else (default) rule — Always true (
1 = 1); catches every case no custom rule matched. You can change only its Go to target.
The first rule whose conditions match wins. Its Go to target is where the respondent goes next.
Start node
- Start rules run before any question is shown and pick the first question (or a later jump target).
- If no Start rule matches, the respondent begins at the first question in logic order.
Linear fallback
- If no rule matches at a question and there is no valid default target, flow continues to the next question in order on the canvas.
Safety
- If routing would loop forever, the engine stops at a cycle instead of hanging.
Passthrough questions
- Welcome screen and Message panel do not collect answers; rules on them still run.
- Hidden questions are auto-skipped for respondents but remain on the canvas for routing.
Create and edit rules
On any non-terminal node (or on Start), use Add rule or click an existing rule to open the rule editor.
| Field | Behavior |
|---|---|
| Rule title | Required for custom rules. Must be unique per source node (case-insensitive). |
| Go to | Target question. Must appear after the source in logic order (forward jumps only). |
| Conditions | One or more conditions combined with AND or OR. |
| Delete | Remove a custom rule. The Else rule cannot be deleted. |
Condition sources
- On a question node: conditions can reference that question and any earlier question that supports operators (see table below).
- On Start: conditions can use workflow context, user traits, or later questions when testing with prefilled answers (see Start node section).
Matrix questions
- For rating matrix and matrix choice types, pick the row/statement the condition applies to, then set the operator and value for that row.
Else (default) rule
Every non-terminal question gets an automatic Else rule:
- It always matches when no custom rule does.
- In the editor it is titled default; on the canvas its edge is fuchsia.
- You can only change its Go to target—not its conditions or title.
Use custom rules for branches; use Else for “everyone else goes here.”
Terminal targets
| Target | Effect |
|---|---|
| Thank you screen | Shows your closing screen, then submission completes. |
| Exit form | Ends the session silently with no visible closing UI. |
Place thank-you screens and the optional exit form in the Thank you & Exit Section on the Form tab. In the logic graph they still act as valid Go to targets for any branch.
Start node and workflow context
Workflow context
On the Start node, open Workflow context to define keys and types available when the form begins:
| Type | Example use |
|---|---|
string | Plan name, locale, feature flag |
number | Account tier, seat count |
date | Trial end, contract date |
boolean | Beta access, admin flag |
Each field becomes context.<key> in Start conditions (for example context.plan).
Keys must be unique. Save the dialog to apply changes.
User traits
Start rules can also test user traits as contact.<slug> (for example contact.role), using the trait’s data type for operators.
Traits must exist in your project and be enabled; only types that map to string, number, date, or boolean are available in the rule editor.
Prefilled questions on Start
For testing or advanced flows, Start conditions may reference forward questions (answered via SDK prefill before the form opens). See Test logic jumps below.
SDK and runtime data
Pass metadata when showing the form so Start rules can branch immediately:
_encatch.showForm('form-abc-123', {
context: { plan: 'enterprise' },
});The context object in showForm is the same data exposed as context.* in Start rules. Identify users with traits before showForm when rules depend on contact.*.
Operators by question type
Operators depend on the question (or context field) type. Unsupported types (welcome, thank you, exit form, message panel) cannot be used as condition sources.
| Group | Question types (examples) | Operators |
|---|---|---|
| Text | Short answer, long answer, email, website, phone, annotation | is, is not, contains, does not contain, is empty, is not empty |
| Number / scale | Rating, NPS, CSAT, opinion scale, number, date | is, is not, greater/less than (or equal) |
| Single value | Single choice, yes/no, consent, matrix single per row | is, is not |
| Multi value | Multiple choice, nested selection, ranking, picture choice, matrix multiple per row | contains option, does not contain option, is empty, is not empty |
| Matrix rating | Rating matrix (per row) | Same as number/scale for that row |
| Structured | Address (country, etc.) | is, is not, is empty, is not empty |
| Presence only | File upload, video/audio, signature, Q&A with AI, scheduler, payments | is empty, is not empty |
| Context / traits | Workflow context, user traits on Start | Matches field type (text/number/date/boolean operators) |
For full field-level options, see the Element Types Overview.
Test logic jumps
Use Test logic jumps to simulate paths without publishing:
- Test mode — In app (embedded preview) or Shareable (full-page style).
- Context & contact variables — Enter sample values for
context.*andcontact.*used in Start rules. - Prefill responses — Set answers for questions before the live preview runs (mirrors SDK
addToResponse). - Live preview — Answer questions in the preview; the canvas highlights the traced path (green = visited, blue pulse = current stop).
Edges and nodes update as rules fire so you can confirm branching before go-live.
Form tab interactions
Changes on the Form tab affect logic jumps automatically:
- Reorder or delete questions — Custom rules whose target points backward, or whose conditions reference questions that now come after the source, are removed. You may see a toast listing pruned rule names.
- Hidden questions — Still on the canvas but skipped for respondents; rules can still target or source them where supported.
After large structural edits, review the canvas for Never reached (red) nodes and fix routing.
Viewing responses
When logic jumps are enabled, submissions store which questions were on the respondent’s path.
In Individual Responses, switch to Respondent path to see only questions the person actually saw—not the full form outline.
Examples
NPS follow-up by score
- Add an NPS question, a long-answer follow-up, and a thank-you screen.
- On the NPS node, add a rule Detractor follow-up: NPS is less than 7 → Go to long answer.
- Add a rule Promoter thanks: NPS is greater than or equal to 9 → Go to thank you.
- Set Else → thank you (or another neutral path).
Start by plan (SDK context)
- In Workflow context, add
plan(string). - On Start, add a rule:
context.planisenterprise→ Go to your premium block’s first question. - Set Start Else → default first question.
- Launch with
showForm(..., { context: { plan: 'enterprise' } }).
Silent exit for disqualified respondents
- Add an Exit form at the end of the Thank you & Exit Section.
- On a screening question, add a rule: answer is “No” → Go to Exit form.
- Set Else → continue the main survey.
Respondents on that branch end immediately with no thank-you screen.
Was this page helpful?