# Understanding segments

<YouTube id="tahgIHOUGc0" playlabel="Youtube Video: As a longtime Pushwoosh user, you may remember how we first introduced Segments under the name of Filters. The feature has evolved greatly since then, and here is its up-to-date overview"/>

## What are segments?

Segments are groups of app subscribers who meet the conditions you specify. These are users who have specific tag values assigned to their devices and/or user IDs.

Use segments to target audiences via [push notifications](/product/messaging-channels/push-notifications), [in-app messages](/product/messaging-channels/in-apps/), [emails](/product/messaging-channels/emails/), [customer journeys](/product/customer-journey/pushwoosh-journey-overview), etc.


## Why use segments?

Segments enable you to:

* **Target the right users**: Send messages only to users who match your specific criteria
* **Personalize campaigns**: Create relevant content for different audience groups
* **Improve engagement**: Reach users at the right time with the right message
* **Optimize costs**: Avoid sending messages to uninterested users

## How segments work

Segments are built using filters to define who should be included:

* **Tags:** User attributes like age, language, or subscription status
* **Events:** User actions like purchases or app opens
* **Existing segments:** Previously created segments that you can reuse and refine
* **User ID:** Known users identified by their Pushwoosh User ID
* **Geo:** Users who are near a selected point on the map
* **Compound filters:** Combinations of several filters and logic operators


When combining multiple conditions, use logical operators:

* **AND**: Users who meet all conditions
* **OR**: Users who meet any condition
* **AND NOT**: Users who meet first condition but exclude those who also meet second condition

This flexibility lets you create simple or complex audience targeting based on your needs.

## Segment types at a glance

Choose the segment type that best fits your use case:

| Segment Type          | What it does                                                                                  | Best for                                                                |
|----------------------|----------------------------------------------------------------------------------------------|-------------------------------------------------------------------------|
| [By tags](/product/audience-data-and-segmentation/segmentation/create-segments/by-tags)          | Target users based on their attributes and profile data                                       | Segmenting by age, language, or subscription status                            |
| [By events](/product/audience-data-and-segmentation/segmentation/create-segments/by-events)        | Target users based on their actions and app behavior                                          | Targeting purchasers, users who opened the app, content viewers               |
| [By existing segments](/product/audience-data-and-segmentation/segmentation/create-segments/by-existing-segments) | Combine or refine previously created segments                                             | Reusing complex segment logic, combining multiple segments                             |
| [By User ID](/product/audience-data-and-segmentation/segmentation/create-segments/by-user-id) | Target known users by Pushwoosh User ID | Precise targeting for known user lists |
| [By geolocation](/product/audience-data-and-segmentation/segmentation/create-segments/by-geo) | Target users near a selected point within a defined radius | Location-based campaigns and local offers |
| [With compound filters](/product/audience-data-and-segmentation/segmentation/create-segments/compound-filters) | Combine multiple filter types using AND/OR/AND NOT logic                                | Advanced targeting like "purchased AND opened app in last 7 days"       |
| [Anniversary segments](/product/audience-data-and-segmentation/segmentation/create-segments/anniversary-segments) | Target users on specific dates each year                                                  | Birthday campaigns, app anniversary offers, seasonal promotions                              |
| [From CSV import](/product/audience-data-and-segmentation/segmentation/create-segments/by-import)    | Upload a file with user IDs or device IDs                                                  | Bulk importing user lists               |
| [With AI](/product/audience-data-and-segmentation/segmentation/create-segments/build-segments-with-ai)            | Instantly creates segments from your plain-language descriptions using advanced natural language processing | Quick segment creation, intuitive design for new users, time-saving automation |
| [RFM segmentation](/product/audience-data-and-segmentation/segmentation/rfm-segmentation)   | Classifies users based on Recency, Frequency, and Monetary value of their purchase behavior | Purchase behavior analysis, identifying top spenders, churn risk detection      |


## Create your segment

To build a segment:

1. Go to the **Segments** section of the Pushwoosh Control Panel (**Audience** → **Segments**).
2. Press the **Create Segment** button.
3. Choose **Build Segment** from the dropdown menu.

<img src="/segmentation-segments-1.webp" alt="Build Segment interface showing create segment button and dropdown menu"/>

<LinkCard
  title="Explore all segment creation methods"
  href="/product/audience-data-and-segmentation/segmentation/create-segments"
/>

## Manage your segments

Keep your segments up-to-date and optimized with the following management options.

### Segments list

On the **Segments** page you can search segments, sort by last modified, and create new ones with the **Create Segment** dropdown.

The table shows:

* **Name:** Segment name with the segment logic (Seglang) under it
* **Estimated size:** The calculated size or "Segment not calculated" and the last modified date
* **Actions:** Open the three-dot menu to edit conditions, refresh size, export to CSV, view segment usage, copy Seglang, clone, or delete the segment
* **Send message:** Click it to open the **Create campaign** dialog, where you choose a campaign type (one-time push or email, or an advanced campaign: push-based, email, in-app, SMS, or WhatsApp).

### Actions with segments

These actions are available from the three-dot menu next to each segment in the **Segments** list. Some actions are also available on the segment detail page.

#### Edit conditions

To change the rules that define a segment, choose **Edit conditions**.

Alternatively, open the segment and click **Edit conditions** in the header.

#### Refresh segment size

Select **Refresh Segment Size** to recalculate audience counts.

#### Export segment users

