Dotdown™ · .page guide

Plan a form with pages

Pages are easy. Where each answer sends people is logic, and a form that sends people the wrong way looks fine until someone fills it in. Plan the route first, then type it.

Plan it on paper first

Before you type anything, write one row per page. For each, note what it asks and where it goes next.

PageAsksThen goes to
1Name, Ticket (Student or Adult)Student → Student details, Adult → Adult details
Student detailsSchoolThanks
Adult detailsCompanyThanks (the next page)
ThanksAnything else?submit
  • The first column is the order you will type them in. Jumps only go forward, so anything everyone ends on goes last.
  • Circle the one question on each page that decides where people go. A page needs only one.
  • If a row says “then goes to” something other than the next row, that page needs a >.

The one rule

One question with jumps per page. If two questions on a page both have >, only the last one decides, and the other is ignored.

Wrong: two jumping questions on one page

.select Ticket*: Student > Student details, Adult > Adult details
.select Meal*: Veg > Thanks, Meat > Thanks
.page Student details
.text School
.page Adult details
.text Company
.page Thanks
.textarea Anything else?
  • Page 1 has 2 questions with jumps. Only the last one decides.
  • No answer leads to page "Student details", so nobody will see it.
  • No answer leads to page "Adult details", so nobody will see it.

Right: give the second question its own page

.select Ticket*: Student > Student details, Adult > Adult details
.page Student details > Meal
.text School
.page Adult details > Meal
.text Company
.page Meal
.select Meal*: Veg, Meat
.page Thanks
.textarea Anything else?
  1. 1. Page 1 Ticket
    • Student → Student details
    • Adult → Adult details
  2. 2. Student details School
    • then → Meal
  3. 3. Adult details Company
    • then → Meal
  4. 4. Meal Meal
    • then → Thanks
  5. 5. Thanks Anything else?
    • then → submits

What each visitor sees

  • Ticket = Student Page 1 → Student details → Meal → Thanks → submit
  • Ticket = Adult Page 1 → Adult details → Meal → Thanks → submit

A page’s own > after is fine next to that one question. It only covers answers that have no jump.

Gotchas

A branch carries on into the next branch

The most common one. A page with no > goes to the next page in the list, even when that page belongs to another answer.

Wrong: a student ends up on the adult page

.text Name*
.select Ticket*: Student > Student details, Adult > Adult details

.page Student details
.text School*

.page Adult details
.text Company

.page Thanks
.textarea Anything else?
  • Page "Student details" carries on to page "Adult details". If it should end there, add > submit to .page Student details, or > the shared page's title.
  1. 1. Page 1 Name, Ticket
    • Student → Student details
    • Adult → Adult details
  2. 2. Student details School
    • then → Adult details
  3. 3. Adult details Company
    • then → Thanks
  4. 4. Thanks Anything else?
    • then → submits

What each visitor sees

  • Ticket = Student Page 1 → Student details → Adult details → Thanks → submit
  • Ticket = Adult Page 1 → Adult details → Thanks → submit

Right: send the student page on to the shared page

.page Student details > Thanks
  1. 1. Page 1 Name, Ticket
    • Student → Student details
    • Adult → Adult details
  2. 2. Student details School
    • then → Thanks
  3. 3. Adult details Company
    • then → Thanks
  4. 4. Thanks Anything else?
    • then → submits

What each visitor sees

  • Ticket = Student Page 1 → Student details → Thanks → submit
  • Ticket = Adult Page 1 → Adult details → Thanks → submit

Use > submit instead if that branch should end the form.

An answer with no > goes to the next page

.select Plan*: Free > submit, Pro > Payment, Team
// Team has no jump
.page Payment
.number Seats
.page Thanks
.textarea Anything else?
  1. 1. Page 1 Plan
    • Free → submits
    • Pro or Team → Payment
  2. 2. Payment Seats
    • then → Thanks
  3. 3. Thanks Anything else?
    • then → submits

What each visitor sees

  • Plan = Free Page 1 → submit
  • Plan = Pro or Team Page 1 → Payment → Thanks → submit

Team has no jump, so it follows the page’s own >, or else the next page.

Jumps only go forward

A jump to an earlier page is an error, so a form can never loop. Order your pages so every destination comes after the question that points to it.

