The forms you can build with the platform are endlessly extendable, and can include complex interactions, both with other parts of the platform and third party services. Keeping track of a user's journey through a form is crucial to managing the actions that have been performed, preventing double submissions, and keeping a user's data secure.
Before we look at what happens when you use your browser's back button, you'll need a brief overview of how forms manage sessions and store the values that have been entered into them.
Form and Page Sessions
What is a session? A session ties together a form, its pages, and the values you enter into a form while you are filling it out. When you submit a form, the session ends.
Each time a form is displayed on a page of your site, a unique session ID is assigned to it. You can see this ID in the browser address bar when you navigate between pages on a multipage form. It's how the platform knows that when you go to the next page of a form, you are still you, and the values you have entered so far belong to the same form.
An example URL, showing the unique IDs that identify the session:

Cookies
Although not directly relevant to browser back buttons, it's worth mentioning cookies.
When you start to fill out a form, a single cookie is also set by the platform. This cookie contains a unique ID which the forms service matches to your session. That means that if you post a link to a form and include the session ID in the URL, anyone else who clicks on the link will be assigned their own new session.
One-time IDs
As well as the session ID, each page of a form generates a unique ID every time it is visited. This unique ID is passed back to the platform when the page is submitted to prevent double submission of the same page.
It's the combination of all of these IDs that allow your users to navigate through pages of your form, and for all of the JavaScript functions, branching navigation, validation, and form actions to execute safely, in a controlled way, while securely storing form data (the values entered into the form) until the form is submitted. When a form is submitted, the final form actions pass the data on to another service, and the session ends - the data in the session is removed.
Browser Back Buttons
Browsers keep a simple list of the page URLs you have visited, including any additional parameters on those URLs (ie all of the session IDs).
That behaviour presents a challenge for any forms platform that wants to operate securely, in a controlled and predictable way, or that can integrate with third party services. An example would be a form that takes payments - you don't want to risk a user going back and forwards in their browser and being charged twice.
When someone uses the browser back button, our forms do the following:
- If a form has already been submitted, you are taken to the first page of the form, not the last
- If you are part way through a multipage form, you'll see a "Resume session" button. The form will safely reload the latest page data from the form session, not simply display the data that the browser may or may not have cached
