> ## Documentation Index
> Fetch the complete documentation index at: https://docs.userpilot.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Set up Flow Settings

> Configure flow settings in Userpilot to control when, where, and how flows are triggered, ensuring personalized and relevant in-app experiences.

## Overview

Userpilot enables your team to create **highly personalized and customizable** product flows, tailored to user attributes, behaviors, and their journey within the application. These flows ensure that users receive the right guidance at the right time, enhancing their overall experience.

By showing users **relevant experiences**, you can drive **higher adoption and engagement**, ensuring a more seamless and impactful product journey.

## Flow settings

After creating your flow, the next step is to customize its settings.

Navigate to the **Settings** tab, where you'll find various options to customize your flow. This article will walk you through each configuration in detail.

<Note>
  The green "live" icon indicates that all changes have been successfully pushed to the live version. Conversely, a yellow "pending" icon means that some changes haven't been applied to the live version yet, prompting you to push the updates to ensure they appear live.
</Note>

## Trigger type

Three options can be used to determine when to trigger a flow:

<Tabs>
  <Tab title="Page-Specific">
    <img src="https://mintcdn.com/userpilot/wfz9MZaMqtGS7WBI/in-app-engagement/flows/getting-started/assets/images/Screenshot2025-03-02at2.08.50AM.png?fit=max&auto=format&n=wfz9MZaMqtGS7WBI&q=85&s=f73b7cf940ac2b7b9872fc6c1590ec3d" alt="" width="2090" height="292" data-path="in-app-engagement/flows/getting-started/assets/images/Screenshot2025-03-02at2.08.50AM.png" />

    When selecting this option, the flow will trigger based on the following conditions that you can set up in the 'Page-Specific' section of the flow settings.
  </Tab>

  <Tab title="Event-Occurrence">
    <img src="https://mintcdn.com/userpilot/wfz9MZaMqtGS7WBI/in-app-engagement/flows/getting-started/assets/images/Screenshot2025-03-02at2.08.16AM.png?fit=max&auto=format&n=wfz9MZaMqtGS7WBI&q=85&s=9932f965469058c96c7940e509fac457" alt="" width="2090" height="482" data-path="in-app-engagement/flows/getting-started/assets/images/Screenshot2025-03-02at2.08.16AM.png" />

    Trigger a flow precisely when users perform a specific event, ensuring a smooth and seamless experience. For example, you can trigger a flow when the users create a new invoice, guiding them through the next steps.

    <Tip>
      For better targeting, it's highly recommended to pass tracked event metadata, allowing you to leverage event attributes effectively.
    </Tip>
  </Tab>

  <Tab title="Only-Manually">
    <img src="https://mintcdn.com/userpilot/wfz9MZaMqtGS7WBI/in-app-engagement/flows/getting-started/assets/images/Screenshot2025-03-02at2.07.26AM.png?fit=max&auto=format&n=wfz9MZaMqtGS7WBI&q=85&s=6c0be795bf228b44039e9f0dedfecd8e" alt="" width="2098" height="282" data-path="in-app-engagement/flows/getting-started/assets/images/Screenshot2025-03-02at2.07.26AM.png" />

    <AccordionGroup>
      <Accordion defaultOpen="false" title="Via Other Userpilot Content">
        Flows can be triggered through a **button**, or a **checklist task** as well as the **Resource Center**. If you would like the flow to trigger only from Userpilot content without it triggering on its own, then selecting the option **Only manually** is the way to go.
      </Accordion>

      <Accordion defaultOpen="false" title="Permalink">
        Add the provided query to the end of any URL in your web app to automatically trigger a flow. This is a great way to test your flow internally and easily share it with your teammates.
      </Accordion>

      <Accordion defaultOpen="false" title="Programmatically">
        A JavaScript snippet is available for programmatically starting a flow, such as from a button in your app. Simply copy the code and share it with your development team to include it in the code of the desired element in your web application.
      </Accordion>
    </AccordionGroup>

    <Note>
      Triggering a flow manually will **override** all other flow settings, such as the segment, domain, and page settings.
    </Note>
  </Tab>
</Tabs>

## Environment

Trigger the flow in your preferred environment to ensure a smooth user experience.

If you want to test the flow in your staging environment before deploying it to production, simply enable the staging checkbox. This ensures the flow runs only in staging, allowing you to review and refine it before making it live for all users.

