> For the complete documentation index, see [llms.txt](https://docs.cymbal.co/help/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cymbal.co/help/contacts/uploading-contacts.md).

# Uploading Contacts

Before uploading, make sure your CSV file is formatted correctly. (You can still map columns later even if they aren’t formatted exactly.)

#### Example CSV Format

| Full name  | First name | Last name | Email address       | Phone number    | Tags                  | Genres             | Address           | Brithday    |
| ---------- | ---------- | --------- | ------------------- | --------------- | --------------------- | ------------------ | ----------------- | ----------- |
| John Smith | John       | Smith     | <example@email.com> | +1-234-567-8910 | "Top Spenders", "VIP" | "Dance/Electronic" | San Francisco, CA | Jan 1, 1990 |

{% file src="/files/zdjh0jxlLSd666DFsgwc" %}

#### Supported Date Formats

When including dates in your CSV (e.g., birthdays), Cymbal supports the following formats:

* **2006-01-02** - International Standard (ISO 8601)
* **2006/01/02** - International Standard with slashes
* **02 Jan 2006** – Human-readable (day first, abbreviated month)
* **2 Jan 2006** – Human-readable, no leading zero
* **January 2, 2006** – US-style written date
* **Jan 2, 2006** – US-style with abbreviated month
* **01/02/2006** – US short format (MM/DD/YYYY)

#### Steps to Upload Contacts

1. Go to [**Audience**](https://manager.cymbal.co/audience) tab:&#x20;
2. Click **Add contacts** (top right).

<figure><img src="/files/eXv4R83W71tsylEoevE4" alt=""><figcaption></figcaption></figure>

3. Select **Upload CSV**.

<figure><img src="/files/vu8l7TOXkel6iCGMbfCm" alt=""><figcaption></figcaption></figure>

4. Upload your file by either:

* Clicking **Choose a file**, or
* Dragging and dropping your file onto the screen.

<figure><img src="/files/uiZ1h0QBPNRlfOHt9AfO" alt=""><figcaption></figcaption></figure>

5. Choose how to handle **Email** and **Text subscriptions**:

* **Subscribe everyone** – marks all contacts as subscribed, even if they previously opted out.
* **Subscribe only if not opted out** – adds contacts without re-subscribing anyone who unsubscribed.
* **Unsubscribe everyone** – marks all as unsubscribed.
* **Unsubscribe only if not subscribed** – unsubscribes only those not already subscribed.
* **Don’t change subscription** – keeps current subscription status.\
  Click **Continue**.

<figure><img src="/files/9vHz3a7ijBXAaQQRsYQN" alt=""><figcaption></figcaption></figure>

6. Map your CSV fields to **Cymbal attributes**:

* Left column = your CSV column names.
* Middle = assign each to the correct Cymbal field (e.g., email, phone, first name, last name).
* Right column = preview of your CSV data for accuracy.\
  Click **Continue**.

<figure><img src="/files/TIwYK2Be0RgOeanxgwsM" alt=""><figcaption></figcaption></figure>

***

⚡ **Note:** Only contacts with **explicit consent** may receive emails or texts.

***

7. Add **tags** or **lists** to organize contacts:

* **Tags**: Internal only, customers cannot see them. Used for segmentation and tracking.
* **Lists**: Can be public or private. Customers can subscribe/unsubscribe if public. Used for managing preferences.\
  Select tags and/or lists, then click **Continue**.

<figure><img src="/files/Gm0FyXX5GQkx5sHTwjBx" alt=""><figcaption></figcaption></figure>

8. Cymbal will process your CSV (this may take a few minutes). Your **audience size** will update once complete.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.cymbal.co/help/contacts/uploading-contacts.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
