
# Organizing Lists & Contacts

Lists group your contacts so you can send the right messages to the right people — a "New Leads" list, a "VIP Customers" list, a "Newsletter Subscribers" list, and so on.

This guide covers finding and managing your lists, browsing the contacts inside one, editing a contact, and bulk-managing contacts from the main table.

::: walkthrough list-and-contact-management
:::

---

## Where to Find Your Lists

Both live inside the same **Contacts** area, switched by the two tabs at the top of the page:

- **Contacts tab** — a compact list picker sits above the table, plus an always-visible **+ Create list** button beside it.
- **Lists tab** (click **Lists** next to **Contacts**) — a dedicated page for creating, renaming, deleting, and browsing every list, with a member count and a **"Feeds N campaigns/broadcasts"** indicator per row.

::: master-only
<figure><img src="../.gitbook/assets/v2-contacts-list.png" alt="The v2 Contacts page, showing the list picker, saved-view pills, the quick filter chips including Talked to AI, and the contacts table"><figcaption><p>The list picker sits above the saved-view pills, next to a standing Create list button. The second row of chips is one-click filters, including <strong>Talked to AI</strong>.</p></figcaption></figure>
:::

### The list picker (Contacts tab)

1. In the left sidebar, click **Contacts**.
2. Above the table, click the **list picker** pill. It opens a dropdown of every list, each showing its name and contact count. Pick one to filter the table to just that list, or pick **All Contacts** to clear the filter.
3. Once a list is selected, click its dropdown again for **Edit list**, **Copy list ID**, **Delete list**, and **Delete list & contacts** — the same actions covered below, without leaving the Contacts page.

::: master-only
<figure><img src="../.gitbook/assets/v2-contacts-list-picker.png" alt="The contact list picker dropdown open on the Contacts page, showing every list with its member count"><figcaption><p>The list picker — pick a list to filter the table, or All Contacts to clear the filter.</p></figcaption></figure>
:::

Beside the picker is a standing **+ Create list** button — no need to select anything first.

### The Lists page

