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

# Lists and segments: group your contacts for campaigns and automations

> Create lists and segments in Contacts → Lists & Segments: upload a CSV, build a segment with filters, sync Shopify, Klaviyo or HubSpot segments, see segment size, and fix a segment with 0 contacts.

**Contacts → Lists & Segments** ([open it](https://ai.textyess.com/contact-groups)) holds the groups of contacts that you send WhatsApp campaigns, email campaigns, and automations to. The page has three tabs: **All**, **Segments**, and **Lists**. Each row shows the name, the type (**Segment** or **List**), the number of contacts, and the source. Click a row to open it. Click **Create** to make a new list or segment. Click **Manage blacklist** to see the blocked phone numbers.

## The difference between a list and a segment

In **Contacts → Lists & Segments**, there are two kinds of contact groups:

* A **list** is a fixed group. It changes only when you add contacts, remove contacts, or import more. A list from a file, or from a Klaviyo, HubSpot, ActiveCampaign, or Brevo list, is a copy taken one time.
* A **segment** follows rules, for example "spent more than €100 in the last 90 days". Contacts who match the rules come in. Contacts who stop matching go out.

In the **Create** panel, a list is a **Fixed list** and a segment is a **Smart list**. A Smart list uses your own rules (**TextYess Segment**) or a segment that TextYess syncs from Shopify, Klaviyo, or HubSpot.

## Upload a list of contacts from a CSV or Excel file

1. In **Contacts → Lists & Segments**, click **Create**, then **Fixed list**, then **CSV / Excel**.
2. Type a **New list name**.
3. Drop a .csv, .xlsx, or .xls file of up to 50 MB, and click **Continue**.
4. On **Map your columns**, check the field for each column. Map at least one column to phone or email.
5. If you mapped an email column, tick **I have consent to email these contacts.** Then click **Continue**.
6. On **Review before import**, check the numbers and click the import button, for example **Import 250 contacts**.

The new list shows an **Importing** badge until all contacts are in. TextYess never imports blacklisted or blocked phone numbers. For the file format, the phone format, and skipped rows, read [Contacts](/contacts/contacts).

## Create an empty list and add contacts to a list

To start a list with no contacts:

1. In **Contacts → Lists & Segments**, click **Create** → **Fixed list** → **Start empty**.
2. Type a **List name** and click **Create list**.

To add contacts to a list, open the list and click **Add contacts**:

* **Upload CSV / Excel** adds the contacts in a file. Contacts that are already in the list are not added two times.
* **Add individual contact** finds a contact, or makes a new one with **Create a new contact instead**. If you type an email for a new contact, tick the consent box.

You can also select contacts in **Contacts → All Contacts** and click **Add to list**. To take a contact out, open the list, select the contact, and click **Remove from list**. The contact stays in your contacts.

## Import a list from Klaviyo, HubSpot, ActiveCampaign, or Brevo

1. In **Contacts → Lists & Segments**, click **Create** → **Fixed list**.
2. Choose **Klaviyo List**, **Hubspot Static List**, **Active Campaign**, or **Brevo List**. If the tool is not connected, click the **Connect** button that shows and connect it first.
3. Pick the list, check the **List name**, and click **Create**.

TextYess copies the members one time. Changes that you make later in the other tool do not reach this list. To keep a group in sync with Klaviyo or HubSpot, create a **Smart list** from a Klaviyo or HubSpot segment. Read [Integrations](/integrations) to connect a tool.

## Create a segment with the segment builder

1. In **Contacts → Lists & Segments**, click **Create**, then **Smart list**.
2. Keep **Source** on **TextYess Segment**, type a **Segment name**, and click **Continue**.
3. In the segment builder, click **choose a field**. Pick what to filter on, or type a word such as "spent", "order", "email", or "city".
4. Set the comparison and the value.
5. To add a rule, click **Condition**. To add a group of rules, click **Group**.
6. Look at the live count in **Who comes in**.
7. Click **Create segment**.

TextYess then builds the segment. The segment shows its contact count when the build is complete. Each segment name must be different. A name cannot contain angle brackets.

## Combine segment conditions with AND and OR

In the segment builder, the first line says **Include contacts that match**, followed by **all conditions** or **at least one condition**.

* Choose **all conditions** (AND) when a contact must match every rule.
* Choose **at least one condition** (OR) when one rule is enough.

One group has one connector for all of its rows. To mix AND and OR, click **Group** and set the group to **all of these** or **at least one of these**. You can nest groups to three levels. Example: include contacts that match all conditions: **Can receive WhatsApp marketing** is true, and at least one of these: **City** is Milan, or **City** is Rome. Click **Clear all** to start again.

## Segment builder filters for orders, emails, and messages

In the segment builder, **choose a field** puts the filters into groups:

* **How much they bought**: **Number of orders**, **Amount spent**, **Bought a product**, **Fulfilled orders**, **Discounted orders**. You can add filters on product title, product ID, SKU, vendor, collection, product tag, product type, discount code, or order tag. You can set a time window, for example **in the last** 90 days.
* **How they respond to your emails**: **Opened email**, **Clicked email**, **Received email**. This group shows when your account has the email channel.
* **How they respond to messages**: **Conversation Tags**, **Conversation Status**, **Blacklisted**, **Manually blocked**, **Last Outbound Message**, **WhatsApp Orders**, **Has placed at least one order**, **Has any conversation history**, **Has received a campaign message**, **Has received any outbound message**.

## Segment builder filters for contact details, consent, and lists

These groups are also in **choose a field**:

* **Who they are**: **First Name**, **Last Name**, **Email**, **Phone**, **WhatsApp number**, **Contact Tags**, **Language**, **Birthday**, **Gender**.
* **Where they live**: **Country**, **Region / State**, **City**, **Postal code**.
* **Marketing consent**: **Can receive WhatsApp marketing**, **Can receive email marketing**, **Can receive SMS marketing**.
* **Their history with you**: **Created At**, **Source**, **Lifecycle stage**.
* **Your own fields**: your custom contact attributes.
* **Which lists and segments they are in**: **Lists**, **Segments**.
* **Where they came from**: **Came from an ad**, **Came from a specific ad**.
* **From your store**: **Shopify customer tags** (Shopify stores only).

## Find contacts who did not open your emails

In the segment builder, pick **Opened email** in the group **How they respond to your emails**. Choose which emails count: **Any email**, **Any campaign**, **Any flow**, or one email. Then set the comparison and a time window. Example: **Opened email** · **Any email** · **never** · **in the last** 90 days.

The window is a time period, not a number of emails. A filter for "did not open the last 5 emails" does not exist. To get close, use two conditions with AND:

* **Received email** · at least 5 times · in the last 90 days.
* **Opened email** · never · in the last 90 days.

Contacts that you never emailed also count as "not opened". The builder warns you and shows a **Leave them out** button. Email conditions count only the emails that you send with TextYess. Opens include the automatic opens from Apple Mail.

## See how many contacts a segment has before you send

While you build a segment, the **Who comes in** card shows how many contacts match, out of all your contacts. It updates a moment after you stop typing. Counts with order or email conditions take longer.

* **Who you can reach**, when it shows, splits the matches into **WhatsApp only**, **WhatsApp and email**, **Email only**, and **Not reachable**.
* **A few names, to check** shows some of the contacts.
* Below 50 contacts, the card tells you that the segment is too small for a campaign.

For a saved list or segment, the **CONTACTS** column in **Contacts → Lists & Segments** shows the size. In a WhatsApp campaign, the **Recipients** section shows the unique recipients. Each contact counts one time, and contacts without a WhatsApp number do not count. For a very large account, the campaign shows an estimate, and TextYess finds the exact audience when the campaign sends.

## Why a segment shows 0 contacts

Open the segment in **Contacts → Lists & Segments** and look for the cause:

* **It is still building.** A new segment shows 0 in the table until its first build is complete. On the segment page, the badge says **Importing** and **Contacts** shows "—". Wait, then reload the page.
* **The build failed.** The badge says **Failed**, and **Last refresh failed:** shows the reason. Click **Refresh** to try again.
* **No contact matches the rules.** Click **Edit** on the **Definition** card and check each condition. A **never** condition, a short time window, or two AND conditions that cannot both be true can give 0.
* **The buyers are not your contacts.** Buyers who match order conditions but have no contact record do not count. The builder shows them as "more buyers match the rules, but you have no contact record for them".

## Why a segment is smaller in TextYess than in Shopify

A Shopify segment that you sync to TextYess can have fewer contacts than in Shopify. A WhatsApp campaign to it can reach fewer again:

* TextYess does not import Shopify customers that have no phone number and no email.
* TextYess skips customers whose phone number is blacklisted or blocked.
* Customers with only an email come in as email-only contacts. They count in the list, but a WhatsApp campaign sends only to contacts with a phone number.
* The list is a synced copy. If the segment changed in Shopify after the last sync, click **Refresh** on the list.

A segment that you build in TextYess with order conditions can also be smaller: buyers with no contact record in TextYess do not count.

## Sync a Shopify customer segment to TextYess

You can use a customer segment that you made in Shopify. This option shows for Shopify stores.

1. Create the segment in your Shopify admin.
2. In TextYess, go to **Contacts → Lists & Segments** and click **Create** → **Smart list**.
3. Set **Source** to **Shopify Segment** and pick the segment. The **Segment name** fills in.
4. Click **Create**.

TextYess imports the members. Then it syncs the list again on a schedule while a campaign uses it, and again just before each campaign send. Click **Refresh** on the list to sync it now. The rules stay in Shopify: open the list and click **Open in Shopify** to change them.

## Sync a Klaviyo or HubSpot segment to TextYess

1. In **Contacts → Lists & Segments**, click **Create** → **Smart list**.
2. Set **Source** to **Klaviyo Segment** or **HubSpot Segment**. If the tool is not connected, click **Connect Klaviyo** or **Connect HubSpot** first.
3. Pick the segment and click **Create**.

TextYess syncs the members again on a schedule while a campaign uses the list, and again just before each campaign send. Click **Refresh** to sync it now. If someone deletes the segment in Klaviyo or HubSpot, the list shows **Deleted at source** and stops updating. Take it out of your campaigns, or click **Re-check** if you made the segment again.

## How a segment stays up to date

A segment that you build in TextYess updates when your data changes. When a contact changes, for example with a new tag, a new conversation, or a new order, TextYess rebuilds the segments that use that data. This takes a few minutes. Order conditions can need about 20 minutes to show a new order.

Time alone does not update a segment. If a rule has a time window, such as "in the last 30 days", the count can drift. After 24 hours, the **Last refreshed** tile says "out of date". TextYess rebuilds such a segment every day only when a live automation starts from it.

Before a WhatsApp campaign or a scheduled email campaign sends, TextYess rebuilds the segment, unless it was rebuilt in the last 10 minutes. To update it now, open the segment and click **Refresh**. You can refresh the same segment one time every 5 minutes.

## Edit the conditions of a segment

1. Open the segment in **Contacts → Lists & Segments**.
2. On the **Definition** card, click **Edit**.
3. Change the conditions and click **Save conditions**.

TextYess rebuilds the segment with the new rules. Contacts who now match come in, and contacts who stop matching go out. You cannot save while a condition is not complete. Some segments cannot be edited, for example a segment saved before TextYess kept a copy of its rules. The editor then shows **These conditions cannot be edited here**. Build a new segment with the rules you want and use it in your campaigns and automations. To change only the name, use **Rename**.

## The blacklist page: see all blocked phone numbers

In **Contacts → Lists & Segments**, click **Manage blacklist** to open **Blacklisted contacts** ([open it](https://ai.textyess.com/contact-groups/blacklist)). It lists every phone number that is blacklisted or blocked:

* numbers that sent STOP or an unsubscribe message,
* numbers whose owner turned off your marketing messages inside WhatsApp,
* numbers that you blacklisted,
* numbers that you blocked in the Inbox.

These numbers get no WhatsApp campaigns and no automation messages, and imports skip them. Search by name or phone. Click **Export CSV** to download the phone numbers and names. To unblock a number, click the remove icon (**Remove from blacklist**) and confirm. Do this only when the customer asks to get your messages again: TextYess records it as a new WhatsApp opt-in.

## Use a list or segment in a WhatsApp or email campaign

In a WhatsApp campaign, go to the **Recipients** section:

* Under **Include**, pick the lists or segments to send to.
* Under **Exclude**, pick the lists or segments to leave out.

A contact in more than one list gets the message one time. TextYess sends only to contacts with a phone number and leaves out blacklisted and blocked numbers. In an email campaign, use **Include segments** and **Exclude segments** in the same way. Read [WhatsApp campaigns](/campaigns/whatsapp-campaigns) and [Email campaigns](/email/email-campaigns).

## Use a list or segment in an automation

In **Automations**, open the trigger list and choose one of these triggers from the **Lists & Segments** group:

* **Contact Entered List** or **Contact Exited List**: the flow starts when a contact is added to, or removed from, a list that you pick. Only lists that you made in TextYess or from a CSV file can start a flow.
* **Contact Entered Segment** or **Contact Exited Segment**: the flow starts when a contact enters or leaves a segment that you pick. The segment must have finished its first build.

Only contacts who enter or leave after you publish the flow start it. Contacts who are already in the segment do not. To add a contact to a list inside a flow, or to remove one, use the **Update List** step. Read [Triggers](/flows/triggers).

## Rename, export, or delete a list or segment

In **Contacts → Lists & Segments**, open the actions menu at the end of a row:

* **Export CSV** downloads the contacts in the list or segment.
* **Rename** changes the name.
* **Delete** removes the list or segment. You cannot undo a delete. The contacts stay in **All Contacts**.

TextYess does not stop you when you delete a list or segment that a campaign or an automation uses. Check your scheduled campaigns and live automations first. A segment that is a condition in another segment cannot be deleted. Take it out of the other segment first.

## Archived lists in Lists & Segments

TextYess archives a list that it imported or synced from Shopify, Klaviyo, HubSpot, ActiveCampaign, or Brevo when all of these are true:

* the list is more than 90 days old,
* it was never refreshed,
* no campaign or live automation uses it.

An archived list has an **Archived** badge and leaves the table. TextYess never archives segments.

To see archived lists, click **Show archived** in **Contacts → Lists & Segments**. To use one again, open the actions menu on its row and click **Restore**.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.