<img src="https://mintcdn.com/userpilot/wfz9MZaMqtGS7WBI/in-app-engagement/flows/getting-started/assets/images/Screenshot2025-03-02at2.23.39AM.png?fit=max&auto=format&n=wfz9MZaMqtGS7WBI&q=85&s=e86062d9793d8cb1d78e292697cb7f38" alt="" width="2092" height="258" data-path="in-app-engagement/flows/getting-started/assets/images/Screenshot2025-03-02at2.23.39AM.png" />

## Domain

In many cases, you might want to install the Userpilot code snippet across multiple environments. This is especially helpful for testing flows locally or on a staging domain before deploying them to production.

You have full control over where Userpilot Flows appear, depending on the domains or subdomains where the Userpilot snippet is installed.

* **All Domains (Default):** The flow will display on any domain where the Userpilot script is installed.
* **Only on Specific Domains:** The flow will only appear if the domain matches the specified input string.

If you choose a specific domain, click **"Add Domain"** to set up one of the following conditions:

* **Matches**: Displays the flow on an exact domain match.
* **Doesn’t match**: Prevents the flow from appearing on a specific domain.
* **Matches regex**: Uses a regular expression to define dynamic domain matching rules.

This flexibility allows you to control flow visibility across different environments with precision.

### **Use matches regex to match dynamic domains**

In many cases, your domain may contain dynamic elements that vary between users. A common example is applications that assign a personalized subdomain for each user or account.

To accommodate this, you can use the **asterisk (\*) as a wildcard** to replace the dynamic portion of the domain. For instance, if you want to display a flow on "campfire-test-name.userpilot.io", where "name" is dynamic, you can set the domain as follows:

<img src="https://mintcdn.com/userpilot/wfz9MZaMqtGS7WBI/in-app-engagement/flows/getting-started/assets/images/Screenshot2025-03-02at2.47.40AM.png?fit=max&auto=format&n=wfz9MZaMqtGS7WBI&q=85&s=6cfb8f3e57351981ed3b032f61f22fed" alt="" width="2086" height="424" data-path="in-app-engagement/flows/getting-started/assets/images/Screenshot2025-03-02at2.47.40AM.png" />

### Page

Userpilot offers a variety of operators to fine-tune page-targeting settings, ensuring that the flow appears only on the intended URLs within your application.

<Tabs>
  <Tab title="Any Page">
    <img src="https://mintcdn.com/userpilot/wfz9MZaMqtGS7WBI/in-app-engagement/flows/getting-started/assets/images/Screenshot2025-03-02at2.51.34AM.png?fit=max&auto=format&n=wfz9MZaMqtGS7WBI&q=85&s=073f7f30c3da33d6e10a5fe044b70ea8" alt="" width="2072" height="252" data-path="in-app-engagement/flows/getting-started/assets/images/Screenshot2025-03-02at2.51.34AM.png" />

    "Any Page" option allows the flow to appear on any page within your application, no matter where the user is.
  </Tab>

  <Tab title="Only On a Specific Page">
    <img src="https://mintcdn.com/userpilot/wfz9MZaMqtGS7WBI/in-app-engagement/flows/getting-started/assets/images/Screenshot2025-03-02at2.54.17AM.png?fit=max&auto=format&n=wfz9MZaMqtGS7WBI&q=85&s=7f1c1888558041efcd311818735c6b39" alt="" width="2090" height="350" data-path="in-app-engagement/flows/getting-started/assets/images/Screenshot2025-03-02at2.54.17AM.png" />

    If you are already tracking a specific page in your application, you can select the page from the dropdown options to trigger the flow when users access that specific page.
  </Tab>

  <Tab title="Only On Specific Paths">
    <img src="https://mintcdn.com/userpilot/wfz9MZaMqtGS7WBI/in-app-engagement/flows/getting-started/assets/images/Screenshot2025-03-02at2.56.27AM.png?fit=max&auto=format&n=wfz9MZaMqtGS7WBI&q=85&s=edaf44e9dd3b1d517901001db42448ef" alt="" width="2088" height="562" data-path="in-app-engagement/flows/getting-started/assets/images/Screenshot2025-03-02at2.56.27AM.png" />

    You can also trigger the flow on designated pages within your application based on the URL path.

    **What is a URL Path?** URLs consist of the following parts:

    <img src="https://mintcdn.com/userpilot/wfz9MZaMqtGS7WBI/in-app-engagement/flows/getting-started/assets/images/Screenshot2025-03-03at1.03.50AM.png?fit=max&auto=format&n=wfz9MZaMqtGS7WBI&q=85&s=ea2715f0f613b3b7bf514d486cd0c6f1" alt="" width="928" height="210" data-path="in-app-engagement/flows/getting-started/assets/images/Screenshot2025-03-03at1.03.50AM.png" />

    A URL path is the portion of a URL that comes after the top-level domain (TLD)—such as “.com” or “.io”—and before any query parameters (which start with **"?"**).

    **URL Path Matching Options**

    To ensure a flow appears on the correct page, you can use various matching options, along with their opposites:

    * **Starts With** – Shows the flow on paths that **begin with** the specified substring.
    * **Contains** – Shows the flow on paths that **include** the specified substring.
    * **Ends With** – Shows the flow on paths that **end with** the specified substring.
    * **Equals** – Shows the flow only when the path **exactly matches** the specified string.
    * **Matches Regex** – Shows the flow on paths that **match a regular expression** (regex).

    **Handling Dynamic URLs**

    If your application has dynamically changing URLs, you can use the "Matches Regex" option along with the asterisk (\*) wildcard to replace the dynamic part and ensure the flow triggers on the correct pages.
  </Tab>
