Users and Segments

Prev Next

Understanding your users and organizing them into meaningful segments is fundamental to delivering personalized experiences in Userflow. The Users and Segments feature provides a centralized hub where you can view all users identified by your Userflow implementation, create targeted user groups based on various criteria, and manage your audience with precision. This comprehensive system supports multiple segmentation approaches—from attribute-based filtering and event-driven segments to manual user lists and integration-powered groupings—giving you the flexibility to organize your users exactly how your business needs require and ensuring your flows, checklists, and in-app content reach the right people at the right time.

Select Users from the sidebar to get started.

Users

Creating a segment

There are several different types of segments in Userflow:

  • Default segments - Pre-built segments created automatically by Userflow (such as "All Users") that provide immediate access to broad user groups without any setup required.

  • Attribute-based segments - Dynamic segments that filter users or companies based on specific properties like subscription plan, signup date, or custom attributes you've defined.

  • Event-based segments - Behavioral segments that group users based on their actions within your product, such as users who clicked a specific button or viewed a particular page within a defined timeframe.

  • Manual segments - Custom segments where you directly select specific users through the interface or upload a CSV file containing user emails or IDs, perfect for targeting predetermined lists.

  • Integration-based segments - Segments powered by data from your connected analytics tools like Heap, Amplitude, or Mixpanel, allowing you to leverage existing user cohorts from your analytics stack.

Known limitation: segments can't reference other segments

Userflow segments are built from attribute, event, and membership conditions — they can't currently take another saved segment as a condition (for example, "exclude anyone who is in any of these other segments"). To get a similar result, rebuild the underlying conditions directly in the segment you're creating, or use a manual segment (CSV upload or selection) for a fixed list. Nested/compound segments are on our roadmap.

Known limitation: negating an event condition with a "Where" sub-filter returns 0 users

If you negate an event condition (e.g., "has NOT done X") and also add a "Where" sub-filter on that same event (e.g., "where plan = Enterprise"), the segment will return 0 users. This is expected given how the filter evaluates: since the event never happened, there's no event instance for the "Where" sub-filter to check against, so the combined condition can never be satisfied.

Workaround: instead of negating the event, use a positive frequency check — for example, "event X happened 0 times in [timeframe]" — and apply your "Where" condition to a different, positive event instead of the negated one.

Default segments

These are pre-created segments in Userflow, e.g., "All users." These cannot be edited.

Segment based on a user or company attribute filter

You can create your own segments by changing the filter, the attribute to sort by, and which columns to display. A Save segment button will appear, which lets you update an existing segment or save it as a new one.

Filter based segment

Note

The User ID and Company ID used in the userflow.js identify() call is not created as a Userflow attribute by default. Instead of creating filter-based segments to target a specific list of users/companies we recommend using the manual segment approach explained in the next section.

If you still want to retrieve the User ID or Company ID and use them in a filter, you need to send them as attributes via the userflow.js second argument or the API (similar to how other attributes are sent).

Segment based on product event filter

Event-based segments allow you to create user and company segments based on specific actions on your product natively within Userflow. For example, create a dynamic segment of users who view your billing page by selecting that event or using our no-code event tracker to create it.

  1. Select Users or Companies from the sidebar.

  2. Click Add filter and select Event.  

  3. Select the desired event (e.g., "clicked X button").  

event-based-segment.png

  1. Set the frequency and time frame (e.g., "at least once in the last 7 days") along with any additional conditions based on parameters associated with an event ( e.g., "device is Tablet", "Flow type is Checklist")  

event-segment

  1. Save Segment: Save your new event-based segment.  

Segments update in real-time, ensuring accurate targeting. You can use event-based segments to target flows and in-app content.

Coming soon: Ability to use event-based segments as filters on analytics

Manual segment based on CSV upload or UI selection

Click New above the segment list to create a manual segment. Users can be added to manual segments either by selecting them in the list of all users or by uploading a CSV file. You can match users based on their email address or user ID. This is useful when you want to target a list of users you have in a spreadsheet.

Manual segment

If your CSV upload doesn't match anyone

Work through these in order.

