Importing contacts from a CSV
Import a contact list into your workspace from a spreadsheet.
Written By EmuChat
Last updated About 16 hours ago
Import a contact list into your workspace from a spreadsheet. emu.chat accepts CSV and XLSX files up to 10 MB. You upload the file, map its columns to contact fields, choose where the contacts should go, and start the import. Matching contacts are updated rather than duplicated.
Every contact field is optional, so you only map the columns you want to import. If you are building your file from scratch, use the Template button on the upload step to download a CSV with the headers emu.chat expects (First Name, Last Name, Phone, Email, Company).
Upload and map your file
- Go to Import Contacts and choose your CSV or XLSX file.
- Match each column in your file to a contact field. If your file has a header row, emu.chat auto-maps common columns (phone, first name, last name, email, company) for you; review the mapping and fix anything that is wrong. Custom fields only auto-map when a header exactly matches the field name, so set those yourself.
If your file has no header row, untick First row contains column headers, and map each column manually.
Choose a destination
Decide where the imported contacts should go: leave them in the workspace without a list (the default), add them to a new list, or add them to an existing list. Turn on the Personal contacts toggle if the imported contacts should be visible only to you rather than shared with the workspace.
Personal and shared contacts are matched separately: a personal import only matches your own contacts, and a shared import only matches the workspace's shared contacts.
How existing contacts are matched
emu.chat avoids creating duplicates within the same scope. Matching happens only inside the scope you are importing into: a shared import matches the workspace's shared contacts, and a personal import matches your own personal contacts. The same person can still exist separately as a personal, a shared, and a synced contact, since those are different scopes. Within scope, emu.chat looks for an existing contact by phone number first, then email:
- If a match is found, the contact is updated according to the option you chose under When a contact already exists (see below).
- If there is no match, a new contact is created and added to the list you chose.
- Contacts synced from another source (such as Microsoft Entra) are left out of matching, so an import never overwrites synced contacts.
A row is only imported if it has a usable phone number or an email address; rows with neither are skipped.
Choose what happens to existing contacts
Use the When a contact already exists dropdown to decide how a matched contact is updated from your file. The same choice applies to standard fields and custom fields:
- Fill in blank fields only (the default): keeps existing values. Only empty fields are filled in from your file, so existing data is never overwritten.
- Update fields included in my file: overwrites with your file's values, but blank cells are ignored, so existing data is never erased.
- Replace all fields: makes the contact match your file exactly. Blank cells clear existing values, so use this with care.
Note: Whichever option you pick, only fields you have mapped are touched, and matching stays within scope: a personal import only changes your own contacts and a shared import only changes the workspace's shared contacts. Synced contacts are never changed.
Start the import
When your mapping and destination look right, select Start Import. A progress screen shows a running tally as it works: how many contacts were created, how many existing ones were updated, and how many rows were skipped (no usable phone or email). When it finishes, you can open your contacts or import another file. If an import fails, check your file against the template and try again.