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

# Contacts overview

> What a contact is in Brudcast, the contacts table and its filters, and the actions you can take on many contacts at once.

export const Loop = ({id, src, alt, caption}) => {
  if (!src) {
    return <Placeholder id={id} kind="loop" label="Animation coming soon" description={alt} icon={<PlayIcon />} />;
  }
  return <figure className="brd-media" data-media-id={id}>
      <video className="brd-media-frame" src={src} autoPlay muted loop playsInline aria-label={alt} />
      {caption && <figcaption className="brd-media-caption">{caption}</figcaption>}
    </figure>;
};

export const Screenshot = ({id, src, srcDark, alt, caption}) => {
  if (!src) {
    return <Placeholder id={id} kind="screenshot" label="Screenshot coming soon" description={alt} icon={<ImageIcon />} />;
  }
  return <figure className="brd-media" data-media-id={id}>
      <img className="brd-media-frame block dark:hidden" src={src} alt={alt} />
      <img className="brd-media-frame hidden dark:block" src={srcDark || src} alt={alt} />
      {caption && <figcaption className="brd-media-caption">{caption}</figcaption>}
    </figure>;
};

A contact is one person you message. It holds their name and details, the addresses and devices
you can reach them on, the tags and lists they belong to, and a record of the campaigns they've
received. Everything you send starts from your contacts.

<Screenshot id="ss-contacts-overview-hero" alt="The Contacts page with Total Contacts, Active and Needs Attention counts above a filtered table of contacts" />

## What makes up a contact

