When people ask why a Flow or Checklist did or did not appear, the answer is usually a little more nuanced than “the start rule matched” or “the start rule did not match.”In Usertour, there are two layers involved:
Auto-start rules decide whether the content is eligible to start
Temporary hide rules decide whether the content must stay hidden for now
That matters because a Flow or Checklist can match its auto-start conditions and still not show up. It may be blocked by temporary hide rules, repeat settings, a Wait condition, or another item with higher priority.
You can use them to start content based on conditions such as:
User attribute
Current page is
Flow/Checklist completion or seen state
Element is present/clicked/disabled
Text input value is
User fills in input
Current time
Wait
Conditions like Element is present / clicked / disabled need a CSS selector for the element. You can point at it with the built-in picker — see Selecting Elements for the picker and for keeping selectors stable so flows don’t break on a release.
In practice, auto-start rules should do most of the targeting work. They define when a Flow or Checklist is relevant enough to appear.
You can combine multiple conditions using AND/OR groups
Flows start once per user by default, but you can change this to multiple times or unlimited
Checklists stay on screen until manually dismissed unless you prevent dismissal
The Wait condition is useful when your UI loads asynchronously
Even if this content is eligible, should it stay hidden right now?
Use them when content would be distracting, badly timed, or simply not relevant in the current context. For example:
Hide a checklist on login or settings pages
Hide a Flow during billing or checkout
Hide a launcher inside a resource center
The easiest way to think about temporary hide rules is as a safety layer, not your main targeting system.
If you want precise control over when content starts, start with auto-start rules. Temporary hide rules are usually best for preventing interruptions, not replacing targeting.
One helpful way to think about it is as two gates:
Eligibility gate: auto-start rules
Safety gate: temporary hide rules
If content passes the eligibility gate but fails the safety gate, it will not appear.That is what makes onboarding feel contextual without getting in the user’s way.
If users enter sensitive workflows such as billing, checkout, or payment, use temporary hide rules to keep onboarding out of the way during those moments.This is especially helpful for persistent content like checklists.
Checklists are persistent. If they show up before the user is ready, they can feel like permanent clutter.Usually it is better to gate them behind setup completion, user readiness, or another onboarding milestone.
When you keep those two jobs separate, Flows and Checklists become much easier to reason about and troubleshoot.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Usertour documention","colors":{"primary":"#0D9373","light":"#07C983","dark":"#0D9373"},"logo":{"light":"https://mintcdn.com/usertour/fGy2waOqk2YYQ2QK/logo-dark.svg?fit=max\u0026auto=format\u0026n=fGy2waOqk2YYQ2QK\u0026q=85\u0026s=841070ff620cff55401ec69cfc514e27","dark":"https://mintcdn.com/usertour/fGy2waOqk2YYQ2QK/logo-light.svg?fit=max\u0026auto=format\u0026n=fGy2waOqk2YYQ2QK\u0026q=85\u0026s=28f06f1ac3d117bd77837574e801ed7b","href":"https://www.usertour.io/"},"favicon":"https://mintcdn.com/usertour/nYBy6MD0LzNhBLol/images/favicon.png?fit=max\u0026auto=format\u0026n=nYBy6MD0LzNhBLol\u0026q=85\u0026s=2d933e312d87107d569af0615a00225b","api":{"playground":{"display":"simple"}},"navbar":{"links":[{"href":"mailto:support@usertour.io","label":"Support"}]},"footer":{"socials":{"x":"https://x.com/usertourio","github":"https://github.com/usertour/usertour","discord":"https://discord.gg/WPVJPX8fJh"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"usertour","hasAudioNarration":false,"actualSubdomain":"usertour","customDomains":["docs.usertour.io"],"gitSource":{"type":"github","owner":"usertour","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ac75b31be572e7b73287b41","collectionId":"cc2197bc-7ebd-4230-b95d-3bdf19169dd0","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ac75b31be572e7b73287b41"},"entitlements":{},"buildId":"6ac75b31be572e7b73287b41","clientVersion":"0.0.3990","searchFilterCounts":[{"language":"default","tag":"API Reference","count":92},{"language":"default","tag":"Endpoints","count":79},{"language":"default","tag":"Documentation","count":48},{"language":"default","tag":"API Reference (v1)","count":37},{"language":"default","tag":"Usertour.js Reference","count":31},{"language":"default","tag":"How-to Guides","count":30},{"language":"default","tag":"Self-Hosting","count":20},{"language":"default","tag":"Content","count":15},{"language":"default","tag":"Users","count":14},{"language":"default","tag":"Companies","count":13}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"how-to-guides/how-start-rules-work","slug":"/how-to-guides/how-start-rules-work","pageMetadata":{"title":"How Start Rules Work","description":"Understand how auto-start rules and temporary hide rules work together so your onboarding appears at the right time.","icon":"filter","href":"/how-to-guides/how-start-rules-work"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Understand how auto-start rules and temporary hide rules work together so your onboarding appears at the right time.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,blockquote:`blockquote`,code:`code`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Note,Tip,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),`\n`,_jsx(_components.p,{children:`When people ask why a Flow or Checklist did or did not appear, the answer is usually a little more nuanced than “the start rule matched” or “the start rule did not match.”`}),`\n`,_jsx(_components.p,{children:`In Usertour, there are two layers involved:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Auto-start rules`}),` decide whether the content is eligible to start`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Temporary hide rules`}),` decide whether the content must stay hidden for now`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`That matters because a Flow or Checklist can match its auto-start conditions and still not show up. It may be blocked by temporary hide rules, repeat settings, a Wait condition, or another item with higher priority.`}),`\n`,_jsx(Heading,{level:`2`,id:`what-auto-start-rules-do`,children:`What auto-start rules do`}),`\n`,_jsx(_components.p,{children:`Auto-start rules answer a simple question:`}),`\n`,_jsxs(_components.blockquote,{children:[`\n`,_jsx(_components.p,{children:`Should this content become eligible to start?`}),`\n`]}),`\n`,_jsx(_components.p,{children:`You can use them to start content based on conditions such as:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.strong,{children:`User attribute`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.strong,{children:`Current page is`})}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Flow/Checklist`}),` completion or seen state`]}),`\n`,_jsx(_components.li,{children:_jsx(_components.strong,{children:`Element is present/clicked/disabled`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.strong,{children:`Text input value is`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.strong,{children:`User fills in input`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.strong,{children:`Current time`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.strong,{children:`Wait`})}),`\n`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Conditions like `,_jsx(_components.strong,{children:`Element is present / clicked / disabled`}),` need a CSS selector for the element. You can point at it with the built-in picker — see `,_jsx(_components.a,{href:`/how-to-guides/selecting-elements`,children:`Selecting Elements`}),` for the picker and for keeping selectors stable so flows don’t break on a release.`]})}),`\n`,_jsx(_components.p,{children:`In practice, auto-start rules should do most of the targeting work. They define when a Flow or Checklist is relevant enough to appear.`}),`\n`,_jsx(Note,{children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`You can combine multiple conditions using AND/OR groups`}),`\n`,_jsx(_components.li,{children:`Flows start once per user by default, but you can change this to multiple times or unlimited`}),`\n`,_jsx(_components.li,{children:`Checklists stay on screen until manually dismissed unless you prevent dismissal`}),`\n`,_jsx(_components.li,{children:`The Wait condition is useful when your UI loads asynchronously`}),`\n`]})}),`\n`,_jsx(Heading,{level:`2`,id:`what-temporary-hide-rules-do`,children:`What temporary hide rules do`}),`\n`,_jsx(_components.p,{children:`Temporary hide rules answer a different question:`}),`\n`,_jsxs(_components.blockquote,{children:[`\n`,_jsx(_components.p,{children:`Even if this content is eligible, should it stay hidden right now?`}),`\n`]}),`\n`,_jsx(_components.p,{children:`Use them when content would be distracting, badly timed, or simply not relevant in the current context. For example:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Hide a checklist on login or settings pages`}),`\n`,_jsx(_components.li,{children:`Hide a Flow during billing or checkout`}),`\n`,_jsx(_components.li,{children:`Hide a launcher inside a resource center`}),`\n`]}),`\n`,_jsx(_components.p,{children:`The easiest way to think about temporary hide rules is as a safety layer, not your main targeting system.`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`If you want precise control over when content starts, start with auto-start rules. Temporary hide rules are usually best for preventing interruptions, not replacing targeting.`})}),`\n`,_jsx(Heading,{level:`2`,id:`how-the-rules-work-together`,children:`How the rules work together`}),`\n`,_jsx(_components.p,{children:`Before content starts, Usertour checks a few things.`}),`\n`,_jsx(_components.p,{children:`In practice, the decision looks like this:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Are the auto-start rules active?`}),`\n`,_jsx(_components.li,{children:`Do the repeat settings allow the content to start again?`}),`\n`,_jsx(_components.li,{children:`Are temporary hide rules blocking it?`}),`\n`,_jsx(_components.li,{children:`Has the wait condition finished, if one is configured?`}),`\n`,_jsx(_components.li,{children:`If multiple items are eligible, which one has higher priority?`}),`\n`]}),`\n`,_jsx(_components.p,{children:`So if a Flow or Checklist does not appear, it does not necessarily mean the start rule was wrong.`}),`\n`,_jsx(Heading,{level:`2`,id:`a-simple-mental-model`,children:`A simple mental model`}),`\n`,_jsx(_components.p,{children:`One helpful way to think about it is as two gates:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Eligibility gate`}),`: auto-start rules`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Safety gate`}),`: temporary hide rules`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`If content passes the eligibility gate but fails the safety gate, it will not appear.`}),`\n`,_jsx(_components.p,{children:`That is what makes onboarding feel contextual without getting in the user’s way.`}),`\n`,_jsx(Heading,{level:`2`,id:`recommended-patterns`,children:`Recommended patterns`}),`\n`,_jsx(Heading,{level:`3`,id:`first-time-onboarding`,children:`First-time onboarding`}),`\n`,_jsxs(_components.p,{children:[`Use a `,_jsx(_components.strong,{children:`User attribute`}),` auto-start rule such as `,_jsx(_components.code,{children:`is_new_user=true`}),`.`]}),`\n`,_jsx(_components.p,{children:`That is usually better than trying to infer who is new based only on page behavior.`}),`\n`,_jsx(Heading,{level:`3`,id:`feature-discovery-on-a-specific-page`,children:`Feature discovery on a specific page`}),`\n`,_jsxs(_components.p,{children:[`Use `,_jsx(_components.strong,{children:`Current page is`}),` for page targeting. In single-page apps, it often works better when you combine it with:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.strong,{children:`Element is present`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.strong,{children:`Wait`})}),`\n`]}),`\n`,_jsx(_components.p,{children:`This helps prevent a Flow from starting before the UI is actually ready.`}),`\n`,_jsx(Heading,{level:`3`,id:`progressive-onboarding`,children:`Progressive onboarding`}),`\n`,_jsxs(_components.p,{children:[`If Flow B should only start after Flow A is completed, use a `,_jsx(_components.strong,{children:`Flow/Checklist`}),` condition such as:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`Flow A completed`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`Flow A seen`})}),`\n`]}),`\n`,_jsx(_components.p,{children:`This is usually the cleanest way to build a multi-step onboarding sequence.`}),`\n`,_jsx(Heading,{level:`3`,id:`preventing-interruptions`,children:`Preventing interruptions`}),`\n`,_jsxs(_components.p,{children:[`If users enter sensitive workflows such as billing, checkout, or payment, use `,_jsx(_components.strong,{children:`temporary hide rules`}),` to keep onboarding out of the way during those moments.`]}),`\n`,_jsx(_components.p,{children:`This is especially helpful for persistent content like checklists.`}),`\n`,_jsx(Heading,{level:`3`,id:`showing-checklists-at-the-right-time`,children:`Showing checklists at the right time`}),`\n`,_jsx(_components.p,{children:`Because checklists stay visible until they are dismissed, it is usually better to start them only when the user is ready for them.`}),`\n`,_jsx(_components.p,{children:`A common pattern is:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Start the checklist after setup is complete`}),`\n`,_jsx(_components.li,{children:`Hide it on pages where it would create noise`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`common-mistakes`,children:`Common mistakes`}),`\n`,_jsx(Heading,{level:`3`,id:`using-temporary-hide-as-the-main-targeting-system`,children:`Using temporary hide as the main targeting system`}),`\n`,_jsx(_components.p,{children:`This usually makes behavior harder to understand, explain, and debug.`}),`\n`,_jsx(_components.p,{children:`A better approach is:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Use auto-start to define when content should start`}),`\n`,_jsx(_components.li,{children:`Use temporary hide to define when content must not interrupt`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`relying-only-on-page-rules-in-single-page-apps`,children:`Relying only on page rules in single-page apps`}),`\n`,_jsx(_components.p,{children:`If the route changes before the UI is fully rendered, your Flow can start too early.`}),`\n`,_jsx(_components.p,{children:`When a specific element matters, combine page conditions with:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.strong,{children:`Element is present`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.strong,{children:`Wait`})}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`starting-checklists-too-early`,children:`Starting checklists too early`}),`\n`,_jsx(_components.p,{children:`Checklists are persistent. If they show up before the user is ready, they can feel like permanent clutter.`}),`\n`,_jsx(_components.p,{children:`Usually it is better to gate them behind setup completion, user readiness, or another onboarding milestone.`}),`\n`,_jsx(Heading,{level:`2`,id:`troubleshooting-why-a-flow-or-checklist-did-not-start`,children:`Troubleshooting: why a Flow or Checklist did not start`}),`\n`,_jsx(_components.p,{children:`If a Flow or Checklist did not appear when you expected it to, these are the first things to check:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`The auto-start rules are enabled and the conditions actually matched`}),`\n`,_jsx(_components.li,{children:`The repeat settings still allow the content to start again`}),`\n`,_jsx(_components.li,{children:`A temporary hide rule is not active`}),`\n`,_jsx(_components.li,{children:`A Wait condition is not still counting down`}),`\n`,_jsx(_components.li,{children:`Another eligible item did not win because of priority`}),`\n`,_jsx(_components.li,{children:`In a single-page app, the target element is actually present when the rule is evaluated`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`summary`,children:`Summary`}),`\n`,_jsx(_components.p,{children:`Use this rule of thumb:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Auto-start rules`}),` define eligibility`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Temporary hide rules`}),` prevent interruptions`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`When you keep those two jobs separate, Flows and Checklists become much easier to reason about and troubleshoot.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"How Start Rules Work","description":"Understand how auto-start rules and temporary hide rules work together so your onboarding appears at the right time.","icon":"filter","href":"/how-to-guides/how-start-rules-work"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Overview","slug":"overview","depth":2,"children":[]},{"title":"What auto-start rules do","slug":"what-auto-start-rules-do","depth":2,"children":[]},{"title":"What temporary hide rules do","slug":"what-temporary-hide-rules-do","depth":2,"children":[]},{"title":"How the rules work together","slug":"how-the-rules-work-together","depth":2,"children":[]},{"title":"A simple mental model","slug":"a-simple-mental-model","depth":2,"children":[]},{"title":"Recommended patterns","slug":"recommended-patterns","depth":2,"children":[{"title":"First-time onboarding","slug":"first-time-onboarding","depth":3,"children":[]},{"title":"Feature discovery on a specific page","slug":"feature-discovery-on-a-specific-page","depth":3,"children":[]},{"title":"Progressive onboarding","slug":"progressive-onboarding","depth":3,"children":[]},{"title":"Preventing interruptions","slug":"preventing-interruptions","depth":3,"children":[]},{"title":"Showing checklists at the right time","slug":"showing-checklists-at-the-right-time","depth":3,"children":[]}]},{"title":"Common mistakes","slug":"common-mistakes","depth":2,"children":[{"title":"Using temporary hide as the main targeting system","slug":"using-temporary-hide-as-the-main-targeting-system","depth":3,"children":[]},{"title":"Relying only on page rules in single-page apps","slug":"relying-only-on-page-rules-in-single-page-apps","depth":3,"children":[]},{"title":"Starting checklists too early","slug":"starting-checklists-too-early","depth":3,"children":[]}]},{"title":"Troubleshooting: why a Flow or Checklist did not start","slug":"troubleshooting-why-a-flow-or-checklist-did-not-start","depth":2,"children":[]},{"title":"Summary","slug":"summary","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"usertour","siteName":"Usertour documention","title":"How Start Rules Work - Usertour documention","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-06-18T08:51:52.031Z","originalFileLocation":"how-to-guides/how-start-rules-work.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Understand how auto-start rules and temporary hide rules work together so your onboarding appears at the right time.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Usertour documention\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/usertour/vM2wRfIVfuMnzscJ/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/usertour/vM2wRfIVfuMnzscJ/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/usertour/vM2wRfIVfuMnzscJ/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/usertour/vM2wRfIVfuMnzscJ/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/usertour/vM2wRfIVfuMnzscJ/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/usertour/vM2wRfIVfuMnzscJ/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/usertour/vM2wRfIVfuMnzscJ/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/usertour/vM2wRfIVfuMnzscJ/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/usertour/vM2wRfIVfuMnzscJ/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"How Start Rules Work - Usertour documention\">\u003cmeta data-mint-head property=\"og:description\" content=\"Understand how auto-start rules and temporary hide rules work together so your onboarding appears at the right time.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Usertour documention\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.usertour.io/how-to-guides/how-start-rules-work\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://usertour.mintlify.app/_mintlify/api/og/v2?division=How-to+Guides\u0026amp;title=How+Start+Rules+Work\u0026amp;description=Understand+how+auto-start+rules+and+temporary+hide+rules+work+together+so+your+onboarding+appears+at+the+right+time.\u0026amp;theme=e8ff6aa64680886dad37379c\u0026amp;signature=6f15bb57e4a0a14a8454e985cc37556ab1c6216b7234135171f6dae532d9ba13\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"How Start Rules Work - Usertour documention\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Understand how auto-start rules and temporary hide rules work together so your onboarding appears at the right time.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://usertour.mintlify.app/_mintlify/api/og/v2?division=How-to+Guides\u0026amp;title=How+Start+Rules+Work\u0026amp;description=Understand+how+auto-start+rules+and+temporary+hide+rules+work+together+so+your+onboarding+appears+at+the+right+time.\u0026amp;theme=e8ff6aa64680886dad37379c\u0026amp;signature=6f15bb57e4a0a14a8454e985cc37556ab1c6216b7234135171f6dae532d9ba13\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/usertour/vM2wRfIVfuMnzscJ/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Usertour documention\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0D9373\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.usertour.io/how-to-guides/how-start-rules-work\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/how-to-guides/how-start-rules-work.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.usertour.io/#organization\",\"name\":\"Usertour documention\",\"url\":\"https://docs.usertour.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/usertour/fGy2waOqk2YYQ2QK/logo-dark.svg?fit=max\u0026auto=format\u0026n=fGy2waOqk2YYQ2QK\u0026q=85\u0026s=841070ff620cff55401ec69cfc514e27\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.usertour.io#website\",\"name\":\"Usertour documention\",\"url\":\"https://docs.usertour.io\",\"publisher\":{\"@id\":\"https://docs.usertour.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.usertour.io/how-to-guides/how-start-rules-work#webpage\",\"url\":\"https://docs.usertour.io/how-to-guides/how-start-rules-work\",\"name\":\"How Start Rules Work\",\"description\":\"Understand how auto-start rules and temporary hide rules work together so your onboarding appears at the right time.\",\"dateModified\":\"2026-06-18T08:51:52.031Z\",\"isPartOf\":{\"@id\":\"https://docs.usertour.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.usertour.io/how-to-guides/how-start-rules-work#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.usertour.io/how-to-guides/how-start-rules-work#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"How-to Guides\",\"item\":\"https://docs.usertour.io/building-experiences/creating-your-first-flow\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How Start Rules Work\",\"item\":\"https://docs.usertour.io/how-to-guides/how-start-rules-work\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.usertour.io/how-to-guides/how-start-rules-work#article\",\"headline\":\"How Start Rules Work\",\"name\":\"How Start Rules Work\",\"description\":\"Understand how auto-start rules and temporary hide rules work together so your onboarding appears at the right time.\",\"url\":\"https://docs.usertour.io/how-to-guides/how-start-rules-work\",\"mainEntityOfPage\":{\"@id\":\"https://docs.usertour.io/how-to-guides/how-start-rules-work#webpage\"},\"dateModified\":\"2026-06-18T08:51:52.031Z\",\"publisher\":{\"@id\":\"https://docs.usertour.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.usertour.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Usertour documention\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Usertour documention","nav":{"global":null,"anchors":[{"anchor":"Documentation","icon":"book-open","groups":[{"group":"Get Started","pages":[{"title":"Build Your Onboarding with AI","icon":"sparkles","href":"/build-onboarding-with-ai"},{"title":"Getting Started","icon":"rocket","href":"/quickstart"},{"title":"FAQ","icon":"circle-question","href":"/faq"}]},{"group":"Core Concepts","pages":[{"title":"Understanding In-App Flows","icon":"lightbulb","href":"/building-experiences/understanding-in-app-flows"},{"title":"Content startup","icon":"play","href":"/concepts/content-startup"},{"title":"Session lifecycle","icon":"route","href":"/concepts/session-lifecycle"}]},{"group":"How-to Guides","pages":[{"title":"Flows","icon":"firstdraft","href":"/building-experiences/creating-your-first-flow"},{"title":"Checklists","icon":"list-check","href":"/how-to-guides/checklists"},{"title":"Launchers","icon":"circle","href":"/how-to-guides/launchers"},{"title":"Resource Center","icon":"circle-question","href":"/how-to-guides/resource-center"},{"title":"Announcements","icon":"bullhorn","href":"/how-to-guides/announcements"},{"title":"Surveys/NPS","icon":"square-poll-horizontal","href":"/how-to-guides/surveys"},{"title":"Banners","icon":"bell","href":"/how-to-guides/banners"},{"title":"Event Trackers","icon":"bolt","href":"/how-to-guides/event-trackers"},{"title":"Starting Content","description":"Learn how to trigger flows or checklists automatically or manually in your application","icon":"play","href":"/how-to-guides/starting-flows"},{"title":"How Start Rules Work","icon":"filter","href":"/how-to-guides/how-start-rules-work"},{"title":"Selecting Elements","description":"Use the OpenPicker extension to point at an element and get a CSS selector — and define stable selectors with your developers so flows don't break on the next release.","icon":"crosshairs","href":"/how-to-guides/selecting-elements"},{"title":"Go to page when flow starts","icon":"arrows-repeat","href":"/how-to-guides/go-to-page-when-starts"},{"title":"Hidden Steps","icon":"eye-slash","href":"/how-to-guides/hidden-steps"},{"title":"Deleting user data","icon":"user-xmark","href":"/how-to-guides/deleting-user-data"},{"title":"Delete and duplicate content","icon":"trash","href":"/how-to-guides/delete-and-duplicate-content"},{"title":"Projects","icon":"folder-tree","href":"/how-to-guides/projects"},{"title":"Team Management","icon":"people-group","href":"/how-to-guides/team"},{"title":"Two-Factor Authentication","icon":"lock","href":"/how-to-guides/two-factor-authentication"},{"title":"Single Sign-On (SSO)","icon":"key","href":"/how-to-guides/single-sign-on"},{"title":"Billing \u0026 Invoices","icon":"credit-card","href":"/how-to-guides/billing"},{"title":"Environments","icon":"envira","href":"/how-to-guides/environments"},{"title":"Localization","icon":"language","href":"/how-to-guides/localization"},{"title":"Customizing Themes","icon":"palette","href":"/how-to-guides/customizing-themes"},{"title":"Custom Fonts \u0026 CSS","icon":"font","href":"/how-to-guides/custom-fonts-and-css"},{"title":"Users and Segments","icon":"user","href":"/how-to-guides/users-and-segments"},{"title":"Companies","icon":"people-roof","href":"/how-to-guides/companies"},{"title":"URL pattern matching","icon":"link","href":"/how-to-guides/urls"},{"title":"Flow Analytics","icon":"chart-simple","href":"/how-to-guides/flow-analytics"},{"title":"Embed any content","icon":"people-group","href":"/how-to-guides/embed"},{"title":"Mobile","icon":"mobile","href":"/how-to-guides/mobile"}]},{"group":"Integrations","pages":[{"title":"Overview","icon":"plug","href":"/integrations/overview"},{"title":"Cohort sync","icon":"arrows-rotate","href":"/integrations/cohort-sync"},{"title":"Zapier","icon":"bolt","href":"/integrations/zapier"},{"title":"HubSpot","icon":"address-book","href":"/integrations/hubspot"},{"title":"Amplitude","icon":"wave-square","href":"/integrations/amplitude"},{"title":"Heap","icon":"layer-group","href":"/integrations/heap"},{"title":"Mixpanel","icon":"chart-column","href":"/integrations/mixpanel"},{"title":"PostHog","icon":"chart-line","href":"/integrations/posthog"},{"title":"Segment","icon":"chart-pie","href":"/integrations/segment"}]},{"group":"Developers","pages":[{"title":"Webhooks","icon":"webhook","href":"/developers/webhooks"},{"title":"Identity Verification","icon":"shield-check","href":"/developers/identity-verification"},{"title":"Content Security Policy","icon":"shield","href":"/developers/csp"}]}]},{"anchor":"Usertour.js Reference","icon":"connectdevelop","pages":[{"title":"Usertour.js Reference","href":"/developers/usertourjs-reference/overview"}]},{"anchor":"API Reference","icon":"terminal","pages":[{"title":"API Reference","href":"/api-reference-v2/introduction"}]},{"anchor":"Self-Hosting","icon":"github","pages":[{"title":"Self-Hosting","href":"/open-source/self-hosting"}]},{"anchor":"Use Cases","icon":"route","pages":[{"title":"Use Cases","href":"/use-cases/analyze-onboarding-with-ai"}]},{"anchor":"API Reference (v1)","icon":"terminal","pages":[{"title":"API Reference (v1)","href":"/api-reference/introduction"}]},{"anchor":"Changelog","icon":"clock-rotate-left","pages":[{"title":"Changelog","href":"/changelog/2026"}]}]},"title":"How Start Rules Work - Usertour documention","buildId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","deploymentId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","dynamics":[],"chunks":[]}