Home Contacts | Records, import and export

Contacts | Records, import and export

How to create, import, export and block contacts.
Ian Kraskoff
By Ian Kraskoff
β€’ 3 articles

Basic Guide to Contacts Features

If you want to watch the tutorial via video, go here: https://youtu.be/t4WZ2vR7XfU In this article, you'll understand the basic features of the contacts tab. The contacts tab is located on the left. Clicking on it displays a complete list of all your contacts. To find a specific contact, use the search function. If you want to add a new contact manually, just click on new contact. To filter existing contacts, click on the filter option. Here, you have the ability to filter by any attribute, including custom ones created by your administrator. To open a contact, just click on it. You have the option to make specific notes about a contact and view all custom attributes of the contact. Remember that custom attributes are created by your administrator. Additionally, you can add tags to contacts, not just to conversations. You can also view a contact's conversation history. To edit a contact, click on edit contact. Here, you can add and edit all information, standard and custom. If there are duplicate contacts, you have the option to merge them to keep your contact list organized. Additionally, you can send a proactive WhatsApp message. To do this, select the desired outbound box, choose the template, and send the message. Important: to avoid losing your number, it is important to follow Meta's guidelines regarding blasts and only send templates. If the message contains variables, you can add them by clicking on the field and adding double braces ({{) ), which will display a list of possible variables. Remember to close the braces at the end (}}). If you want to replace the variable with a fixed message, just type the text without using braces. When clicking send message, the message will be sent. Now, you are familiar with the basic functionalities of the contacts tab.

Last updated on Sep 02, 2026

Bulk Contact Import via CSV