</Tabs>

### Audience

You can target your flows to a specific cohort of users for a more personalized experience by using user, company, and product usage data.

For example, you may want to **target a flow based on a user’s role** or show it only to users who **haven’t invited a teammate** yet.

This section outlines how to define which users are eligible to see your flow.

<img src="https://mintcdn.com/userpilot/wfz9MZaMqtGS7WBI/in-app-engagement/flows/getting-started/assets/images/Screenshot2025-03-03at1.13.34AM.png?fit=max&auto=format&n=wfz9MZaMqtGS7WBI&q=85&s=3bb75d815781f498170e71165da5e484" alt="" width="2066" height="256" data-path="in-app-engagement/flows/getting-started/assets/images/Screenshot2025-03-03at1.13.34AM.png" />

* **All Users (Default):** Any identified user can see the flow.
* **Only Me (For Testing):** Limits the flow to users who have access to your Userpilot account and have the Chrome Extension builder installed.
* **Saved Segment:** Use a predefined user segment to target a specific group. This is helpful if you want to reuse the same targeting criteria across multiple flows.
* **Custom Conditions:** Create a targeted subset of users by setting specific rules that determine who can see the flow. This includes user and company data passed through your snippet, auto-properties automatically collected by Userpilot, and user events and actions within your app, among other criteria.

<img src="https://mintcdn.com/userpilot/wfz9MZaMqtGS7WBI/in-app-engagement/flows/getting-started/assets/images/Screenshot2025-03-03at1.19.37AM.png?fit=max&auto=format&n=wfz9MZaMqtGS7WBI&q=85&s=9be744b02820461edf33cfca7b941321" alt="" width="2092" height="950" data-path="in-app-engagement/flows/getting-started/assets/images/Screenshot2025-03-03at1.19.37AM.png" />

### Goal

You can define a goal to measure how your flow impacts user behavior and track key interactions.

1. **No Goal:** No goals will be tracked.
2. **Perform an Action:** Track when users complete specific actions, such as:
   * **Viewing a Page:** When a user visits a page tracked in Userpilot.
   * **Clicking an element:** When a user interacts with a Labeled event (no-code events).
   * **Performing a Tracked Event:** When a user triggers a Tracked Event (code-based events).
   * **Achieving a Custom Event:** When a user completes a Custom Event, which can include multiple grouped events.

<img src="https://mintcdn.com/userpilot/i_hL61WZW7vm9Xm1/Screenshot2025-07-08at19.54.12.png?fit=max&auto=format&n=i_hL61WZW7vm9Xm1&q=85&s=95174559be8a14234393a64d522df757" alt="" width="2312" height="604" data-path="Screenshot2025-07-08at19.54.12.png" />

By setting a goal, you can gain valuable insights into how users engage with your flow and optimize their experience accordingly.

### Frequency

Define how often the flow should trigger for users based on your preferred settings:

**Only Once:** The flow will trigger only one time per user.

**Time-Based Recurrence:** The flow will trigger at specified intervals based on the selected timing.

* **Trigger Every Time:** The flow will trigger each time the user meets all the defined conditions, including domain, page, audience, goal\*\*,\*\* and other selected settings.
* **Repeat Flow Every:** Set the flow to trigger at specific intervals, such as a certain number of days, months, or sessions, until the flow is completed, dismissed, or unpublished.

<img src="https://mintcdn.com/userpilot/heoTLTAWD74i-7CB/in-app-engagement/flows/getting-started/assets/images/Screenshot2025-03-03at1.38.51AM.png?fit=max&auto=format&n=heoTLTAWD74i-7CB&q=85&s=4d713a44fbfe338b9c1683b439192b8b" alt="" width="2076" height="576" data-path="in-app-engagement/flows/getting-started/assets/images/Screenshot2025-03-03at1.38.51AM.png" />

**Until the Goal is Met:** If you have defined an in the previous step, the flow will continue to trigger until the user meets the defined goal. You can configure the flow to repeat at set intervals, such as a specific number of days, months, or sessions until the goal is met. Once the goal is achieved, the flow will automatically stop triggering for the user.

<img src="https://mintcdn.com/userpilot/heoTLTAWD74i-7CB/in-app-engagement/flows/getting-started/assets/images/Screenshot2025-03-03at1.41.35AM.png?fit=max&auto=format&n=heoTLTAWD74i-7CB&q=85&s=1ed1a6a747f6809f82370ee829ac0b6a" alt="" width="2068" height="376" data-path="in-app-engagement/flows/getting-started/assets/images/Screenshot2025-03-03at1.41.35AM.png" />

These options ensure the flow appears at the right frequency to optimize user engagement.

### FAQs

<AccordionGroup>
  <Accordion defaultOpen="false" title="Can i trigger a flow only to new users?">
    Yes, you can set the flow to trigger the users whose Signed Up date or First Seen is less than the 'n' number of days. Please note that the "Signed Up" date needs to be sent to Userpilot by your dev team through the identify method.

    <img src="https://mintcdn.com/userpilot/heoTLTAWD74i-7CB/in-app-engagement/flows/getting-started/assets/images/Screenshot2025-03-03at2.00.44AM.png?fit=max&auto=format&n=heoTLTAWD74i-7CB&q=85&s=fe8159af34af8088098120899818877a" alt="" width="2090" height="448" data-path="in-app-engagement/flows/getting-started/assets/images/Screenshot2025-03-03at2.00.44AM.png" />
  </Accordion>

  <Accordion defaultOpen="false" title="How can i trigger the flow to the users only after they complete a specific flow?">
    You can set the below Audience Condition to trigger the flow to the users who have completed a certain flow in your application.

    <img src="https://mintcdn.com/userpilot/heoTLTAWD74i-7CB/in-app-engagement/flows/getting-started/assets/images/Screenshot2025-03-03at2.03.00AM.png?fit=max&auto=format&n=heoTLTAWD74i-7CB&q=85&s=f6541e8dee295ebdcde04194bb81ed22" alt="" width="2100" height="462" data-path="in-app-engagement/flows/getting-started/assets/images/Screenshot2025-03-03at2.03.00AM.png" />
  </Accordion>

  <Accordion defaultOpen="false" title="Is it possible to display the flow only to the users who have given a specific answer in a survey?">
    Yes, you can achieve this by following the below steps: Audience -> Custom Conditions -> User Feedback -> Survey -> Select the Survey -> Select the Question -> Equals -> Select the desired answer.

    <img src="https://mintcdn.com/userpilot/heoTLTAWD74i-7CB/in-app-engagement/flows/getting-started/assets/images/Screenshot2025-03-03at2.06.32AM.png?fit=max&auto=format&n=heoTLTAWD74i-7CB&q=85&s=311bfe1abef86d3e15f4b8ab177b868a" alt="" width="2166" height="460" data-path="in-app-engagement/flows/getting-started/assets/images/Screenshot2025-03-03at2.06.32AM.png" />
  </Accordion>
</AccordionGroup>

<Frame>
  [**For any questions or concerns please reach out to support@userpilot.com**](mailto:support@userpilot.com)
</Frame>