.page Intro
.text Name
.page Details
.select Again?: Yes > Intro, No > submit
  • "Again?": "Intro" goes back to an earlier page. Jumps can only go forward.

The last page always submits

You never need > submit on the last page. Leave it blank.

A page nothing leads to is never seen

If every answer jumps somewhere else, a page that none of them point to is dead.

.select Plan*: Free > submit, Pro > submit
.page Payment
.number Seats
  • No answer leads to page "Payment", so nobody will see it.

Skipped pages are not asked or saved

A page the visitor never reaches is not checked, so its required fields do not block them, and nothing from it is sent. If they go back and change an answer, answers from pages they no longer reach are dropped.

A default answer still jumps

A default on a jumping question counts as the answer. With .select Plan = Free: Free > submit, Pro, a visitor who leaves it alone submits straight away.

Three shapes that cover most forms

Skip ahead

One answer leaves early; the rest go on.

.select Plan*: Free > submit, Pro, Team
.page Payment
.number Seats
  1. 1. Page 1 Plan
    • Free → submits
    • Pro or Team → Payment
  2. 2. Payment Seats
    • then → submits

What each visitor sees

  • Plan = Free Page 1 → submit
  • Plan = Pro or Team Page 1 → Payment → submit

Fork and rejoin

Each answer gets its own page, then everyone meets again. The branch that is not next to the shared page needs a > to it.

.select Ticket*: Student > Student details, Adult > Adult details
.page Student details > Payment
.text School
.page Adult details
.text Company
.page Payment
.number Seats
  1. 1. Page 1 Ticket
    • Student → Student details
    • Adult → Adult details
  2. 2. Student details School
    • then → Payment
  3. 3. Adult details Company
    • then → Payment
  4. 4. Payment Seats
    • then → submits

What each visitor sees

  • Ticket = Student Page 1 → Student details → Payment → submit
  • Ticket = Adult Page 1 → Adult details → Payment → submit

Separate endings

Each answer has its own pages and ends there. Every branch except the last needs > submit.

.select Ticket*: Student > Student details, Adult > Adult details
.page Student details > submit
.text School
.page Adult details
.text Company
  1. 1. Page 1 Ticket
    • Student → Student details
    • Adult → Adult details
  2. 2. Student details School
    • then → submits
  3. 3. Adult details Company
    • then → submits

What each visitor sees

  • Ticket = Student Page 1 → Student details → submit
  • Ticket = Adult Page 1 → Adult details → submit

Same name on different pages

Branch pages often ask the same thing: Name on the Student page and Name on the Adult page. That is fine, because nobody sees both. Both answers go in one column of your export.

.select Ticket*: Student > Student details, Adult > Adult details
.page Student details > Thanks
.text Name*
.page Adult details
.text Name*
.page Thanks
.textarea Anything else?
  1. 1. Page 1 Ticket
    • Student → Student details
    • Adult → Adult details
  2. 2. Student details Name
    • then → Thanks
  3. 3. Adult details Name
    • then → Thanks
  4. 4. Thanks Anything else?
    • then → submits

What each visitor sees

  • Ticket = Student Page 1 → Student details → Thanks → submit
  • Ticket = Adult Page 1 → Adult details → Thanks → submit
  • It only works while the pages can never both be visited. Fix a branch that falls through into the other and the same name becomes an error, with buttons that fix it.
  • To keep two fields in separate columns anywhere, add a #: Name#1 and Name#2. Visitors see “Name”. Details

Try your own flow

Paste Dotdown™ below to see the route of every visitor. It starts with the mistake from the first gotcha: add > Thanks to the Student details page and the warning goes away.

Test every path

The flow map shows what the form should do. To see it work, open the form with ?test=1 on the end of its link (or the Test button on your dashboard). Walk each route once. Nothing you submit in test mode is saved or sent.

Checklist

  • Every page has one way forward: one question with jumps, or one > after, or the next page.
  • Every branch page ends where you mean it to: > submit, or > the shared page.
  • Shared pages (the ones everyone ends on) come last, because jumps only go forward.
  • Open the flow map and read each visitor’s route out loud.
  • Walk each route once with the test link.

Looking for the syntax only? See Pages and jumps on the Dotdown™ page.