# Segments

**Dashboard path:** [Users & Segments > Segments](https://i.usejimo.com/segments) (`/segments`)

***

## Understanding segments

Segments are dynamic groups of users defined by conditions. They update automatically as users match (or stop matching) your criteria, and are reusable everywhere Jimo lets you target an audience: [experience targeting (Who)](https://help.usejimo.com/docs/publish/target-right-people-who), analytics filtering, and even as conditions inside other segments.

#### What makes a segment

A segment is defined by three things:

* **A name and description** so you and your team can find it later and understand its purpose at a glance
* **A set of conditions** built using the same [condition builder](#the-condition-builder) as the Users tab filter
* **An audience** (the current list of users matching the conditions, updated live)

Conditions combine native attributes, custom data you push, experience interactions, events, and even other segments, all connected with AND/OR logic groups.

#### Dynamic by design

Segments are **not static lists**. They do not store users. They store conditions, and Jimo evaluates them on the fly whenever needed.

In practice:

* A user who matches the conditions is considered part of the segment, automatically
* When a user's attributes or activity change, their segment membership updates
* You do not need to "refresh" a segment. It is always up to date.
* Updating a segment's conditions instantly changes the audience everywhere the segment is used, including live experiences. No republish required.

{% hint style="warning" %}
Changing a segment's conditions affects every experience using it, in real time. Be careful when editing segments attached to production experiences.
{% endhint %}

#### Where segments are used

Once saved, a segment is available in some places:

* [**Experience targeting (Who)**](https://help.usejimo.com/docs/publish/target-right-people-who): show a tour, survey, or banner only to a segment
* [**Users tab filter**](https://help.usejimo.com/docs/analyze/users-and-segments/users): narrow the user list to a segment's audience
* [**RC block conditions**](/docs/experiences/resource-center.md): Show block only if user belong to a specific segment
* [**Analytics**](https://help.usejimo.com/docs/analyze/analytics): filter experience performance by segment
* **Nested segments**: use a segment as a condition inside another segment

***

## Components of the Segments tab

<figure><img src="/files/qUSUr0LaS3iEgdaNxwDi" alt=""><figcaption></figcaption></figure>

The tab is organized into three main zones:

| Zone    | Component      | What it does                                                                    |
| ------- | -------------- | ------------------------------------------------------------------------------- |
| **(1)** | Header actions | "Import users from CSV" and "+ New Segment" buttons (top-right)                 |
| **(2)** | Tab navigation | Switch between Users, Segments (with count), and Imports                        |
| **(3)** | Segments list  | The list of saved segments with a counter, badges, audience sizes, and metadata |

Clicking any segment row opens its [**detail page**](#segment-detail-page) where you can edit conditions, preview the audience, and save changes.

***

### The segments list

<figure><img src="/files/2eFRZ280I9foDcUkf3Om" alt=""><figcaption></figcaption></figure>

The list displays every segment saved in the project.

#### List columns

| Column                 | Content                                                                                        |
| ---------------------- | ---------------------------------------------------------------------------------------------- |
| **Badge**              | Optional visual marker: emoji or icon with a colored label (e.g. "NEW" in blue, "VIP" in gold) |
| **Name / Description** | Segment name with its description below                                                        |
| **Audience**           | Live count of users currently matching the segment's conditions                                |
| **Created**            | Creation date with author name                                                                 |
| **Last updated**       | Most recent modification date with author name                                                 |

{% hint style="info" %}
The **Segments** tab label also shows a live counter of how many segments exist (e.g. "Segments 19").

![](/files/wKExcRDGLb9hop8q5HvL)
{% endhint %}

#### Row interactions

* **Click** a row: opens the segment [detail page](#segment-detail-page)
* **Hover** a row: a red trash icon appears at the end of the row for [deletion](#editing-and-deleting-segments)

{% hint style="warning" %}
**No templates, no presets.** Jimo does not ship with pre-built segments or a gallery of suggestions. Every segment starts blank from your own conditions. Think about which audiences matter to your product and build them from there.
{% endhint %}

***

## Creating a segment

<figure><img src="/files/f8LXiDqRoQpFklxW8RL0" alt=""><figcaption></figcaption></figure>

Click **+ New Segment** in the top-right corner of the page (visible from any tab except Imports) to open the segment creation page.

<figure><img src="/files/FELH5iKv4yPPiGkfDPum" alt=""><figcaption></figcaption></figure>

#### Name and description

Give your segment a **name** and (optionally) a **description**. A clear name and description save your team from having to reverse-engineer conditions every time they want to reuse the segment.

<figure><img src="/files/p5pnyj7mGIB6i5rM9GH8" alt=""><figcaption></figcaption></figure>

> **Tip:** Prefer explicit names like "Paying users, active last 30d" over "Segment 1". Use the description to note the intent ("For monthly activation tours") or the data sources it relies on.

#### Custom badges

Badges are customizable per segment. You can:

* Pick an **emoji or icon** as the visual marker
* Choose a **colored label** with custom text (e.g. "NEW", "BETA", "PAYING")

<figure><img src="/files/SlOlNluX91ErVHj9N4k4" alt=""><figcaption></figcaption></figure>

Badges help you visually categorize segments at a glance when scanning the list.

#### Add conditions

Click **Add...** to start building conditions. The condition builder is covered in the next section.

<figure><img src="/files/o4xQkgMoZAICCz9GCLWN" alt=""><figcaption></figcaption></figure>

#### Save the segment

Once conditions are set, click **Save** to create the segment. You are redirected to the segments list where your new segment appears with its audience count already computed.

<figure><img src="/files/bkeh5RJOr6IFyHCyMWjX" alt=""><figcaption></figcaption></figure>

***

### The condition builder

The builder lets you define any audience from your user data. It is the exact same tool used on the [Users tab filter](https://help.usejimo.com/docs/analyze/users-and-segments/users#filtering-the-user-list) or in the [Who section](/docs/publish/target-right-people-who.md#specific-users-recommended) to target a specific audience on the fly.

<figure><img src="/files/A39pXcHes2Cr41tPbAMs" alt=""><figcaption></figcaption></figure>

#### Available categories

The builder exposes up to **9 condition categories**, but not all appear by default. Some are **dynamic**: they only show up when at least one attribute or event of that category exists in your project.

<figure><img src="/files/mg9uCZ5wrM9DJzDRwvDB" alt=""><figcaption></figcaption></figure>

{% tabs %}
{% tab title="Always visible" %}

| Category                                                        | What it covers                                                                       |
| --------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
| <mark style="background-color:$warning;">**Attributes**</mark>  | Native Jimo fields: Name, Email, Last activity, Created, Sessions, Tags              |
| <mark style="background-color:$primary;">**Experiences**</mark> | User interactions with Jimo experiences (seen, completed, answered with…)            |
| <mark style="background-color:cyan;">**Segments**</mark>        | Nested segments — only available in Users filter, not in the Segments builder itself |
| {% endtab %}                                                    |                                                                                      |

{% tab title="Visible when data exists" %}

| Category                                                             | Appears when                                                                                                              |
| -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| <mark style="background-color:$danger;">**Custom Attributes**</mark> | At least one custom attribute has been pushed via the SDK or an integration                                               |
| <mark style="background-color:$success;">**Events**</mark>           | At least one no-code event or Jimo native event has been logged                                                           |
| <mark style="background-color:purple;">**Segment.io Traits**</mark>  | [Segment.io integration](https://help.usejimo.com/docs/integrations/segment.io) is connected and has sent identify traits |
| <mark style="background-color:violet;">**Segment.io Events**</mark>  | [Segment.io integration](https://help.usejimo.com/docs/integrations/segment.io) is connected and has sent track events    |
| <mark style="background-color:red;">**Posthog events**</mark>        | [Posthog integration](https://help.usejimo.com/docs/integrations/posthog) is connected and has sent events                |
| <mark style="background-color:$info;">**Jimo API events**</mark>     | At least one event has been ingested via Jimo's server-side API                                                           |
| {% endtab %}                                                         |                                                                                                                           |
| {% endtabs %}                                                        |                                                                                                                           |

{% hint style="warning" %}
On a fresh project, only Attributes and Experiences are usable out of the box. Custom Attributes and Events unlock the real segmentation power — push them early via the [SDK](https://help.usejimo.com/docs/for-developers/for-developers/sdk-guides/setup-the-segmentation) or [integrations](https://help.usejimo.com/docs/integrations/integration-setup) to expand what you can target.
{% endhint %}

{% hint style="info" %}
**Attributes vs Properties**: The Users filter labels the native attribute category as "Properties". The Segments builder labels it as "Attributes". These refer to the same thing — the user's list of native attributes. See [User attributes](https://help.usejimo.com/docs/analyze/users-and-segments/users/attributes) for the full reference.
{% endhint %}

#### Combining conditions with AND / OR

<figure><img src="/files/w3IkDvtUW3O9JjLj52LV" alt=""><figcaption></figcaption></figure>

Conditions within the same group are connected by **AND** (green connector on the left). Separate groups are connected by **OR** (orange connector). To see how this comes together, walk through a concrete example.

<details>

<summary><strong>Example</strong> — Building an AND/OR segment from scratch</summary>

#### **Target audience:**&#x20;

Users with a proper `Name` AND a proper `Id` AND either a native `Email` OR an `external_email` custom attribute.

#### Formula:

&#x20;`Name AND Id AND (Email OR external_email)`

#### Build steps:

<figure><img src="/files/1ilLm7LxI3yCkEcyft3K" alt=""><figcaption></figcaption></figure>

**1) Add the first condition (Name)**

Click **Add...** and pick `Attributes > Name > is not empty`. The builder automatically creates the first main group around this condition with a default **AND** connector.

<figure><img src="/files/xymGQtm8Ruydwj6fDEkW" alt=""><figcaption></figcaption></figure>

**2) Add the second condition (Id)**

Click **Add...** inside the same group and pick `Attributes > Id > is not empty`. The condition joins the existing group under the same **AND** connector.

<figure><img src="/files/cuBRksmGg8PAQrAscr3z" alt=""><figcaption></figcaption></figure>

**3) Add a nested logic group**

Click **Add...** and pick **New logic group**. A nested sub-group is created inside the main group.

<figure><img src="/files/MCC9ehm2BWyMtM85aS5f" alt=""><figcaption></figcaption></figure>

**4) Add the first alternative (Email) inside the group**

Inside the new group, click **Add...** and pick `Attributes > Email > is not empty`. The condition is added under an AND connector by default.

<figure><img src="/files/lMIhzIdYckiN65n1vuOz" alt=""><figcaption></figcaption></figure>

**5) Switch the group to OR connector**

As new nested groups are created with a default **AND** connector. Click the connector and switch it to **OR**.

<figure><img src="/files/NbUtsGZFpwdt0dSDvjxx" alt=""><figcaption></figcaption></figure>

**6) Add the second alternative (external\_email)**

Still inside the OR group, click **Add...** and pick `Custom Attributes > external_email > is not empty`. The condition joins the first one inside the OR group.

<figure><img src="/files/OuD4PsIAxac5Bo6pt5qF" alt=""><figcaption></figcaption></figure>

#### Final structure:

```
AND — Name is not empty
AND — Id is not empty
AND — [ OR — Email is not empty
        OR — external_email is not empty ]
```

All three top-level conditions must be true (Name, Id, and at least one of the two emails) for a user to match the segment.

</details>

#### Managing logic groups

As your segment grows, you will want to group, ungroup, and reorganize conditions. When you hover over a group, three action icons appear in the top-right corner of that group.

<figure><img src="/files/wnxwfoYZL8Jd1ybMCuI4" alt=""><figcaption></figcaption></figure>

|                                 Icon                                | Action                                        | Effect                                                              |
| :-----------------------------------------------------------------: | --------------------------------------------- | ------------------------------------------------------------------- |
| <img src="/files/p4NLc3zVSDkXVJmMcdO1" alt="" data-size="original"> | Nest the selected conditions into a sub-group | Creates a new AND/OR layer around them                              |
|                   ![](/files/Onh7t17uyAxdmYOrw0pv)                  | Flatten a sub-group back into its parent      | Moves the conditions up one level                                   |
| <img src="/files/vbQpi2CbmgnWdD8yUA0v" alt="" data-size="original"> | Delete the entire group                       | Removes **all nested conditions plus the group's AND/OR connector** |

{% hint style="danger" %}
**Do not confuse the two delete actions:**

* **Trash icon (on a group)**: wipes out the whole group — every nested condition and the AND/OR logic — in one click.

  <figure><img src="/files/hHYp49q1U3bp00MB9q87" alt=""><figcaption></figcaption></figure>
* **X cross (at the end of a condition block)**: removes only that single condition, leaves the surrounding group intact.

  <figure><img src="/files/DeAGkDFUgrauF9q9KlEi" alt=""><figcaption></figcaption></figure>

Both are irreversible until you re-add the conditions manually. When in doubt, use the X cross to remove conditions one by one.
{% endhint %}

<details>

<summary><strong>Example</strong> — Restructuring the previous segment</summary>

*Continuing from the segment built in the previous section, suppose you now want a different audience.*

#### New target audience:&#x20;

Users with a proper `Id` AND either `Name`, native `Email`, or `external_email`.

#### New formula:

&#x20;`Id AND (Name OR Email OR external_email)`

**Starting state** (from the previous example):

```
AND — Name is not empty
AND — Id is not empty
AND — [ OR — Email is not empty
        OR — external_email is not empty ]
```

#### Restructure steps:

**1) Wrap everything in a new top-level group**

* Hover the outermost group and click the **Turn into a group** icon
* The whole current segment becomes nested inside a new top-level AND group, giving you a place to add the Id condition separately later

<figure><img src="/files/CJwWJaMqWSUj3xvqE6Eu" alt=""><figcaption></figcaption></figure>

**2) Switch the middle group to OR**

* Click the connector of the middle group (the one that used to be the main group)
* Toggle it from **AND** to **OR**

<figure><img src="/files/FQtjuWerSIN1ZGKFY5nc" alt=""><figcaption></figcaption></figure>

**3) Move the Id condition out**

* Inside the middle group, click the **X cross** at the end of the `Id is not empty` condition to remove just that condition (the group itself and the other conditions stay untouched)
* At the new top level, click **Add...** and re-add `Attributes > Id > is not empty`

<figure><img src="/files/sbMIXpKFkXUZIGMdHgli" alt=""><figcaption></figcaption></figure>

After this step the structure is:

```
AND — Id is not empty
AND — [ OR — Name is not empty
        OR — [ OR — Email is not empty
                OR — external_email is not empty ] ]
```

**4) Ungroup the redundant OR nesting**

* The middle group now has two consecutive OR layers nested inside each other (the outer OR with Name, and the inner OR with Email/external\_email)
* Since stacked ORs produce the same result, hover the innermost group and click the **Ungroup** icon
* The two email conditions are lifted one level up and join Name under a single OR

<figure><img src="/files/fIkhP0q14v46Tm0wUoAF" alt=""><figcaption></figcaption></figure>

#### Final structure:

<figure><img src="/files/XQGMDnA084jjRJpI3B17" alt=""><figcaption></figcaption></figure>

```
AND — Id is not empty
AND — [ OR — Name is not empty
        OR — Email is not empty
        OR — external_email is not empty ]
```

The segment now matches users with a valid Id plus at least one of Name, Email, or external\_email.

</details>

### Apply and preview

When your conditions are set, click **Apply** at the bottom of the builder to refresh the audience preview with the current conditions. This is how you verify that your segment catches the users you intended before saving.

<figure><img src="/files/EqTK6VdZBWtYsNs6R1wF" alt=""><figcaption></figcaption></figure>

***

## Segment detail page

<figure><img src="/files/bQLUDDfTdNJQixXvt5f9" alt=""><figcaption></figcaption></figure>

Clicking any segment in the list opens its detail page. From here you can edit conditions, preview the audience, and save changes.

<figure><img src="/files/zTVEX4dorUizwimzuO6a" alt=""><figcaption></figcaption></figure>

#### Header

At the top:

* Segment **name** and **description** (editable inline)
* **Badge editor** to customize the visual marker

#### Condition builder

The same builder used during creation. Any change you make here is previewable before saving.

<figure><img src="/files/TkFPbE6bs0IflJFCgQXc" alt=""><figcaption></figcaption></figure>

#### Action buttons

| Button                       | When to use                                                                                                                                   |
| ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| **Duplicate**                | Create a copy of the segment as a new independent one. Useful for creating variations without starting from scratch.                          |
| **Save**                     | Persist your changes. **Grayed out until you make at least one modification.**                                                                |
| **Apply to update the list** | Refresh the audience preview based on the current (unsaved) conditions. Use this to verify the segment matches the right users before saving. |

{% hint style="warning" %}

#### Segments are dynamic

Saving a segment immediately propagates the new conditions to every experience using it, no republishing needed. If you need to test changes before applying them to live experiences, Duplicate the segment first, iterate on the copy, and swap once validated.
{% endhint %}

### Editing and deleting segments

#### Edit a segment

Click any segment in the list to open its detail page. Update the name, description, badge, or conditions. If you edit the setup you need **first** to **apply the new conditions to update the user list** before being able to save.&#x20;

![](/files/n0UuZaL65vIkaHd2qEMZ)\
\
Then click **Save** to apply the new conditions.&#x20;

<figure><img src="/files/ISjjz9W2HvoLQvSBiFZA" alt=""><figcaption></figcaption></figure>

Changes propagate immediately to all experiences using the segment. No republish required.

#### Delete a segment

From the segments list, **hover a row** to reveal the red trash icon at the end. Click to trigger the delete confirmation.

<figure><img src="/files/n8m07Y9ocqY2LRjAspQG" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
Deleting a segment that is used for targeting can have unintended consequences. If an experience's Who section only referenced the deleted segment, the experience will **start showing to all users** (the targeting fallback). Before deleting, check which experiences reference the segment.
{% endhint %}

***

## Using segments for targeting

Segments really pay off when used in the [Who section](https://help.usejimo.com/docs/publish/target-right-people-who) of an experience.

{% stepper %}
{% step %}

#### Open any experience

Tour, survey, banner, hint, checklist, resource center.

<figure><img src="/files/P7B90kQYZlusjSiQXKv1" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Go to the **Target & Publish** settings

<figure><img src="/files/vd5lv6aGU2GEpLmjCzKK" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### In the **Who** section, click **Specific users**

<figure><img src="/files/OWvHgz7H28P55QAO4d8N" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Select one or more segments from the dropdown

or reuse the [condition builder](#the-condition-builder) logic on the fly.

<figure><img src="/files/29CRK89iQ4IgeCDcHdqd" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

The experience will be shown to users belonging to **any** of the selected segments (Union logic between segments). To handle intersection logic, you can combine saved segments within on-the-fly conditions in the Who block.&#x20;

{% hint style="warning" %}
Note that you can't select existing segments and add on the fly conditions at the same time. To do so use only the on-a-fly methode with segment type conditions.
{% endhint %}

See [Target right people (Who)](https://help.usejimo.com/docs/publish/target-right-people-who) for the full targeting reference.

***

### Survey responses segmentation

The **"Answered with"** filter lets you segment users by their answers to discovery experiences (surveys, NPS, feedback steps). It is available in the Experiences category of the [condition builder](#the-condition-builder), not as a standalone feature.

<figure><img src="/files/1PH8wicqdCxhTGwlGxTR" alt=""><figcaption></figcaption></figure>

#### When to use it

* Follow up with users who gave a specific NPS score (promoters, detractors)
* Target users who answered "Yes" to a feature interest survey with a related onboarding tour
* Exclude users who dismissed a survey from a follow-up experience
* Build a "product advocates" segment from positive survey answers

#### How to set it up

{% stepper %}
{% step %}

#### Click **Add...** and pick a condition

In any context where the condition builder is available (Users filter, segment creation, or [Who](https://help.usejimo.com/docs/publish/target-right-people-who) targeting for an experience):
{% endstep %}

{% step %}

#### Select the **Experiences** category

Choose the category from the condition list.
{% endstep %}

{% step %}

#### Choose the **Answered with** attribute type

Pick **Answered with** from the available Experience attributes.
{% endstep %}

{% step %}

#### Pick the **discovery experience** you want to filter on

Select the survey or discovery experience to target.
{% endstep %}

{% step %}

#### Pick the **step** within that experience

Choose the specific step you want to use.
{% endstep %}

{% step %}

#### Set the **operator** and target **answer**

Choose the operator (is / is not / contains…) and the answer value.
{% endstep %}
{% endstepper %}

<figure><img src="/files/Bpb7bnPkfyeldXi2pKGC" alt=""><figcaption></figcaption></figure>

Combine this filter with other conditions (attributes, events, other survey answers) to build fine-grained audiences like "Paying users who rated the product ≥ 8 in the Q1 NPS survey."

{% hint style="info" %}
The "Answered with" filter works on any [discovery experience](https://help.usejimo.com/docs/experiences/surveys) that collects responses: surveys, NPS scores, rating steps, open-ended questions, and choice-based flows in tours.
{% endhint %}

***

## Related pages

* [Users & Segments overview](https://help.usejimo.com/docs/analyze/users-and-segments): Core concepts, identification, and getting started
* [Users](https://help.usejimo.com/docs/analyze/users-and-segments/users): Browse the user list and inspect individual profiles
* [User attributes](https://help.usejimo.com/docs/analyze/users-and-segments/users/attributes): Reference for attribute types, sources, and setup
* [Import](https://help.usejimo.com/docs/analyze/users-and-segments/import): Bulk-upload users and attributes via CSV, with auto-segment creation
* [Target right people (Who)](https://help.usejimo.com/docs/publish/target-right-people-who): Use segments to control who sees each experience
* [Setup the segmentation](https://help.usejimo.com/docs/for-developers/for-developers/sdk-guides/setup-the-segmentation): Developer guide for pushing custom attributes
* [Success Tracker](https://help.usejimo.com/docs/analyze/success-tracker): Create no-code events that unlock the Events category in the builder
* [Integration Setup](https://help.usejimo.com/docs/integrations/integration-setup): Connect Segment.io, Posthog, Amplitude, and more to unlock their categories in the builder


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.usejimo.com/docs/analyze/users-and-segments/segments.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
