> For the complete documentation index, see [llms.txt](https://docs.ochats.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ochats.io/module-tutorial/upload-contacts/how-to-upload-new-contacts-in-bulk.md).

# How to upload new contacts in bulk?

Import a full list of contacts at once via file upload instead of adding them one by one.

## Written Steps:

1. Go to **Contacts**
2. Select **Upload new contacts**&#x20;

   <figure><img src="https://4079043538-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnOcbMn8jRSRsyx5dQeIE%2Fuploads%2F9Yw9YS5zNw8q6oWMbocU%2Fcontact%201.JPG?alt=media&amp;token=b7d7d99c-2bfa-420d-8dbe-f84c4f67b030" alt=""><figcaption></figcaption></figure>
3. Select **Download Template File**&#x20;

   <figure><img src="https://4079043538-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnOcbMn8jRSRsyx5dQeIE%2Fuploads%2FJCseUW9HmoSFxzcMIcDP%2Fcontact%202.JPG?alt=media&amp;token=e822e9be-27ce-43e4-be80-8be9f1d79078" alt=""><figcaption></figcaption></figure>
4. Open the Excel Template File and fill in all the information based on the example in the Template File. (*Always remember to insert country code in front of phone number*)
5. Save the Excel Template File.&#x20;
6. Select **Import**&#x20;

   <figure><img src="https://4079043538-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnOcbMn8jRSRsyx5dQeIE%2Fuploads%2FzwzS7kV3gSt4gaOneRPn%2Fcontact%203.JPG?alt=media&amp;token=3dac5359-2b20-45fe-9b2c-0e680e8794ca" alt=""><figcaption></figcaption></figure>
7. Upload the Excel Template File
8. Select **Upload**

## **Visual Steps**

<figure><img src="https://4079043538-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnOcbMn8jRSRsyx5dQeIE%2Fuploads%2FNsYVsQg1CqPjAfsrnRFV%2Fupload%20contact%20in%20bulk%20-%201.JPG?alt=media&amp;token=c98e81a1-2c21-4490-a1d4-6e8a535a5899" alt=""><figcaption><p>Step 1 &#x26; 2</p></figcaption></figure>

**Import Template Guide**

Download the template below and fill in one contact per row. The **first row is the header row — keep it and do not reorder the columns**. Columns are read by their position (A, B, C…), not by their header text. Leave a cell blank to skip that field.

**Columns**

| Col   | Field        | Required    | What it is & possible values                                                                                                                                                                    |
| ----- | ------------ | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **A** | `channel_id` | Yes         | Which channel this contact belongs to. Use a single number:**1** — WhatsApp (incl. Cloud API)**2** — Facebook Messenger**3** — Instagram**4** — LINE**5** — Telegram**6** — Email**7** — WeChat |
| **B** | `sender_id`  | No          | **Leave this blank.** It's a technical ID the system fills in automatically when the contact first messages you on that channel.                                                                |
| **C** | `first_name` | Yes         | Contact's first name. Free text.                                                                                                                                                                |
| **D** | `last_name`  | No          | Contact's last name. Free text.                                                                                                                                                                 |
| **E** | `phone`      | Recommended | Full international number, digits only, no `+` or spaces — e.g. `14155550123`. Used to match & update an existing contact.                                                                      |
| **F** | `wa_id`      | No          | WhatsApp ID — usually the same digits as the phone number. Relevant only for WhatsApp (channel 1).                                                                                              |
| **G** | `email`      | Recommended | Valid email address. Used together with phone to match & update an existing contact.                                                                                                            |
| **H** | `tags`       | No          | Comma-separated labels, e.g. `vip,lead,newsletter`.                                                                                                                                             |
| **I** | `address`    | No          | Postal / physical address. Free text.                                                                                                                                                           |
| **J** | `opt_in`     | No          | Messaging consent: **1** = opted in, **0** = not opted in. Defaults to not opted in if blank.                                                                                                   |
| **K** | `image`      | No          | Public URL of the contact's avatar image.                                                                                                                                                       |
| **L** | `merge`      | No          | Internal merge flag. Leave blank unless instructed otherwise.                                                                                                                                   |

<figure><img src="https://4079043538-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnOcbMn8jRSRsyx5dQeIE%2Fuploads%2FZEYhsEe6rsu9WfcRLDfU%2Fbulk%20contact%20upload%20via%20excel.png?alt=media&amp;token=cdb11905-d969-4abb-a216-7aa229a89049" alt=""><figcaption><p>Step 3</p></figcaption></figure>

{% hint style="info" %}
**How matching works:** within your workspace, a row is matched to an existing contact by `email` *or* `phone`. If a match is found the contact is updated (blank cells are ignored, so they won't erase existing data); otherwise a new contact is created. Provide at least a phone number or email so duplicates aren't created.
{% endhint %}

<figure><img src="https://4079043538-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnOcbMn8jRSRsyx5dQeIE%2Fuploads%2F7npR6vr5DkrIoAzdfual%2Fupload%20contact%20in%20bulk%20-%203.JPG?alt=media&amp;token=5a47b3b4-6d27-469e-865d-07fb7d2e3ad8" alt=""><figcaption><p>Step 4</p></figcaption></figure>

<figure><img src="https://4079043538-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnOcbMn8jRSRsyx5dQeIE%2Fuploads%2FcIOiDKJ2A3cDM7gmrstB%2Fupload%20contact%20in%20bulk%20-%204.JPG?alt=media&amp;token=ec2ffd00-179f-4353-b3ec-e2b76432dcd7" alt=""><figcaption><p>Step 5 &#x26; 6</p></figcaption></figure>
