> ## Documentation Index
> Fetch the complete documentation index at: https://docs.replybubble.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Contact Segments

> Save reusable contact filters and dynamic rule-based audiences

Segments are named, reusable contact groupings scoped to your workspace. Save a filter you use often, or build a dynamic rule set that tracks live matches -- and reuse either one to target a [proactive campaign](/campaigns).

***

## Two kinds of segment

Segments come in two flavors, and the dashboard treats them differently:

### Filter segments

Saved from the current filter bar on the Contacts page (status, tags, spam classification, search). These can be **applied** back to the contact list with one click -- they're a bookmark for a filter combination you use often.

### Rule-based segments

Built with the visual rule builder. These evaluate a set of conditions dynamically against every contact and show a **live member count**. Rule-based segments can be referenced as an **audience** in a [proactive campaign](/campaigns) -- filter segments cannot.

A segment is one or the other, never both: saving a rule set clears any stored filters, and vice versa.

<Note>
  Segments created before the rule builder shipped are filter-only ("legacy"). They still work and can be applied or renamed, but re-save them with rules if you want to use them for campaign targeting.
</Note>

***

## Managing segments

1. Go to **Dashboard > Contacts**
2. Click **Segments** in the filter bar
3. From the menu you can:
   * **Apply** a filter segment to the contact list
   * **New segment** -- open the rule builder to create a rule-based segment
   * **Save current filters** -- save your active status/tag/spam/search filters as a filter segment
   * **Edit rules** (or **View**, for legacy segments) on an existing segment
   * **Rename** or **Delete** a segment

Rule-based segments show a **live member count** in their submenu, and their editor shows a preview of the first few matching contacts.

***

## Building rules

Each rule is a `field` + `operator` + `value` condition. Add up to 25 conditions and combine them with **All rules** (AND) or **Any rule** (OR) -- a single combinator applies across every condition in the segment.

| Field                 | Operators                                   | Value                                                           |
| --------------------- | ------------------------------------------- | --------------------------------------------------------------- |
| **Country code**      | is, is not, contains, is any of, exists     | Text                                                            |
| **Identity verified** | is                                          | true / false                                                    |
| **Status**            | is, is not, exists                          | `new`, `active`, `qualified`, `unqualified`, `spam`, `archived` |
| **Spam score**        | is, is not, greater than, less than, exists | Number                                                          |
| **Last active**       | after, before, exists                       | Date                                                            |
| **Created**           | after, before                               | Date                                                            |
| **Channel**           | is, exists                                  | `web`, `whatsapp`, `email`, `messenger`, `instagram`            |
| **Tag**               | contains, is any of, exists                 | Text                                                            |
| **Custom attribute**  | is, is not, contains, is any of, exists     | Text (requires an attribute key)                                |

Notes:

* **is any of** takes a comma-separated list of values.
* **exists** needs no value -- it just checks the field is present.
* **Custom attribute** conditions also need an attribute key, matched against the contact's stored custom attribute data.

As you build a rule-based segment, a debounced live count ("N contacts match") updates under the rule rows once every condition is complete -- so you can see the audience size before saving.

***

## Using segments in campaigns

When creating or editing a [proactive campaign](/campaigns), choose **Saved segment** as the audience and pick a rule-based segment from the list. Only rule-based segments appear in the picker -- filter (legacy) segments match nobody in a campaign context, since they have no dynamic rules to evaluate against a visitor.

For a one-off targeting need that isn't worth saving, choose **Custom rules** on the campaign instead and build the rule set inline with the same builder.

***

## Plan limits

| Feature        | Free | Pro | Business  |
| -------------- | ---- | --- | --------- |
| Saved segments | 3    | 20  | Unlimited |

The limit applies to the total number of saved segments (filter and rule-based combined) per workspace. See [Billing & Plans](/billing-and-plans) for full plan details.

***

## Tips

* **Save filter segments for views you check often** -- e.g. "New this week" or "Spam to review" -- and use rule-based segments when you need to target campaigns.
* **Keep rules simple where you can.** A two- or three-condition rule set is usually enough to define a useful audience, and it's easier to reason about than a long chain.
* **Check the live count before saving.** If a rule-based segment matches 0 or nearly all of your contacts, a condition is probably too narrow or too broad.
* **Re-save legacy segments with rules** if you want to reuse them as campaign audiences -- a search-based segment alone can't be targeted.