When to use - You need to upload a new contact database to Cloud Chat - You want to update custom attributes of many contacts at once - You need to add tags or block contacts in bulk Prerequisites - Be logged in as an administrator or supervisor - Have the CSV file encoded in UTF-8 with at least one identifier (email, phone number, or identifier) per contact - Keep the file size at a maximum of 10 MB :::info It's also possible to perform this import via API. Details at: How to bulk import contacts via API. ::: Access the import template Step 1 β€” Download the template Importing contacts is simple. First, download a CSV template. 1. Go to the Contacts section in the sidebar menu 2. Click on Import 3. Download the CSV template (comes with examples) Example of the CSV: Each screen has its own template Reusing a CSV for a different purpose is the most common cause of import or trigger failures. Always download the template from the current screen: | Purpose | Template Columns | | --- | --- | | Import contacts (this screen) | name, email, phone_number, company_name, city, tags | | Campaign audience by email | email, name | | Campaign audience by phone | phone_number, name | | Import tags | name, description, color | Important CSV details These are standard columns β€” you can add more columns (tags, custom fields). Columns that Cloud Chat does not recognize will no longer automatically become custom fields: you decide what to do with each in the Review columns step below. To create custom fields beforehand, see: How to create custom contact and conversation fields. :::warning The fields that determine a unique contact are phone, email, and identifier (identifier). At least one must always be present. ::: :::info Columns that should not be changed should be deleted, except for key fields (email, phone, or identifier). ::: Behavior of blank fields | Field | Behavior if blank | | --- | --- | | Name and standard fields | Existing value is deleted | | Custom fields | Blank fields are ignored β€” existing value is preserved | | Tags | They do not substitute β€” they add (see below) | | Email/phone/identifier (when not a key) | Existing value is preserved | Tags β€” 3 formats - tags (recommended) β€” comma-separated list. Adds to the existing set (does not remove present tags) - tags_add β€” equivalent to tags. Adds without removing - tags_remove β€” comma-separated list. Removes specific tags :::info If the same contact appears in tags_add and tags_remove in the same import, removal wins (order: first add, then remove). For mass removal through another method, use the Tag removal API. ::: Brazilian phone numbers :::warning Always include the country code (+55) and the 9 at the start of the cell. - Without +55 β†’ duplicate - Without the 9 β†’ duplicate + impact on WhatsApp campaigns Correct example: +5511960832431 (+55 is country code; the 9 was added by Anatel a few years ago). ::: Automatic normalization :::info Technical note: the system has automatic normalization β€” if you send +551160832431 (without the 9), the system adds it automatically. But we strongly recommend including the 9 in the CSV to avoid ambiguity. ::: Variant lookup (BR mobile-9) When identifying existing contacts, the system searches for variants of the sent phone. If the CSV sends +5511933334444 and the contact exists as +551133334444 (without the 9), the match occurs and the contact is updated instead of duplicated. Non-printable characters Null-byte characters (\x00) in any cell are silently removed during import. Blocking contacts via CSV The blocked column is accepted and blocks the contact at the moment of import. | Operation | Accepted values (case-insensitive) | | --- | --- | | Block | true, 1, yes, t, on | | Unblock (if already blocked) | false, 0, no, f, off | | Empty | New contacts: unblocked by default. Existing contacts: current state preserved | :::warning Change from 04/30/2026: accounts that sent CSVs with blocked before this date had this column silently ignored. Now, the value is respected. To retroactively apply historical values, re-import the CSV. ::: Deleting data via CSV To delete a field from an existing contact, use the special value __DELETE__ in the cell: - In phone_number, email, identifier, name β†’ the field is cleared (NULL) - In custom attribute columns β†’ the key is removed from the contact's JSON - Does not work in blocked β€” to unblock, use false (or 0/no/f/off) :::warning If you explicitly use the string "__DELETE__" as a legitimate value in any field, contact support beforehand to avoid data loss. ::: Attention: dual-write in company, company_name, and city :::warning Values in company, company_name, and city columns are simultaneously written into additional_attributes and custom_attributes of the contact. This ensures dashboards, filters, and segmentation find the value. Change from 04/30/2026: Previously, only additional_attributes was populated, which caused inconsistency in filters based on custom attributes. ::: What happens in practice When importing: 1. System checks if the contact already exists β€” by email, identifier, and phone, in that priority order 2. If not found β†’ creates a new contact 3. If found β†’ updates information according to blank field rules :::error ID ambiguity (AMBIGUOUS_MATCH) β€” if the CSV contains a contact with two or more key fields (email, phone, identifier) pointing to different existing contacts, the row is rejected with error AMBIGUOUS_MATCH. Example: if email [email protected] belongs to contact A, but phone +5511960832431 belongs to contact B, the system cannot know which to update and rejects the row. Change from 04/30/2026: Previously, the system used the first match found and silently overwritten data. Now, the row is explicitly rejected. Fix manually before re-importing. ::: Duplicate rows in CSV :::warning If the CSV has two or more rows with the same email, phone, or identifier, only the first is processed β€” the others are rejected as duplicates. This applies even if other details differ. Tip: review your CSV before importing. ::: Adding more information (tags and custom fields) You can add any information by creating a new column with the key as the header. Add tags Create a column tags and fill each cell with the desired tag. :::warning The tag must already exist. If it does not, your import will fail. ::: Create tags in Settings β†’ Tags or directly in the contacts tab: Add custom attributes Use the key of the custom attribute from Settings β†’ Custom Attributes as the column header in the CSV. Upload the import to Cloud Chat Save the spreadsheet as CSV (UTF-8), go back to the import section, select the file, and click Import. Review columns If the file has at least one unrecognized column, a review step appears before importing. If all columns are recognized, import proceeds directly. At this step, you decide, column by column: | Action | What happens | | --- | --- | | Ignore | The column is not imported. Nothing is created from it. | | Create a new custom field | Creates a new contact custom field (text type) with the column name. If one with the same key exists, it is reused. | | Map to an existing column | Sends the content to a standard field (name, email, phone_number, company_name, city, tags) or a custom field already in the account. | Suggestions are pre-filled: unknown columns are set to Create new custom field; deprecated columns are set to Ignore, with a warning on screen. Two columns cannot be mapped to the same destination. :::warning Deprecated fields: id, ip_address, and identifier appear marked as deprecated and are suggested to be ignored. Do not use your old tool's id column as a contact identifier β€” identifier remains accepted as a key, but is no longer recommended for new bases. ::: :::info Before this step, any unrecognized columns automatically became custom fields without warning. That's how fields like id or ip_address ended up in old account contact records β€” you can delete them in Settings β†’ Custom Attributes. ::: :::success Once the system finishes (it can take up to 30 minutes), you'll receive an email with the count of successes and failures. ::: :::error IMPORTANT: ensure your CSV is in UTF-8 encoding. Other encodings may produce invalid characters or prevent tag matching. ::: Notes - For volume uploads via API: How to bulk import contacts via API - For importing via HubSpot: How to import contacts via HubSpot - To create custom attributes before using in CSV: How to create custom contact and conversation fields - To remove tags in bulk via API: How to bulk delete tags from contacts

Last updated on Sep 22, 2026