Are you matching on something Userflow actually holds? You can match on email address or user ID. If your app identifies users by an internal ID and doesn't also send email as an attribute, Userflow has no email to match against, and a file of email addresses will match nobody. Check a few users on the Users page first and confirm the column you're matching on has values in it.

Are the user IDs the same ones your app sends? The ID to match on is the one passed to userflow.identify(). A database primary key, a CRM record ID or an internal reference won't match unless that's the value your app sends.

Is the file plain CSV? Export as CSV rather than saving a spreadsheet with an .xlsx extension renamed.

Do the values need cleaning? Leading or trailing spaces, quoted values and mixed casing in email addresses are worth ruling out before anything else.

If matching still comes up empty, add two or three users to the segment by selecting them in the list instead. If that works and the upload doesn't, the problem is in the file rather than the segment.

Integration-based segment

Using one of our analytics integrations, such as Heap, Amplitude, or Mixpanel, you can also create integration-driven segments. These segments will display a logo for the tool from which they are coming for easy visual identification.

Heap segment

Organize, search, and filter

You can organize, search, and filter the user list by using the column icon in the top-right to select which columns to display.

Users columns

You can quickly do a text search, which will search through name, email, ID, and it can even find users where their associated company name matches.

Users free text search

For a more detailed search, click Add filter to search based on specific user attributes. This works just like when you add Attribute conditions in the flow builder. You can even find users based on their company or company membership attributes.

Users filter condition

Opening a single user

Click any row in the user list to open that user's page. Their attributes are listed on the right, and below their details are three tabs: Activity feed, Sessions and Companies.

The Activity feed lists the events Userflow has recorded for that user, newest first, grouped by day and stamped with the time. It covers events your app sends, events picked up by your event trackers, and Userflow's own events as the user moves through your content, such as Page Viewed, Flow Started, Flow Step Seen and Flow Completed.

It is the quickest way to check whether an event is reaching Userflow at all, and when. It also records problems: if a tooltip is not appearing, you may see Tooltip Target Missing here against the moment it failed.

Companies have the same view. Open a company from the Companies page to see its activity.

Companies page

If you have Companies set up, you will see a comparable Companies page. You can sort and filter companies and establish company segments. To learn more, see Configuring companies.

Importing companies from a CSV

You can upload companies from a spreadsheet, and the upload can create companies that aren't in Userflow yet.

The upload lives inside a company segment rather than on the Companies page itself, so make the segment first:

  1. On the Companies page, click New above the segment list and name your segment.

  2. In the empty segment, click Add companies via CSV. You can also use Add/remove companies via CSV at the top of any company segment.

  3. Choose which column in your file holds the Company ID.

  4. Leave Create companies if they don't exist in Userflow ticked to add new companies as well as match existing ones. Untick it to add only companies Userflow already knows about.

  5. The first row is treated as a header. If your file has no header row, tick Include first row (it's not a header).

  6. Click Add companies to segment.

Companies are matched on Company ID only. There's no option to match on company name, so the IDs in your file need to be the ones your app sends in userflow.group(). This is different from the user CSV upload, which matches on email address or user ID.

You can also add companies to a segment by selecting them from another segment, which is easier for short lists.

Sending companies from your app

Most companies arrive from your product rather than a file:

  • userflow.group() in Userflow.js, called alongside userflow.identify(), which creates or updates the company and adds the user to it in one go.

  • The API, using POST /groups, or by embedding groups when you create or update a user. See the Userflow API Reference.

Both are upserts: send the same company ID again and the attributes merge into the existing record rather than duplicating it.

Counting the users in a company segment

The Users page can't be filtered by a company segment. Company segments only appear on the Companies page, and they list companies rather than the users in them.

Flows and checklists can still target those users. Add a Segments condition and choose User is in [company segment].

To get a count of the users:

  • If the companies share an attribute (for example, region or plan), go to Users, click Add filter, filter on that company attribute and click Save segment. The new user segment gives you a live count.

  • If they don't share one, export the company segment and export all users, then match users to companies on company ID in a spreadsheet.

A Companies export shows only the most recent user for each company, so you can't use it as the user list on its own.

Start flows/checklists based on segments

You can start flows/checklists with the User and Company segments you create on the users/companies pages. Just "Add condition" -> Segments to your flow/checklist auto-start conditions.

Segment condition