Steps
Steps are containers for questions and content.
Last updated
Was this helpful?
Steps are containers for questions and content.
Last updated
Was this helpful?
A step is viewed as a single page within a flow, which may contain one or many questions. Steps themselves act as containers and do not collect information directly.
In the Studio, steps can be easily reordered by dragging and dropping them. Each step is indexed in the top-left corner (e.g., "Step 1") for easy reference. When a user navigates through a live flow, the step index is reflected in the URL, allowing browser navigation between steps. For example, the URL https://formsortstuff.formsort.app/flow/all-components/variant/main#1
indicates that the user is at step index 1.
Each step has its own settings, logic, styling, and redirect behavior.
Assigning a Step ID creates a stable reference for a step even as steps are reordered or renamed. This is especially helpful for analytics, where tracking step performance across versions is important, and for applying custom CSS. Step IDs must be unique when set but are not required—if omitted, the step index will be used instead in analytics payloads.
If enabled, the step will automatically advance after the specified timeout. This is useful for creating interstitial screens that do not require user input. Auto-advancement will only occur if:
All required questions are answered,
All questions are optional, or
No questions are present (e.g., only Statements or Images).
If your answer submission frequency is set to On savepoint or When the flow is finalized or abandoned, enabling Is savepoint ensures that responder answers are submitted to your integrations when this step is completed.
Steps can be conditionally rendered based on previous answers and can control flow navigation.
Use conditional logic to show or hide steps based on answers provided earlier in the flow. Logic cannot be based on answers that come later.
When enabled, responders cannot navigate backward past the step. The "Previous" button will be hidden, and browser back navigation will be disabled. This is useful for steps where changing earlier responses would not make sense (e.g., after a payment has been completed).
When enabled, responders cannot move forward from the step. This finalizes the form session when the step loads, preventing further answer collection. Content like Images or Statements can still be displayed.
If Is finalizing? is enabled:
The FlowFinalized
event will be emitted to analytics integrations upon loading.
An answer payload with finalized: true
will be delivered to your answer integrations.
Responders will not be able to advance beyond this step, and redirects cannot be configured for it.
Since the flow is finalized when the step loads, you cannot collect answers from a finalizing step.
Let’s put some of the Step settings and logic into action with a common pattern: collecting an email address from users who are disqualified from continuing. This approach helps you build waitlists, collect feedback, or stay in touch with users who don't complete the primary flow.
To implement this pattern:
Add a waitlist step:
Create a step containing the questions you want to ask disqualified users (for example, an email input saved as waitlist_email
). Set a show condition on the step: is_disqualified Equals true
.
This ensures only disqualified users see this step and can submit their contact information.
To prevent users from returning to earlier questions and altering their answers to re-qualify, enable Disable back navigation on this step.
Finalize the experience: After collecting the waitlist information, you can either:
Option 1: Show a thank-you step: Add a final step that displays informational content (e.g., a thank-you message).
Set Disable forward navigation so the responder cannot proceed further.
Set the step to show conditionally if waitlist_email Is defined
, ensuring it only appears if an email is provided.
Optionally, enable Finalizing to trigger a FlowFinalized
event for your analytics and integrations.
Option 2: Redirect the user: Instead of showing a final step, you can configure a redirect to send the responder to an external page, such as your homepage or a custom thank-you page. This can be done by setting a redirect conditionally after the waitlist step is completed.
For more information about redirects, see the Redirects section.
To include Step ID in the form submission payload, add current step id to your schema.
See Conditions and Logic for more details.
Determine disqualification:
Use a or to evaluate whether a responder should be disqualified. Name it something semantic, such as is_disqualified
.