--- title: "Hidden steps" slug: "hidden-steps" description: "Learn how to implement hidden steps in Userflow while ensuring users don't get stuck, optimizing their experience with effective triggers and flows." updated: 2026-11-09T16:31:51Z published: 2026-11-09T16:31:51Z canonical: "help.userflow.com/hidden-steps" --- > ## Documentation Index > Fetch the complete documentation index at: https://help.userflow.com/llms.txt > Use this file to discover all available pages before exploring further. # Hidden steps A hidden step is a flow step that shows nothing on screen. It waits in the background until one of its triggers fires, then moves the flow on. Use one when the step before it asks the user to do something in your app and you don't want any Userflow content showing while they do it. > [!WARNING] > Caution > > A hidden step must have at least one trigger that reliably fires during the user's current session and leads to a visible step, a new flow, or the end of the flow. If its triggers never fire, or take a long time, the user is stuck on the hidden step. They won't see any Userflow content, but the active flow blocks other content, including flows, checklists, and launchers, from appearing. > > Make sure users leave hidden steps quickly so other content isn't blocked. ## How do I make sure users don't get stuck on a hidden step? Write triggers for the wrong path as well as the right one. Users don't always do what the flow expects. **Example:** a project creation flow asks users to click **New project**, which opens a modal in your app. The flow should stay hidden while the user fills in the modal, then continue once the project is created. A first attempt could look like this: ![A flow where a hidden step waits only for the Create project button to be clicked](https://cdn.us.document360.io/9697557a-eb5d-476f-9b09-062b0f7bdcbd/Images/Documentation/bad.png) What if the user closes the **Create project** modal instead of finishing it? They'd be stuck on step 2 forever, because they never clicked **Create project**. This video walks through a better way to build the same flow: [Embedded content](https://www.loom.com/embed/a75197df61264528934a1e8972eada2f) To add triggers to a step, see [Step triggers in Flow builder basics](/userflow/docs/flow-builder-basics#step-triggers). ## When should I avoid a hidden step? Use hidden steps only when you really need one. If a flow is waiting for the user to do something in your app, it's usually easier to show a speech bubble or tooltip telling them what to do. A visible step stays on screen, so a user who does something unexpected, such as closing your app's modal instead of finishing it, isn't left stuck on a step they can't see. If you're using a hidden step as a "logic router", one that goes to a different step or URL depending on a condition, it's often simpler to move its triggers to the step before or after it and delete the hidden step. **Example:** a flow should make sure the user is on the right page before it starts. You *could* do that with a hidden step: ![A flow that uses a hidden first step to check the page before the flow starts](https://cdn.us.document360.io/9697557a-eb5d-476f-9b09-062b0f7bdcbd/Images/Documentation/right-page-with-hidden.png) If the user is on the right page, the first trigger moves them to step 2 and the flow begins. If they're not, the second trigger sends them to the right page with a **Navigate to page** action. You can simplify this by moving the second trigger to step 2 and deleting step 1: ![The same flow with the page check moved onto step 2 and no hidden step](https://cdn.us.document360.io/9697557a-eb5d-476f-9b09-062b0f7bdcbd/Images/Documentation/right-page-without-hidden.png) For other ways to send users to the right page first, see [How to navigate to a page when a flow starts](/userflow/docs/go-to-page-when-flow-starts). ## How do I tell if a user is stuck on a hidden step? Open the [Debugger](/userflow/docs/using-the-debugger-for-auto-start-conditions) for that user. If they're stuck on a hidden step in an active flow, the Debugger shows the status **Another flow is currently active**. ![The Debugger showing the status Another flow is currently active](https://cdn.us.document360.io/9697557a-eb5d-476f-9b09-062b0f7bdcbd/Images/Documentation/image(212).png) If other flows aren't starting for that user, see [Flow not starting](/userflow/docs/flow-not-starting). ## Related articles - [Flow builder basics](/userflow/docs/flow-builder-basics) - [Flow not starting](/userflow/docs/flow-not-starting) - [Disconnected steps](/userflow/docs/disconnected-steps) - [Understanding flow dismiss, snooze, and restart](/userflow/docs/understanding-flow-dismiss-snooze-and-restart) ## Related - [Using the Debugger for auto-start conditions](/using-the-debugger-for-auto-start-conditions.md) - [Flow builder basics](/flow-builder-basics.md) - [Track flow button clicks](/track-flow-button-clicks.md)