Export segment data to CSV to analyze user lists, integrate with external systems, or back up segment information.

You can export a segment in two ways:

- Select **Export segment users...** in the action menu next to the segment.

- Select **Generate CSV for export** from the three-dot menu on the segment detail page.

Before export, choose which fields to include in the CSV directly in the Control Panel:

1. Select identifiers in **Data fields**.
2. Select the required items in **Tags**.
3. Click **Export**.

<img src="/segmentation-segments-33.webp" alt="Export segment users dialog where data fields and tags can be selected before CSV export."/>

The CSV fields depend on your selection in the export dialog.

<Aside type="note" title="Example CSV">

| Hwid          | Push Token        | Type | Type (humanized) | Age | Application Version | City          | Country | Device Model  | Email Segment Name | First Install | Gender | In-app Product | In-app Purchase | Jailbroken | Language | Last Application Open | Last In-app Purchase date | Name | OS Version | PW Channels | Push Alerts Enabled | SDK Version | Subscription Segments    | Unsubscribed Emails | WishList |
| ------------- | ----------------- | ---- | ---------------- | --- | ------------------- | ------------- | ------- | ------------- | ------------------ | ------------- | ------ | -------------- | --------------- | ---------- | -------- | --------------------- | ------------------------- | ---- | ---------- | ----------- | ------------------- | ----------- | ------------------------ | ------------------- | -------- |
| 146.....Hl23f | 146.....Hl23f     | 10   | Safari           | 27  |                     | us, new york  | us      | Safari 12.0.1 |                    | 2020-02-19    |        |                |                 |            | en       | 2020-07-15            |                           |      |            |             | 1                   | 3.15.1.0    |                          | true                |          |
| 01D...3C8     | eeeb2fd....fc3547 | 1    | iOS              | 18  | 1.11.1.0            | in, bengaluru | in      | iPhone SE     |                    | 2018-11-26    |        | outwear_01    | 24              | 0          | en       | 2018-11-26            | 2018-11-26                |      |            |             |                     | 5.8.0.0     | 2D732-BB981, 7EC43-1531A |                     |          |
| C90...79ae5   | eQFKk......DwJSv  | 11   | Chrome           | 36  |                     | us, chicago   | us      | Chrome 81     |                    | 2020-08-24    |        |                |                 |            | en       | 2020-08-24            |                           |      |            |             | 1                   | 3.15.1.0    |                          |                     |          |

</Aside>




#### Copy Seglang

Segmentation Language is a syntax to define and apply specific conditions or filters when segmenting your audience.

The **Copy Seglang** option allows you to copy the underlying logic of a segment you've created. 

<img src="/segmentation-segments-12.webp" alt="Copy Segmentation Language option showing segment logic syntax"/>
The copied Segmentation Language can then be used in API calls, such as the [`createmessage`](/developer/api-reference/messages-api#createmessage) API method or [API-based customer journey entries](/product/customer-journey/journey-elements/entry-elements/api-based-entry), to replicate the same segmentation logic.

<LinkCard
  title="Learn how to manage segments with the API"
  href="/developer/api-reference/segmentation-filters-api"
/>

#### Clone segment

Quickly create new segments based on existing ones. Cloning saves time when you need similar audience definitions with slight modifications.

<img src="/segmentation-segments-13.webp" alt="Clone segment option for creating similar segments"/>

#### View segment usage

Before changing or deleting a segment, you can see which customer journeys use it. Choose **View segment usage**.

<img src="/segmentation-segments-28.webp" alt="Three-dot menu on a segment row with View segment usage option highlighted"/> 

The **Segment usage** modal shows a table with the journeys and campaigns that use the segment.

<img src="/segmentation-segments-27.webp" alt="Segment usage modal listing journeys and campaigns that use the segment with columns for journey name, status, used in steps, and launched date"/> 

#### Delete segment

To remove a segment, choose **Delete**.

<img src="/segmentation-segments-29.webp" alt="Delete segment option in the three-dot menu"/>

Deleting a segment does not remove or change user data. Campaigns (customer journeys) that use this segment will be paused, and any messages scheduled to that segment will be cancelled. Before confirming, you can see which journeys use the segment and how they will be affected.

<img src="/segmentation-segments-30.webp" alt="Delete segment confirmation dialog listing related journeys and the checkbox to confirm impact on campaigns"/>

Check **Confirm that deleting will affect related campaigns** to acknowledge the impact, then click **Delete** to proceed or **Cancel** to close.

## Advanced features

### High-Speed Delivery segments

High-Speed Delivery segments keep updated every 10 minutes, ensuring minimal delay when launching messages. Use these segments when you need the fastest possible message delivery.


### RFM analysis

Use recency, frequency, and monetary analysis to identify your most valuable customers and create targeted campaigns for different customer value tiers.

<LinkCard
  title="Learn more about RFM segmentation"
  href="/product/audience-data-and-segmentation/segmentation/rfm-segmentation"
/>

### API-based segmentation

<Aside type="caution" icon="setting" title="Developer assistance needed">
API-based segmentation requires working with API methods and segmentation language syntax. Coordinate with your developer team to implement programmatic segment creation or advanced integrations.
</Aside>

Create and manage segments programmatically using API methods. This approach is ideal for automated segment management and integration with external systems.

<LinkCard
  title="Learn more about API-based segmentation"
  href="/developer/api-reference/segmentation-filters-api"
/>