LogoLogo
Back to studio
  • 🧠Core Concepts
    • Introduction to Formsort
    • Formsort quickstart guides
      • Add content and collect answers
      • Capture demographic data
      • Add informational content
      • Template your variables
      • Add conditional logic
      • Using conditional logic with Calculated and API variables
      • Add a scheduling option
      • End the flow
      • Review your variable schema
      • Set up integrations
    • How data works in Formsort
      • Responder UUIDs
    • Understanding flows
    • Versioning in Formsort (Deploying)
      • Variant revisions
      • Managing revisions
  • ✨Creating Flows
    • Building a new flow
      • Groups
      • Steps
      • Copy-pasting form content
  • Adding questions and content
    • Questions
      • Select
      • Text
      • Address
      • Comparison
      • Confirmation
      • Date
      • Date & time
      • Email address
      • File upload
      • Grid choice
      • Iframe
      • Image upload
      • Number
      • Payment
      • Phone number
      • Postal code
      • Question group
      • Region
      • Signature
      • SSN
      • Yes/No
    • Content
      • Statement
      • Image
      • Next button
      • Video
      • Divider
      • Map
  • Controlling the flow with conditions and logic
    • Advanced logic
  • Variable templating
  • Redirects and endings
  • Field validation
  • Flow and variant management
  • Content library
  • 🧬JSON Form Definition
  • JSON schemas
  • Validating flow schemas
  • Events subscriptions
  • Flow content data format
  • 🎨Styling
    • Customizing appearance
      • Content area & form layout
      • Buttons
      • Typography
      • UI states
      • Color and dimension variables
      • Question containers
      • Inputs and dropdowns
      • Checkmarks
      • Tables
      • Sliders
      • Divider lines
      • Progress bar
      • Comparison cards
      • Animations and transitions
  • CSS & Advanced Styling
    • Custom CSS overrides
    • Step styling
    • CSS reference
  • 🔁Form Behavior Settings
    • Variant settings
      • Form behavior for returning users
      • Group ranking API
    • Navigation sidebar
  • ⚙️Response Data Collection & Management
    • Schema (variables)
      • Variables from questions
      • Externally provided variables
      • Calculated variables
      • API lookups
      • System Library variables
      • Orphaned variables
  • Saving & retrieving responses
  • Importing Data
    • URL parameters
    • POST body
    • Embed query parameters
  • 📊Analytics and Attribution
    • Built-in analytics
    • Split testing
  • 🚀Publishing and Deployment
    • Live preview overview
    • Environments
      • Loading different environments
    • Embedding
      • Web-embed API
        • React-embed
      • Adding authentication
      • Embedding forms in iOS and Android
      • Setting up a dev environment
    • Pre-deployment checklist
  • 📁Workspace Management
    • Accounts
      • Roles and permissions
    • Custom domains
    • Workspace domain detection
  • 🛠️Formsort Admin API
    • Admin API
  • 🔌Integrations
    • Form answers and events
      • Analytics events
      • Signed requests
      • Event payload shape
      • Submission frequencies
      • Runtime error reporting
    • Integration reference
      • Amplitude
        • Amplitude cross domain tracking
      • BigQuery
      • FullStory
      • Google Analytics
        • Updating from Universal Analytics to GA4
      • Google Cloud Storage
      • Google Sheets
      • Google Tag Manager (GTM)
        • JavaScript triggered by flow events
      • Hubspot
      • Jornaya
      • Optimizely
      • PostgreSQL
      • Redshift
      • Rudderstack
      • S3
      • Salesforce
      • Segment
        • Segment Setup
        • Segment cross domain tracking
      • Stripe
      • TrustedForm
      • Webhooks
        • Zapier
Powered by GitBook
On this page
  • Settings
  • Logic
  • Common Step Patterns: Collecting a Waitlist Email from Disqualified Responders

Was this helpful?

  1. Creating Flows
  2. Building a new flow

Steps

Steps are containers for questions and content.

PreviousGroupsNextCopy-pasting form content

Last updated 2 days ago

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.


Settings

Step ID

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.

Auto-advance after ms

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).

Is savepoint

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.


Logic

Steps can be conditionally rendered based on previous answers and can control flow navigation.

Show conditionally

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.

Disable back navigation

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).

Disable forward navigation

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.

Finalizing steps

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.


Common Step Patterns: Collecting a Waitlist Email from Disqualified Responders

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:

  1. 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.

  2. 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.

✨
💡
💡
calculated answer
API answer
Rendering the first step based on an external variable value
library variable