> ## 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.

# Segments

> Segments allow you to group users and companies based on shared characteristics or behaviors. Throughout Userpilot, these segments enable you to refine user insights and deliver personalised in-app experiences.

<img src="https://mintcdn.com/userpilot/lOfYv3p-ByrAWUmC/users-companies/assets/images/segments-1.png?fit=max&auto=format&n=lOfYv3p-ByrAWUmC&q=85&s=25a061dc7e869127fe0d9d8e3aec2db0" alt="Create segment" width="1920" height="958" data-path="users-companies/assets/images/segments-1.png" />

## Get started

To begin creating User or Company segments, apply conditions from the [User Overview](https://run.userpilot.io/users) or [Company Overview](https://run.userpilot.io/companies) page and click "Save Segment". You can then access and manage your segments from the ‘Segment’ global filter directly on the User / Company Overview page, or navigate to [Segments.](https://run.userpilot.io/segments)

<img src="https://mintcdn.com/userpilot/lOfYv3p-ByrAWUmC/users-companies/assets/images/Screenshot2025-01-31at3.42.30PM.png?fit=max&auto=format&n=lOfYv3p-ByrAWUmC&q=85&s=0844d18c443f12ccc2ff038b0ff770b0" alt="" width="1442" height="614" data-path="users-companies/assets/images/Screenshot2025-01-31at3.42.30PM.png" />

## Conditions

Conditions help you narrow down user data based on different criteria. Userpilot offers several types of filtering options:

<img src="https://mintcdn.com/userpilot/lOfYv3p-ByrAWUmC/users-companies/assets/images/Screenshot2025-01-30at5.41.54PM.png?fit=max&auto=format&n=lOfYv3p-ByrAWUmC&q=85&s=36cff1e841f9207255c2a874a0f32534" alt="" width="1356" height="736" data-path="users-companies/assets/images/Screenshot2025-01-30at5.41.54PM.png" />

**1. User Data:** Filter users based on auto or custom user properties. You can see the full list of auto and custom user properties within [Data Management → User Properties.](https://run.userpilot.io/data-management/user-properties)

**2. Company Data:** Filter users or companies based on auto or custom properties. You can see the full list of auto and custom company properties within [Data Management → Company Properties](https://run.userpilot.io/data-management/company-properties).

**3. Events:** Filter users based on their interactions and behaviours. Use labelled, tracked, or custom events to specify the user interaction and refine further by specifying:

* the number of times an event was triggered (e.g. users who performed an event three times in the past week)
* custom event property data (i.e. filter tracked events by the custom property data attached to them)

**4. Segments:** Filter by users who match conditions in previously saved segments

**5. Pages:** Filter users based on whether or not they have viewed specific tagged pages

**6. Content Engagement:** Identify users based on their interactions with specific Userpilot content, including:

* **Banners** – Users who have seen a banner
* **Checklists** – Users who have started, completed, or dismissed a checklist
* **Flows** – Users who have seen, completed, dismissed or engaged with a flow
* **NPS Surveys** – Users who responded to or ignored an NPS surveys
* **Spotlights** – Users who have seen a spotlight
* **Surveys** – Users who submitted responses to or ignored in-app surveys

**7. User Feedback:** Filter by users who have provided feedback through:

* NPS responses
* Surveys
* Flow form responses

***

## Understanding Logical Operators (AND vs. OR)

### AND Operator

When you apply multiple conditions using the **AND** operator, **all** conditions must be met for a user/company to be included in the results

<img src="https://mintcdn.com/userpilot/_BJC5imHpacCJLbf/users-companies/assets/images/Screenshot2025-01-30at11.18.21PM.png?fit=max&auto=format&n=_BJC5imHpacCJLbf&q=85&s=6a36774c9026edb08e2fbbeaf6ee47c5" alt="" width="2596" height="448" data-path="users-companies/assets/images/Screenshot2025-01-30at11.18.21PM.png" />

### OR Operator

The **OR** operator surfaces users/companies who match **at least one** of the applied conditions.

<img src="https://mintcdn.com/userpilot/_BJC5imHpacCJLbf/users-companies/assets/images/Screenshot2025-01-30at11.18.46PM.png?fit=max&auto=format&n=_BJC5imHpacCJLbf&q=85&s=74bdd4a4eb2fc9a1825b9d761e0e68f0" alt="" width="2596" height="448" data-path="users-companies/assets/images/Screenshot2025-01-30at11.18.46PM.png" />

**Example:**

* If filtering users who **signed up in the last 7 days AND have a premium plan**, only users matching both conditions will appear.
* If filtering users who **signed up in the last 7 days OR have a premium plan**, users meeting *either condition* will be displayed.

## Logic Groups: Combining Multiple Conditions

Logic Groups allow you to group conditions with the same logical operator for more advanced filtering.

**Example:** If you want to filter users who **signed up recently AND have created a report OR a dashboard**, you can create a logic group:

* Condition 1: Signed up in the last 7 days
* Condition 2: (Created report OR created dashboard)

This way, we can target all new users who interacted with one of my core features.

<img src="https://mintcdn.com/userpilot/lOfYv3p-ByrAWUmC/users-companies/assets/images/segments-6.png?fit=max&auto=format&n=lOfYv3p-ByrAWUmC&q=85&s=196e2a25d941835e0dc7c9c5d0f5d819" alt="Segments 6.png" width="1820" height="400" data-path="users-companies/assets/images/segments-6.png" />

## Adding Multiple Values Using "OR"

Userpilot allows you to add up to 5,000 inputs within a single condition using the “Add Multiple Values” feature. This feature enables users to copy and paste a list of values (e.g., user emails, IDs) separated by a line break or a comma, making it easier to filter large datasets efficiently.

<img src="https://mintcdn.com/userpilot/_BJC5imHpacCJLbf/users-companies/assets/images/Screenshot2025-01-30at11.29.03PM.png?fit=max&auto=format&n=_BJC5imHpacCJLbf&q=85&s=183a03489a2adb36c235046fc555fb6f" alt="" width="2596" height="448" data-path="users-companies/assets/images/Screenshot2025-01-30at11.29.03PM.png" />

<img src="https://mintcdn.com/userpilot/lOfYv3p-ByrAWUmC/users-companies/assets/images/Screenshot2025-01-30at11.29.29PM.png?fit=max&auto=format&n=lOfYv3p-ByrAWUmC&q=85&s=acafad52cf97e9e761074fefb756980d" alt="" width="1324" height="806" data-path="users-companies/assets/images/Screenshot2025-01-30at11.29.29PM.png" />

<Note>
  If you need to add more than 5,000 inputs, you can simply create an additional
  condition to accommodate the extra values.
</Note>

***

## Understanding Negative Operators

Negative operators (`doesn't equal`, `isn't one of`, `doesn't match`, `doesn't contain`, `doesn't exist`, and their boolean equivalents) include records that are *missing the property entirely*, not only those whose value fails the comparison. Positive operators (`exists`, `equals`, `is one of`, `matches`, `contains`) are strict and only return records that actually have a value.

This behavior is consistent across user and company properties, across string, boolean, and numeric data types, and applies both to segments on the Segments page and to segments used in triggering.

### Quick reference

| Operator type                                                                                   | Has matching value | Property missing | No company (company prop) |
| ----------------------------------------------------------------------------------------------- | ------------------ | ---------------- | ------------------------- |
| Positive (`exists`, `equals`, `is one of`, `matches`, `contains`)                               | Included           | Excluded         | Excluded                  |
| Negative (`doesn't exist`, `doesn't equal`, `isn't one of`, `doesn't match`, `doesn't contain`) | Included           | Included         | Included                  |

### Example

Filtering users **whose plan is not "Premium"** with `plan doesn't equal "Premium"` returns users on other plans **and** users where `plan` was never set.

### Excluding records that don't have the property

For strictly negative conditions — only records that have the property set, with a value other than the one you're excluding — combine `exists` with the negative condition:

* `plan exists` **AND** `plan doesn't equal "Premium"` → users who have a plan, and that plan isn't "Premium".
* For company properties, add `company exists` to exclude users who aren't assigned to a company.

***

## FAQs

<AccordionGroup>
  <Accordion title="How do I know which segment a user belongs to?">
    When viewing a user profile in the Users Dashboard, you can check their
    associated segments to see which groups they belong to.
  </Accordion>

  <Accordion title="What happens if I delete a segment?">
    Deleting a segment **removes the saved conditions**, but user data remains
    intact.
  </Accordion>

  <Accordion title="How often are filters and segments updated?">
    Filters update in real-time, so any new users meeting the conditions will
    appear automatically.
  </Accordion>

  <Accordion title="What is the difference between a filter and a segment?">
    Filters are **temporary** queries used to analyze user data on the spot,
    while segments are **saved groups** that can be reused and applied to
    different features.
  </Accordion>

  <Accordion title="Can I import user data into a segment?">
    While Userpilot doesn’t support direct data imports, you can efficiently add
    a list of users by using the **"Add Multiple Values"** feature. Simply copy
    your list and paste it into the condition field, separating values with a
    comma or a line break.
  </Accordion>

  <Accordion title="Why does my 'doesn't equal' segment include users who don't have that property?">
    By design, negative operators (`doesn't equal`, `isn't one of`, `doesn't
            match`, `doesn't contain`, `doesn't exist`) include records whose property
    is missing entirely. If you only want users who have the property set but
    with a different value, combine `exists` AND `doesn't equal X` in the same
    segment.
  </Accordion>

  <Accordion title="Why are users without a company appearing in my company-property segment?">
    When you filter on a company property using a negative operator, users who
    aren't assigned to a company are included — they cannot satisfy a positive
    comparison, so they fall into the negative result set. To exclude them, add
    a `company exists` condition to your segment.
  </Accordion>

  <Accordion title="Does this behavior apply only to the Segments page, or to triggering as well?">
    It applies to both. Segmentation in the Userpilot dashboard and segment
    evaluation when triggering experiences follow the same rules, including for
    string, boolean, and numeric properties.
  </Accordion>
</AccordionGroup>

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