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.
| Page | Asks | Then goes to |
|---|---|---|
| 1 | Name, Ticket (Student or Adult) | Student → Student details, Adult → Adult details |
| Student details | School | Thanks |
| Adult details | Company | Thanks (the next page) |
| Thanks | Anything 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. Page 1 Ticket
- Student → Student details
- Adult → Adult details
- 2. Student details School
- then → Meal
- 3. Adult details Company
- then → Meal
- 4. Meal Meal
- then → Thanks
- 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. Page 1 Name, Ticket
- Student → Student details
- Adult → Adult details
- 2. Student details School
- then → Adult details
- 3. Adult details Company
- then → Thanks
- 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. Page 1 Name, Ticket
- Student → Student details
- Adult → Adult details
- 2. Student details School
- then → Thanks
- 3. Adult details Company
- then → Thanks
- 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. Page 1 Plan
- Free → submits
- Pro or Team → Payment
- 2. Payment Seats
- then → Thanks
- 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. Page 1 Plan
- Free → submits
- Pro or Team → Payment
- 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. Page 1 Ticket
- Student → Student details
- Adult → Adult details
- 2. Student details School
- then → Payment
- 3. Adult details Company
- then → Payment
- 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. Page 1 Ticket
- Student → Student details
- Adult → Adult details
- 2. Student details School
- then → submits
- 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. Page 1 Ticket
- Student → Student details
- Adult → Adult details
- 2. Student details Name
- then → Thanks
- 3. Adult details Name
- then → Thanks
- 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#1andName#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.