Click the **Lists** tab next to **Contacts**. Every list appears as a row with its name, member count, and the **"Feeds N campaigns/broadcasts"** indicator — how many active broadcasts or campaigns automatically message anyone new who joins that list (see [Adding Contacts to a List](#adding-contacts-to-a-list) for why that matters).

::: master-only
<figure><img src="../.gitbook/assets/v2-contacts-lists-tab.png" alt="The Lists tab page, showing summary cards and a table of every list with its member count and feed indicator"><figcaption><p>The Lists tab — every list on your account, with member counts and what each one feeds.</p></figcaption></figure>
:::

Open a list's **row menu** ("⋯") for its actions:

| Option | What it does |
|---|---|
| **Edit list** | Renames the list and lets you change which contacts are in it. |
| **Copy list ID** | Copies the list's internal ID to your clipboard (useful for the API or webhooks). |
| **Delete list** | Deletes the list itself but **keeps every contact** in your account — they're simply removed from this list. |
| **Delete list & contacts** | Deletes the list **and permanently deletes every contact** in it. This cannot be undone. |

The two delete options are marked in red and each opens its own confirmation — deleting a list and deleting a list's contacts are always two separate "are you sure?" steps, so you can't wipe a list's contacts by mistake when you only meant to remove the list.

> **If a list is used by a broadcast**, you can't delete it yet — the dialog names that broadcast. Open the **Broadcasts** page to detach it there, either by deleting the broadcast or pointing it at a different list, then come back and try again.

---

## Creating a New List

From either the list picker (Contacts tab) or the **+ New List** button at the top of the Lists page:

1. Click **+ Create list** / **+ New List**.
2. Under **List type**, leave **Static list** selected — that's a normal list, where you choose the contacts yourself. (**Smart list** fills itself from rules instead — see [Smart Lists](#smart-lists-auto-updating) below.)
3. Type a name (for example, `Summer Sale Contacts`).
4. *(Optional)* Add contacts straight away if the dialog offers it.
5. Click **Create list**.

::: master-only
<figure><img src="../.gitbook/assets/v2-contacts-create-list-dialog.png" alt="The New contact list dialog, showing a Name field and a searchable, checkable list of contacts to include"><figcaption><p>The New contact list dialog — name it, optionally pick contacts, and create.</p></figcaption></figure>
:::

The new list appears in both the picker and on the Lists page immediately.

> **If Create List is missing:** your account doesn't have permission to edit contacts. Ask your account owner to update your team role.

---

## Smart Lists (Auto-Updating)

A **smart list** is a list you don't fill in yourself. You set the rules once — "has the tag `hot-lead` and has been active in the last 90 days" — and the list keeps itself up to date: people who match join it, people who stop matching drop off it, without you touching anything.

A normal (**static**) list is the opposite: whoever you put on it stays on it until you take them off. Both kinds work the same way everywhere else — you can send a broadcast to a smart list, filter the Contacts table by it, and export it, exactly like any other list.

### Creating a Smart List

1. On the **Lists** tab, click **+ New list**.
2. Under **List type**, choose **Smart list**.
3. Give it a name (for example, `Hot leads (active)`).
4. Under **Rules**, pick **Match: All rules** or **Any rule** (see below), then build your first rule: choose what to check, how to compare it, and the value.
5. Click **+ Add rule** for each extra condition. A smart list can use up to 20.
6. Watch the line under the rules — it counts the contacts that match right now ("≈ 3 contacts match") and names a few of them, so you can tell before you save whether the rules catch what you meant.
7. Click **Create list**.

::: master-only
<figure><img src="../.gitbook/assets/v2-contacts-smart-list-dialog.png" alt="The New smart list dialog, with List type set to Smart list, a name, a Match All rules toggle, a Tags has any of hot-lead rule, a Last activity in the last 90 days rule, and a live count of matching contacts"><figcaption><p>Building a smart list — the count under the rules updates as you type, so you can see who the rules catch before you create the list.</p></figcaption></figure>
:::

The list is filled in the moment you create it, so it opens with its members already on it.

### Match All Rules vs. Any Rule

- **All rules** — a contact is on the list only when *every* rule is true. Use this to narrow down ("tagged `hot-lead` **and** active in the last 90 days").
- **Any rule** — a contact is on the list when *at least one* rule is true. Use this to gather up ("tagged `newsletter` **or** tagged `webinar`").

### What You Can Build Rules On

| Group | What you can check |
|---|---|
| **Who they are** | **Tags** (has any of / has all of / has none of), **Lists** (is on / is not on — normal lists only), **Channel** (WhatsApp, SMS, Instagram, and so on), **Status** |
| **What they did** | **Added on**, **Last activity**, **Last message received**, **Last message sent**, **First AI conversation**, **Last AI conversation** — each one as "in the last N hours/days", "not in the last N hours/days" (which also catches people who never did it at all), before or after a specific date — with an optional time of day, and a **Now** button that fills in the current moment (handy for catching only the contacts added from now on, for example right before a big import), or simply filled in / empty. Also **Talked to the AI**, set to On or Off |
| **Settings** | **AI replies** on or off, **Do not disturb**, **Private contact**, **Has ever replied** |
| **Their deals** | **Deal stage** — has a [deal](../deals/sales-pipeline.md) in any (or none) of the pipeline stages you pick, or simply **has any deal** / **has no deals** at all |
| **Details** | **Email**, **Phone number**, **First name**, **Last name** — filled in, empty, contains or does not contain some text; **Assigned campaign** and **Assigned teammate**; and any of your own **Custom fields** by name |

Upper and lower case never matter in a text comparison, and a rule that asks for something "not in the last 30 days" also matches contacts it never happened to.

#### Contacts Your AI Actually Handled

**Talked to the AI** is yes for every contact your AI has sent at least one message to, and no for everyone else — including people only your team ever replied to. It's set the first time the AI writes to someone and never goes away afterwards, even if you later switch that contact's AI replies off or move them to another campaign.

If you need the contacts your AI handled **in a particular period** — the usual reason agencies want this — use **Last AI conversation** with "in the last 30 days" instead. That's a rolling window that always reflects the last month.

Two rules people often mix up with it:

- **AI replies** (under Settings) is a switch: it says the AI is *allowed* to answer this contact, not that it ever has.
- **Has ever replied** is about the *contact* writing back — to anyone, your team included.

You can also filter the Contacts table the same way without creating a list: open **Filter** and set **Talked to the AI** to On, or click the **Talked to AI** quick chip above the table. The same filter is on the [Chats page](../chats/chat-interface.md#chat-filters) as a **Talked to AI** chip, for when you want the conversations rather than the contact records.

::: master-only
<figure><img src="../.gitbook/assets/v2-contacts-filter-ai.png" alt="The Contacts Filter panel open with the Talked to the AI switch set to On, the Filter button showing a count of 1, and the page header reading 5 of 18 contacts"><figcaption><p>Filter, then <strong>Talked to the AI</strong> set to On. The header counts what matched, so you can read the number straight off the page.</p></figcaption></figure>
:::

::: master-only
<figure><img src="../.gitbook/assets/v2-contacts-smart-list-ai-rule.png" alt="The New smart list dialog with one rule reading Talked to the AI is On, and a live preview reading approximately 5 contacts match with three example names"><figcaption><p>The same question as a smart list rule, so the list keeps itself up to date instead of being a one-off filter.</p></figcaption></figure>
:::

### Spotting a Smart List

On the Lists page a smart list carries a **Smart** badge, a plain-English summary of its rules underneath the name, and when it was last brought up to date ("Updated 4 minutes ago"). Its member count is the live count.

::: master-only
<figure><img src="../.gitbook/assets/v2-contacts-smart-list-row.png" alt="The Lists page with a smart list row showing a Smart badge, the rules summary Tags has any of hot-lead and Last activity in the last 90 days, an Updated this minute line, and a member count of 3"><figcaption><p>A smart list on the Lists page — the badge, the rules in plain English, and when it last updated.</p></figcaption></figure>
:::

### When a Smart List Updates

- **Straight away when a contact changes.** Tag someone, change their status, fill in a custom field — if that makes them match (or stop matching), the list catches up within a few seconds. Dragging a deal to another pipeline stage counts too: a **Deal stage** rule reacts the moment the board changes.
- **Every 15 minutes for time-based rules.** Rules like "no activity in the last 30 days" come true as time passes, with nobody touching the contact, so every smart list is re-checked on a quarter-hourly cycle as well.
- **On demand.** Open the list's **⋯** menu and click **Refresh now** to re-run the rules immediately, and the row's member count and "Updated…" line catch up straight away.

### You Can't Add or Remove People by Hand

That's the point of a smart list: its membership is worked out from the rules, so anything you did by hand would be undone at the next check. In practice:

- The expanded list has no **Add contacts** button and no **Remove** on a member — it says *"Members are computed from this list's rules"* instead.
- Smart lists don't appear in the **List** bulk action on the Contacts page, in a contact's own list picker, or as an import target.

To change who's on the list, open its **⋯** menu and click **Edit rules**.

### Smart Lists and Broadcasts

A broadcast can target a smart list like any other list, which is where these are at their most useful: point one at "tagged `hot-lead`, no reply in 7 days" and the audience maintains itself.

> **Heads up: this can send messages on its own.** If a live broadcast or campaign on that list has **Send to new list members** switched on, then every contact who newly matches your rules gets its opening message automatically — that's the whole point of pairing them, but it does mean people can be messaged without you clicking anything, and each message uses credits. Check what a list feeds (the **Feeds** column on the Lists page) before you widen its rules.

---

## Browsing and Searching List Members

On the Lists page, click a list's row to expand it and see everyone in it, with a search box to find someone by name, phone, or email. From there you can **remove an individual contact from the list** — this takes them off the list only, it doesn't delete the contact or touch their other lists.

On a [smart list](#smart-lists-auto-updating) the same panel is read-only: you can browse and search its members, but there's no Remove, because its membership comes from its rules.

---

## Adding Contacts to a List

Add contacts to a list from the expanded list view, from a contact's own quick-view panel or full record, or with the **Add to List** bulk action below. [Smart lists](#smart-lists-auto-updating) aren't offered in any of those places — they fill themselves from their rules.

> **Heads up: adding someone to a list can send them a message.** If a live broadcast on that list has **Send to new list members** switched on, adding a contact sends them its opening message straight away, uses credits, and hands their replies to that broadcast's agent.
>
> You will see a warning before it happens. Whichever way you add someone — the bulk **Add to List** action, a list's own **Add members** screen, or the list toggles on a contact — the screen tells you which broadcast will send and asks you to confirm. Removing someone from a list never sends anything, so that stays instant.
>
> If **more than one** live broadcast on the same list has the toggle on, the new contact receives **one opening message from each of them**, charged separately. The warning says how many. You can stop that from the broadcast's Audience step — see [Broadcasts](../broadcasts/broadcasts.md).

---

## Editing a Contact

1. In the Contacts table, click anywhere on the contact's **row** to open the [quick-view panel](creating-contacts.md).
2. Click **Edit**.
3. Update their name, phone number, email, channel, tags, or Notes.
4. Click **Save**.

> **Row vs. name click.** Clicking a row opens the quick-view panel. Clicking the contact's **name** opens a chat with them instead — see [Adding a New Contact](creating-contacts.md).

List membership is edited from the quick-view panel's **Lists** section, not from the edit form itself — click the **+** beside **Lists** in the panel and tick or untick lists.

---

## Bulk Actions (Selecting Many Contacts at Once)

1. Tick the checkbox at the start of a contact's row. Tick as many as you want, or use the header checkbox to select every contact currently shown. With the whole page ticked, a blue **strip appears just above the table rows** offering **Select all N contacts matching your filters** — one click extends the selection to every match, not just the visible page, so an action can cover thousands of contacts at once. That strip only chooses *who* is selected; the buttons that *do* something live in the action bar below.
2. A **floating action bar appears at the bottom of the screen** with:
   - **Bot on / Bot off** — toggle the AI bot for every selected contact.
   - **Private / Make public** — toggle privacy.
   - **DND / Disable DND** — toggle Do Not Disturb.
   - **Mark as spam / Unmark as spam**.
   - **Archive / Unarchive** — close every selected contact's chat and move it to the chat archive, or bring them all back. It's the same archive as the Chats page — see [Closing a Conversation](../chats/chat-interface.md#closing-a-conversation-when-youre-done).
   - **Assign campaign** — route the selection to a campaign. **Classic campaign accounts only** — see the note below.
   - **Add to list**.
   - **Tag** — apply a tag to every selected contact.
   - **Auto-tag** — let each contact's AI agent read the whole conversation and apply its own tag rules, or pick one agent's rules for everyone selected. Same price as live tagging: 1 credit per tag applied, nothing for contacts that get no new tags. Up to 500 contacts per run. See [Tagging a conversation on demand](../get-started/creating-tags.md#tagging-a-conversation-on-demand).
   - **Automation** — add the selection to an automation. Only appears if your account has Automations.
   - **Export** — download the selection as a file.
   - **Delete** — permanently deletes every selected contact.
3. Click the action you want. Destructive actions (Delete, Mark as spam) ask for confirmation first.

> **No "Assign campaign" button? That's expected on an AI Agents account.** If your menu shows **AI Agents** and no **Campaigns** entry, assigning contacts to a campaign no longer applies. Put the contacts on a **list** instead, then either send to that list with a [Broadcast](../broadcasts/broadcasts.md), or let an [Entry Point](../ai-agents/entry-points.md) hand new conversations to the right Agent. Full mapping of the old way to the new one: [Moving from Campaigns to Broadcasts & Agents](../moving-from-campaigns.md).

Click the small **×** at the end of the bar, or untick the checkboxes, to clear your selection.

> **Not the same as the Chats page.** On **Contacts**, the bulk action bar floats at the bottom of the screen. On the **Chats** page the equivalent bar sits *above the chat list*, inside the list column, with its own master checkbox — see [Bulk Inbox Actions](../chats/chat-interface.md#bulk-inbox-actions). Both pages show the same kind of "select all N" strip above their rows when the visible page is fully ticked.

> **Tip: splitting contacts into equal batches.** There's no automatic "split into lists of 50" button, but the table itself gets you there fast: it shows exactly **50 contacts per page**, and the header checkbox selects the whole page. So tick the header checkbox, click **Add to list**, hit **+ New list** in that popup and name it (for example "Batch 1") — the moment you create the list, your selected contacts are added to it automatically. Then move to the next page and repeat. A few hundred contacts are split into equal lists of 50 in a couple of minutes — no adding contacts one by one. If you only need batches for *sending* (not organizing), you can skip the lists entirely: a [Broadcast](../broadcasts/broadcasts.md) in **Drip mode** works through one big list in batches for you.

---

## Next Steps

- [Adding a New Contact](creating-contacts.md) — add contacts one at a time, plus a full tour of the Contacts screen.
- [Importing Contacts from a File](importing-contacts.md) — upload a spreadsheet of contacts.
- [Exporting Your Contacts](exporting-contacts.md) — download your contacts to a file.
