Triggering and Targeting flows


One of the most powerful things about Userpilot is that it gives your team a way to deliver personalized and highly customizable product flows to your users. They can be based on attributes your users possess, what they've done, and where they are in the application.

Showing the users flows that are relevant to them is important in driving higher user adoption and product engagement. 

Once you have created your flow, it's time to determine how you would like to configure it.

To do this, head over to the Settings tab of your flow. There are several options you can choose from which will be explained in this article.

The green "live" icon indicates that all changes have been successfully pushed to the live version. Conversely, a yellow "live" 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.


There are three options that can be used to determine when to trigger a flow:

  1. Page-Specific: trigger the flow when a user lands on a certain page in your web app.
  2. Event Occurrence:  when a user performs a certain action in your web app.
  3. Only-Manually:  programmatically or from other Userpilot content.


When selecting this option, the flow will trigger based on the conditions that you can set up in the 'Page' section of the flow settings.


Trigger a flow at the exact moment your users trigger an event. This leads to a great and seamless experience for your users. 

It is highly recommended to pass tracked event metadata so you can utilize the event attributes option.

Take the example below for instance where a flow is set to trigger for a user that just created their first invoice.

  • What are Events and how can I create them?

There are two types of events you can use in Event Occurrences. Feature Tags (aka no code-events) and Tracked events (aka code-events).

Feature tags allow you to tag certain elements in your web app that you would like to track, without any interference with your dev team.

Tracked events can be passed through the JS snippet by calling userpilot.track(‘the event name’) whenever users take important actions in the app. 

Alternatively, event data can be sent to Userpilot through our REST API.

The Event Occurrence feature is available for Enterprise or Growth plans only, check the plans here


Via Other Userpilot Content

You can trigger a flow from 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.


You can trigger a flow by adding the provided query to the end of any URL in your web app, and the flow will automatically start. This is a great option to test your flow internally and share it with your teammates. 


A JavaScript code is provided in case you can programmatically start the flow from e.g. a button in your app. You can simply copy the code and share it with your dev team to include it in the code of an element in your app.

Note: Triggering a flow manually will override all other flow settings such as the segment, domain, and page settings.


At the moment, the environment section allows you to trigger flows in your Production environment. The domains can be changed in their own section.

In the future, the option of Staging Then Production will be available. Keep an eye out for our updates!


In many cases, you might want to install the Userpilot code snippet in different environments. This can be very helpful when you want to test the flow locally or on a staging domain before deploying it to production. 

You can control Userpilot Flows on any domain or subdomain where you've installed your Userpilot snippet.

  1. All Domains (Default): Displays the flow anywhere the Userpilot script is installed.
  2. Only on Specific Domains: Displays the flow if the domain exactly matches the input string. 

If you select a specific domain, you will need to click on the button Add Domain. There, you will see three different conditions you can select: Matches, Doesn't Match, and Matches Regex.

Use Matches Regex to match dynamic domains

In many cases, your domain might have dynamic parts that change from user to user.  A common use of a wildcard domain is with applications that use a personalized subdomain for each user or account.

You can easily use the Asterix symbol as a wildcard (*) to replace the part that is dynamic. For example, to show the flow on '' where the part 'name' is dynamic. You can set the domain to be the following:

Remember to click the button Apply or Add Domain once you have selected the domains you wish to use.


Userpilot provides a wide set of operators to utilize the page-targeting settings of the flow. This limits the flow only to show up on the correct URL within your application.

  1. Any Page (Default):  Displays the flow on any location a user is in within your application.
  2. Only on a Specific page: Displays the flow on a Page you are already tracking in Userpilot.

  1. Only on Specific Paths: Displays the flow on a particular page(s) within your application depending on the URL path.

What is a URL path?

URLs consist of the following parts:
\___/   \_____/\____________/\________________/ \_________/ 
  |        |          |                |             |
Protocol Subdomain  Domain           Path           Query

URL path comes after the top-level domain (TLD) ' .com' or '.io' or any similar and before the query that starts with ?  .

URL path matching

To target a flow to appear on a specific path, you have a set of options that you can use, plus their opposites:

  1. Starts with — flow will show on paths that start with the sub-string
  2. Contains — flow will show on paths that contain the input sub-string 
  3. Ends with — flow will show on paths that end with the sub-string
  4. Equals — flow will show on paths that exactly match the input string
  5. Matches regex — flow will show on paths that match the input regular expression 

Working with unique URLs

Some cases might involve triggering flows on pages with dynamically changing URLs. To trigger the flow on the correct page, you can use 'Matches Regex' and use the Asterix symbol as a wildcard (*) to replace the part that is dynamic (you can learn more about it here).


Based on user or company data and product usage data, you might want to target flows to a specific cohort of your users.

For example, you might want to target a flow based on the specific role of the user or you might want to target it only to users who didn't invite a teammate. 

This section defines how you can differentiate which users are eligible to see your flow. 

  1. All users (Default):  Any identified user is eligible to see the flow.
  2. Only me (useful for testing): All users who have access to your Userpilot account and have the Chrome Extension builder installed. 
  3. Saved Segment: Use a previously created Segment that targets a specific group of users. This can be useful when you have a saved criterion that you want to use multiple times in several flows.
  4. Custom conditions: Define a subset by using a set of rules to dictate which users are eligible to see the flow.  This includes user and company data that you are passing through your snippet, auto-properties that Userpilot automatically collects, events and actions that your users achieve in your app, and many more.


You can set up a goal to help you measure how this flow will influence user behaviors.

  1. No Goal: No goals will be tracked.
  2. Perform An Action: Track when users perform certain actions. This action could be:
    • View a page. When a user views a Page you're tracking in Userpilot
    • Click a feature. When a user interacts with a Feature Tag (aka no code-events)
    • Perform a tracked event. When a user performs a Tracked event (aka code-events) 
    • Achieve a custom event. When a user successfully completes a Custom Event. Custom events are multiple events that can be grouped together.


Here you can set how many times the flow will trigger for your users.

  1. Only Once: the flow will trigger only one time.
  2. Time-Based Recurrence: the flow will trigger depending on the timing chosen.
  3. Until The Goal is Met: if you have previously set a goal for your users, you will need to select this option. The flow will trigger for users until the goal you have set has been met.

Time-Based Recurrence

  • Trigger Every time: the flow will trigger every time as long as the user meets all the previously selected settings (domain, page, audience, goal, etc)

  • Repeat flow every: You can select to trigger this flow on a specific amount of days, months, and sessions until the flow is Completed, Dismissed, or Unpublished

Note: Sessions indicate the times a user has visited your site or app. The count is reset after 30 minutes of inactivity. So if a user logs in and doesn't have any activity for 30 minutes, the app will reset after 30 minutes and count this as another session.

Until The Goal is Met

You can set the flow to repeat on a specific amount of days, months, and sessions until the goal is met. Once the goal has been met, the flow will not trigger anymore.

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.