TL;DR: Forms can now branch based on answers. Set up skip logic, conditional jumps, and score-based routing — all without code. Scoring assigns point values to choices, and you can route respondents to different final pages based on their total score.
#The problem with linear forms
Most forms ask every respondent the same questions in the same order. That works for simple use cases, but falls apart when you need:
- A follow-up question only when someone gives a low rating
- Different paths for different user types
- A quiz that shows different results based on performance
- A survey that skips irrelevant sections
Until now, building this in Polyform meant keeping forms linear and working around the limitations. That changes today.
#Conditional logic
Every page in your form can now have logic rules that control what happens next. The rule builder supports conditions like:
- Equals / not equals — "If answer is 'Yes', jump to page 5"
- Contains / not contains — "If answer contains 'enterprise', show the pricing page"
- Greater than / less than — "If rating is below 3, ask why"
- Is skipped — "If question was skipped, go to the end"
Rules are evaluated in order — first match wins. You set a default action for when no conditions match, so every respondent always has somewhere to go.
This is enough for most survey branching. But we also added something more powerful.
#Scoring
You can now assign point values to individual choice options — on single choice, multiple choice, and image-choice questions. As respondents answer, their score accumulates.
This unlocks a new set of logic operators:
- Score greater than / less than — route based on cumulative score
- Score equals — exact score matching
A typical use case: build a quiz with 10 questions, assign 1 point to each correct answer, then route respondents to different final pages based on their score — "Great job" for 8+, "Not bad" for 5-7, "Try again" for below 5.
You can display the score on the final page using recall syntax: @[Score](__score__) renders the respondent's total.
#Verification
Logic gets complex fast. A form with 15 pages and conditional branching can have orphaned pages that no path reaches, or dead-end branches that don't lead to a final page.
Polly (our AI agent) runs a verification pass after every logic change to catch these issues. You can also test your logic manually in the builder before publishing.
#Trade-offs
Conditional logic adds power but also complexity:
- Debugging branching forms is harder — the more paths you have, the harder it is to reason about every possible route. Start with 2-3 branches before building complex trees.
- Score-based routing works best with discrete choices — text inputs, sliders, and open-ended questions don't contribute to scores.
- Rules evaluate in order — if you have overlapping conditions, the first match wins. This is intentional but can be surprising if you're not careful about rule ordering.
#Getting started
Open any form in the builder, click on a page, and look for the logic tab. From there, add conditions and define where each path leads.
Scoring is available in the page settings for choice-based questions — toggle it on and assign point values to each option.
Both features are available on all plans.