| Part               | What it holds                                                                   | Where to read more                                                |
| ------------------ | ------------------------------------------------------------------------------- | ----------------------------------------------------------------- |
| Profile            | First and last name, time zone, language, status, notes                         | [Add and edit contacts](/contacts/add-and-edit-contacts)          |
| Channel identities | Email addresses, phone numbers, push devices and more, each with its own status | [Channel identities](#channel-identities)                         |
| Tags               | Short labels such as `vip`                                                      | [Tags and lists](#tags-and-lists)                                 |
| Custom fields      | Your own data, such as company size                                             | [Custom fields](/contacts/custom-fields)                          |
| List memberships   | The lists the contact is subscribed to                                          | [Tags and lists](#tags-and-lists)                                 |
| Activity           | Campaigns the contact was sent and what they did with them                      | [Add and edit contacts](/contacts/add-and-edit-contacts#activity) |

A contact needs at least one channel identity. In the dashboard, every new contact starts with an
email address.

## Channel identities

A contact is one person. The ways you can reach them are separate records attached to that person,
called **channel identities**. A contact can hold several of each, and every one carries its own
status. That's why the channel, not the contact, decides whether a message goes out: a work address
can bounce while a personal address keeps receiving email.

| Channel      | What the identity holds                                            |
| ------------ | ------------------------------------------------------------------ |
| **Email**    | An email address                                                   |
| **SMS**      | A phone number and its country                                     |
| **WhatsApp** | A phone number, and whether it's a business account                |
| **Telegram** | A phone number and an optional username                            |
| **iMessage** | An Apple ID and an optional phone number                           |
| **Push**     | A device token for one of your push applications, and the platform |

| Channel      | Statuses                                                                  |
| ------------ | ------------------------------------------------------------------------- |
| **Email**    | **Verified**, **Unverified**, **Bounced**, **Complained**, **Suppressed** |
| **SMS**      | **Verified**, **Unverified**, **Invalid**, **Opted Out**                  |
| **WhatsApp** | **Verified**, **Unverified**, **Blocked**                                 |
| **Telegram** | **Active**, **Inactive**, **Blocked**                                     |
| **iMessage** | **Verified**, **Unverified**, **Invalid**                                 |
| **Push**     | **Active**, **Inactive**, **Expired**                                     |

Email and SMS campaigns send only to identities that are **Verified** or **Unverified**. Every other
status is skipped. Most new addresses start **Unverified**, which is a normal, sendable state; an
address becomes **Verified** when the person confirms it, for example by clicking a signup form's
confirmation link.

On each channel, one identity can be marked **Primary**. It's the one shown in the contacts table
and on the contact's sidebar. You can't change the address or number on an existing identity: remove
it and add the new one.

<Note>
  Telegram and iMessage identities can be stored, but campaigns can't send to them. WhatsApp is in
  early access.
</Note>

So one audience of 1,000 contacts can mean 950 email recipients and 400 SMS recipients. A campaign
shows the reach for each channel before you send.

## Contact statuses

| Status     | Label        |
| ---------- | ------------ |
| `active`   | **Active**   |
| `inactive` | **Inactive** |
| `archived` | **Archived** |

New contacts are **Active**. You set the other statuses yourself, by editing a contact or with
**Archive** on a selection. Use them to organize your audience: you can filter the table and build
segments on status.

<Note>
  A contact's status doesn't decide who a campaign reaches. That depends on list membership, the
  status of each channel identity and the suppression list. To stop messaging someone, unsubscribe
  them or [suppress](/contacts/suppressions) their address.
</Note>

## Tags and lists

A **tag** is a short label you attach to a contact, such as `vip` or `lagos-event`. A contact can
carry any number of them. Create tags on **Contacts > Tags**, or type a new name wherever you add a
tag. Names can be up to 100 characters and must be unique in your organization. Renaming a tag
changes it on every contact that carries it, and deleting one removes it from every contact without
touching the contacts themselves. Segment rules match tag names, so update a rule after you rename a
tag. An import only ever adds tags; it never removes one a contact already has.

A **list** is a group of contacts you add by hand, by import or through a signup form. Send a
campaign to a list and everyone subscribed to it is in the audience. A list is something a person
belongs to and can leave; a [segment](/contacts/segments) is a query over the data you hold.

See [Lists](/contacts/lists) for creating one, preferred channels, what the **Subscribers** figure
counts, and the rules on removing contacts and deleting a list.

## The contacts table

Go to **Contacts > All Contacts**. The table shows each contact's **Name**, **Primary Email**,
**Status**, **Last Activity** and **Created** date. Select a name to open the contact.

Above the table are three figures:

| Figure              | What it counts                                                           |
| ------------------- | ------------------------------------------------------------------------ |
| **Total Contacts**  | Every contact. On a plan with a contact limit, the hint shows the limit. |
| **Active**          | Contacts with the **Active** status                                      |
| **Needs Attention** | Contacts that are **Inactive** or **Archived**                           |

When you're close to your plan's contact limit, a banner tells you how many contacts are left. To
make more room, move to a larger plan. See [Subscribe to a plan](/billing/plans-and-subscriptions).

## Filters

| Filter                | What it does                                                                                                                                               |
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Search**            | Matches part of a first, last or display name, or a **whole** email address. Part of an email address won't match, because addresses are stored encrypted. |
| **Status**            | One or more statuses                                                                                                                                       |
| **Tags**              | One or more tags. A contact must carry every tag you pick.                                                                                                 |
| **Channel**           | Contacts that have at least one identity on the channel you pick                                                                                           |
| **Has email address** | Yes, No or Any                                                                                                                                             |
| **Created**           | A date range, or a preset: last 7, 30 or 90 days, or this month                                                                                            |
| **Language**          | Appears once any contact has a language set                                                                                                                |

**Status** and **Tags** show how many contacts match each option.

## Act on several contacts

Tick the checkboxes next to the contacts you want, or the box in the header to select the whole
page. A bar appears with three actions:

<Loop id="lp-contacts-overview-bulk-add-to-list" alt="Selecting three contacts, choosing Add to List and picking the Newsletter list" />

| Action          | What happens                                                                                  |
| --------------- | --------------------------------------------------------------------------------------------- |
| **Delete**      | Permanently removes the contacts and all their channel data. This can't be undone.            |
| **Archive**     | Sets the contacts' status to **Archived**                                                     |
| **Add to List** | Subscribes the contacts to a list you pick. Contacts already subscribed are left as they are. |

Select **Clear selection** to start over.

<Warning>
  Deleting a contact doesn't take their address off your suppression list. A suppressed address
  stays blocked even after the contact is gone.
</Warning>

## Add contacts

* **One at a time:** select **Add Contact**. See [Add and edit contacts](/contacts/add-and-edit-contacts).
* **From a spreadsheet:** select **Import / Export**. See [Import contacts](/contacts/importing).
* **From a form:** people add themselves through a signup form. See [Forms](/forms/overview).
* **From another provider:** see [Run a migration](/migrations/run-a-migration).
* **From your app:** use the API. See [Sync contacts from your app](/developers/guides/sync-contacts-from-your-app).

## Related

<Columns cols={2}>
  <Card title="Import contacts" icon="download" href="/contacts/importing">
    Bring an existing audience in from a CSV.
  </Card>

  <Card title="Segments" icon="filter" href="/contacts/segments">
    Group contacts by rules for a campaign.
  </Card>

  <Card title="Suppression list" icon="shield-off" href="/contacts/suppressions">
    The addresses Brudcast won't send to, and why.
  </Card>
</Columns>
