Help Center
Contacts & leads10 min read

Import contacts from a spreadsheet

Bring a list of people into Exabloom in one go - a CSV from another tool, an event sign-up sheet, or a tidy export from your old CRM. You’ll upload the file, line its columns up with the right contact details, and let it run. Here’s the model behind each step, so a thousand-row import lands the way you expect.
Before you begin
You import from the Contacts page, using the Import button in the toolbar. Have your list ready as a .CSV file with a header row (it’s the “Save as → CSV” option in Excel or Google Sheets).
Start here

The 60-second version

Importing is a short, three-step wizard. You can stop reading after this and get a clean import - the rest of the guide walks each screen for when you want to understand exactly what each choice does.

1Upload file
Import Contacts
123Upload file
Drag & drop your CSV file here

Drop in a .CSV, then pick an import mode.

2Map columns
Import Contacts
23Map columns
First NameFirst Name
MobilePhone No.
Notes⊘ Skipped

Tell Exabloom which column is the name, the phone number, and so on.

3Confirm details
Import Contacts
3Confirm details
Import name
Spring open house
Submit

Name the import and press Submit. It runs in the background.

Every import moves through the same three steps, left to right: upload the file, map its columns to contact details, confirm and run.
Nothing happens until you submit
Uploading and mapping are just preparation inside the dialog. No contacts are created or changed until the final Submit.

Prepare your spreadsheet

A few minutes tidying the file beforehand saves you a messy results screen later. The importer reads a plain .CSV - other formats aren’t accepted - with one row of headers at the top and one contact per row after that. This is the shape to aim for:

spring-open-house.csv
ABCD
1First NameMobileTagsNotes
2Mei Ling+65 8123 4567spring-open-houseTrial booked
3Arjun+65 9876 5432spring-open-houseReferred by Jane
4Priya+65 9123 4455spring-open-house
249…
spring-open-house.csv, opened in a spreadsheet. Row 1 is headers, every row after it is one person, the phone numbers start with + and a country code, and Tags holds the tag to apply.
  • One header row. The first row should be column titles (First Name, Mobile, Email…), not a real person.
  • Phone numbers in full. Write +65 8123 4567, not 8123 4567. This is how a contact links up across WhatsApp and your other channels.
  • No duplicate numbers. Two rows with the same phone number can’t both become the same contact - only the first is used.
  • Tags in one cell. Put one or several tags in a Tags column, separated by commas. New tags are created for you.
  • Dates in a consistent format. If you’re importing into a date or time custom field, keep one format throughout (for example DD/MM/YYYY) - you’ll tell Exabloom which one during mapping.

Here is the same idea gone wrong. Every red cell below would end up in the Unprocessed count:

term-3-signups.csv
ABC
1First NameMobileJoined
2Mei Ling+65 8123 456715/09/2024
3+65 9876 543216/09/2024
4Arjun+65 8123 456717/09/2024
5Priyacall menext week
Row 3 has no First Name. Row 4 repeats the number from row 2. Row 5 has no real phone number, and its date can’t be read as a date.
Don’t have a file yet?
The quickest way to get the column shape right is to Export your existing contacts first (the button next to Import), edit that sheet, and re-import it. The export’s headers - First name, Last name, Phone, Email, Tags - match themselves on the mapping screen.
Step by step

Open the importer

1

Open Contacts

Click Contacts in the left sidebar.

app.exabloom.com/contacts
BMBright MindsOrchard
Inbox
Leads
Calendars
1
Contacts
Bulk Actions
Win-back
Workflows
Analytics
Forms
Settings
Contacts
All contactsSearch by name or phoneFiltersColumnsExport
Import
New contact
First NameLast NamePhone No.Tags
AishaRahman+65 9012 3344Trial
BenKoh+65 8123 7788Enrolled
ClaraWong+65 9345 1200Enrolled
DevNair+65 8765 4321Trial
ElaineChua+65 9222 8101
① Contacts sits in the top group of the left sidebar. The Import button is in the toolbar above the table.
2

Open the Import menu, then choose Import contacts

Click Import, then Import contacts.

app.exabloom.com/contacts
BMBright MindsOrchard
Inbox
Leads
Calendars
Contacts
Bulk Actions
Win-back
Workflows
Analytics
Forms
Settings
Contacts
All contactsSearch by name or phoneFiltersColumnsExport
1Import
New contact
First NameLast NamePhone No.Tags
AishaRahman+65 9012 3344Trial
BenKoh+65 8123 7788Enrolled
ClaraWong+65 9345 1200Enrolled
DevNair+65 8765 4321Trial
ElaineChua+65 9222 8101
app.exabloom.com/contacts
BMBright MindsOrchard
Inbox
Leads
Calendars
Contacts
Bulk Actions
Win-back
Workflows
Analytics
Forms
Settings
Contacts
All contactsSearch by name or phoneFiltersColumnsExport
Import
2
Import contactsAdd or update people in your workspace.
Send to a listNewMessage everyone in a spreadsheet, using its columns in the message.
New contact
First NameLast NamePhone No.Tags
AishaRahman+65 9012 3344Trial
BenKoh+65 8123 7788Enrolled
ClaraWong+65 9345 1200Enrolled
DevNair+65 8765 4321Trial
ElaineChua+65 9222 8101
① Import is in the toolbar, between Export and New contact. ② It opens a two-item menu; Import contacts is the first.
Good to know
The second item, Send to a list, is a different tool: it messages people straight from a spreadsheet without adding them to your contacts. See Send to a list.

Upload and choose an import mode

3

Choose your file

Drag your .CSV onto the dashed box, or click Browse files.

app.exabloom.com/contacts
Import Contacts
1Upload file
2Map columns
3Confirm details
Drag & drop your CSV file here
Only .CSV files are supported
or
1Browse files
Next
① Browse files opens your computer’s file picker (dragging the file onto the box does the same). Only .CSV files are accepted, and Next stays greyed out until a file is chosen.
4

Pick the import mode, then click Next

Check the file name, choose an Import mode, then click Next.

app.exabloom.com/contacts
Import Contacts
1Upload file
2Map columns
3Confirm details
spring-open-house.csv
18.4 KB
Import mode
2
Create and update contacts
3Next
Once a file is in, the box becomes a file banner. ② Import mode is a dropdown with three choices. ③ Next takes you to column mapping.

The mode is the one choice that changes what actually happens to your data, so it’s worth getting right. Exabloom matches rows to existing contacts by phone number, then the mode decides what to do with each match.

Default
Create and update contacts

The default. New phone numbers become new contacts; numbers you already have get their details refreshed from the file.

New numberCreates it
Existing numberUpdates it
Create contacts only

Only adds people you don’t already have. Rows whose phone number already exists are left untouched.

New numberCreates it
Existing numberSkips it
Update contacts only

Only edits people you already have. Rows with a phone number that isn’t in your contacts yet are skipped.

New numberSkips it
Existing numberUpdates it
Good to know
If you’re not sure, leave it on Create and update contacts. It’s the most forgiving: nobody gets skipped, and people you already have simply get refreshed.

Map your columns

Mapping is where your spreadsheet’s columns get matched to Exabloom’s contact attributes. Each row of the table is one column from your file: its name on the left, a couple of sample values from your data in the middle, and the attribute it will fill on the right.

When you arrive, Exabloom has already guessed. A column is matched automatically only when its header reads the same as an attribute (ignoring capitals): First Name, Last Name, Email, Phone, Tags, Facebook ID, Instagram ID, or the name of one of your custom fields. A header like Mobile or Phone No. is not recognised and is set to ⊘ Skipped, so a stray column never imports by accident. Columns with nothing in them don’t appear at all.

5

Fix what the guess missed, then click Next

Open the Contact Attribute dropdown for Mobile, pick Phone No., then click Next.

app.exabloom.com/contacts
Import Contacts
Upload file
2Map columns
3Confirm details
File ColumnSample ValuesContact Attribute
First NameMei LingArjun
First Name
Mobile+65 8123 4567+65 9876 5432
1
⊘ Skipped
Tagsspring-open-house
Tags
NotesTrial bookedReferred by Jane
⊘ Skipped
Back
Next
app.exabloom.com/contacts
Import Contacts
Upload file
2Map columns
3Confirm details
File ColumnSample ValuesContact Attribute
First NameMei LingArjun
First Name
Mobile+65 8123 4567+65 9876 5432
⊘ Skipped
Tagsspring-open-house
Tags
NotesTrial bookedReferred by Jane
⊘ Skipped
Search by field name
⊘ Skipped
First Name
Last Name
Email
2
Phone No.
Facebook ID
Instagram ID
Tags
Telegram Handle
+ New Custom Field
Back
Next
app.exabloom.com/contacts
Import Contacts
Upload file
2Map columns
3Confirm details
File ColumnSample ValuesContact Attribute
First NameMei LingArjun
First Name
Mobile+65 8123 4567+65 9876 5432
Phone No.
Must include country code + national number
Tagsspring-open-house
Tags
NotesTrial bookedReferred by Jane
⊘ Skipped
Back
3Next
First Name and Tags matched on their own. ① Mobile was left on ⊘ Skipped - click its dropdown. ② Pick Phone No. from the searchable list (attributes already used are greyed out). ③ With First Name and Phone No. both mapped, click Next.

Each attribute can be used once per import - pick it for one column and it greys out for the rest. These built-in attributes are always in the list:

First Name*Last NameEmailPhone No.*Facebook IDInstagram IDTagsTelegram Handle
First Name and Phone No. are required
You can’t advance from mapping until one column is matched to First Name and one to Phone No. (marked above). If either is missing, an error banner appears at the top of the table and Next does nothing until you fix it.
app.exabloom.com/contacts
Import Contacts
Upload file
2Map columns
3Confirm details
  • 'Phone No.' attribute cannot be empty. Please map one file column to 'Phone No.' attribute.
File ColumnSample ValuesContact Attribute
First NameMei LingArjun
First Name
Mobile+65 8123 4567+65 9876 5432
⊘ Skipped
Back
Next
What you see if Phone No. is still unmapped when you click Next.
Telegram Handle is listed but not saved
Telegram Handle appears in the attribute list, but the importer does not write it to the contact today. Map the other columns as usual; don’t rely on this one.

Advanced · only if you need it

Most imports stop above. These two extras handle dates and columns that have no home yet.

  • Date and time fields. Map a column to a custom Date, Time or Date time field and a format picker appears under its sample values. It opens on YYYY-MM-DD; change it to the layout your file uses (like DD/MM/YYYY). There’s a custom option for unusual patterns.
  • A field that doesn’t exist yet. Click New Custom Field at the bottom of the attribute list, fill in Name, Group and Type, and Create - it’s made and mapped without leaving the import.
Enrolled on
15/09/2024

Select the format for 'Enrolled on' to ensure correct DATE parsing.

DD/MM/YYYY (15/09/2024)
Enrolled on

New Custom Field

Name

e.g. Company Size

Group

General

Type

Text
CancelCreate
Left: the format picker that appears under a mapped Date field. Right: the New Custom Field form that opens inside the attribute list.

Name it and run

6

Name the import and click Submit

Type an Import name, then click Submit.

app.exabloom.com/contacts
Import Contacts
Upload file
Map columns
3Confirm details
Contacts to import
248
Mapped columns
3
Import name
1
Spring open house
Give this import a descriptive name so you can track it later.
Back
2Submit
The last step is a sanity check: how many contacts are about to import and how many columns you mapped. ① Import name is the label you’ll look for later. ② Submit starts the import.

Give it something you’ll recognise later - “March newsletter leads” beats “import 7” - because that’s the name you’ll scan for on the Bulk Actions page when you check how it went.

Submit needs a name
If Import name is empty, pressing Submit does nothing, and no message tells you why. Type a name and press it again.
7

Check progress, or close and carry on

When the green Import scheduled! panel appears, click Check progress.

app.exabloom.com/contacts
Import scheduled!
Your import is on its way!
Contacts are being processed in the background. Large imports may take a few minutes to complete.
Close
3Check progress
③ Check progress closes the dialog and jumps to the Bulk Actions page. Close leaves you on Contacts - the import keeps running either way.

Contacts are processed in the background, in batches of 200 rows, so a big file can take a few minutes. Your contacts list fills up as each batch lands.

Read the results

Every import is logged on the Bulk Actions page. Its Status badge moves from Creating to Processing to Completed. While it’s still running, the row’s ⋮ menu also offers Pause, Resume and Cancel.

8

Open Bulk Actions

Click Bulk Actions in the left sidebar (or use Check progress).

app.exabloom.com/bulk-actions
BMBright MindsOrchard
Inbox
Leads
Calendars
Contacts
1
Bulk Actions
Win-back
Workflows
Analytics
Forms
Settings
Bulk actions

Monitor, pause, resume, and review large-scale operations across your contacts in a single place.

Search by name
NameTypeStatusCreated
Spring open house
Import ContactsCompleted30/09/26
Fee reminders - SeptSend MessageCompleted21/09/26
Term 3 lesson confirmationsSend MessageCompleted21/08/26
① Bulk Actions is the first tab in the middle group of the sidebar. Your import is the row named after the Import name you typed, with the type Import Contacts.
9

Show stats

Click the ⋮ beside your import, then Show stats.

app.exabloom.com/bulk-actions
BMBright MindsOrchard
Inbox
Leads
Calendars
Contacts
Bulk Actions
Win-back
Workflows
Analytics
Forms
Settings
Bulk actions

Monitor, pause, resume, and review large-scale operations across your contacts in a single place.

Search by name
NameTypeStatusCreated
Spring open house
1
Rename
2Show stats
Download import report
View contacts
Import ContactsCompleted30/09/26
Fee reminders - SeptSend MessageCompleted21/09/26
Term 3 lesson confirmationsSend MessageCompleted21/08/26
app.exabloom.com/bulk-actions
Import results
Total
248
Processed
236
95%
Unprocessed
12
5%

Processed: Contacts created / updated depending on the import settings. Your total grows only with new contacts.

Unprocessed: Contact creation / update skipped due to invalid data, import settings, or duplicate phone numbers within your file.

Remove duplicate rows before uploading for cleaner results.

① The ⋮ menu sits beside the import’s name. ② Show stats opens the results panel below: Total rows, how many were Processed (created or updated), and how many were Unprocessed.
  • Processed - contacts created or updated, depending on your import mode. Your total contact count only grows by the genuinely new ones.
  • Unprocessed - rows that were skipped: invalid data, an import-mode mismatch, or a duplicate phone number within the file.
10

Download the report to see which rows failed

Click the ⋮ again, then Download import report.

app.exabloom.com/bulk-actions
BMBright MindsOrchard
Inbox
Leads
Calendars
Contacts
Bulk Actions
Win-back
Workflows
Analytics
Forms
Settings
Bulk actions

Monitor, pause, resume, and review large-scale operations across your contacts in a single place.

Search by name
NameTypeStatusCreated
Spring open house
1
Rename
Show stats
2Download import report
View contacts
Import ContactsCompleted30/09/26
Fee reminders - SeptSend MessageCompleted21/09/26
Term 3 lesson confirmationsSend MessageCompleted21/08/26
① Open the ⋮ menu. ② Download import report saves a .csv - it appears once the import has completed (or been cancelled).

The report is your original file with two columns added at the right: error says why a row failed, and action says what happened to it - CREATE, UPDATE, or IGNORE. Fix the rejects in your sheet and re-import just those.

report-9f3c….csv
ABCDE
1First NameMobileTagserroraction
2Mei Ling+65 8123 4567spring-open-houseCREATE
3+65 9876 5432spring-open-houseFirst name is requiredIGNORE
4Arjun91234567spring-open-houseUPDATE
5Priyacall mespring-open-houseInvalid phone format in field Phone No. Unable to verify the country code and national number.IGNORE
6Mei Ling+65 8123 4567spring-open-houseIGNORE
A downloaded report. The violet columns are the ones Exabloom adds. Row 3 was refused for its missing name, row 5 for an unreadable phone number, and row 6 was ignored with no error because it repeats row 2.
Tip
The stats panel also has a Download Report (.csv) button, but it only shows up on a Paused import - for a finished one, use the ⋮ menu as above.
“Only error contacts” won’t show import errors
In the ⋮ menu’s View contacts submenu, the Only error contacts option opens the Contacts page filtered to error rows - but for an import those rows were never created as contacts, so you’ll land on an empty list. To inspect failed rows, use the downloaded report instead.

Why a row doesn’t import

A non-zero Unprocessed count is normal and usually harmless. The three reasons a row gets skipped:

Invalid or incomplete data
An empty First Name (First name is required), an empty phone cell (Phone No. is required), a phone number that can’t be read (Invalid phone format in field Phone No.), a date that doesn’t match the format you picked, or a word where a Number field expects a figure.
Duplicate phone numbers in your file
If the same number appears on two rows, only the first one is used - the others are ignored, with nothing written in the report’s error column. Two spellings of one number (+65 8123 4567 and 81234567) count as the same number.
Import-mode mismatch
Create contacts only ignores numbers you already have; Update contacts only ignores numbers you don’t. A high Unprocessed count is often just the mode doing its job - the report shows IGNORE with an empty error.
Tip
Because the import matches on phone number, a clean, fully-formatted phone column is the single biggest thing you can do to keep the Unprocessed count down.
Copy this

Setups to copy

Three common jobs and the mode that fits each. Map First Name and Phone No. in every case - the rest is up to you.

Load a fresh list of leadsCreate and update contacts

Map First Name and Phone No., add a Tags column like spring-campaign so you can find them later, and leave anything you don’t need on ⊘ Skipped.

Top up an existing list without duplicatesCreate contacts only

Upload the whole sheet - people you already have are left exactly as they are, and only the genuinely new numbers get added.

Bulk-edit details you already storeUpdate contacts only

Export your contacts, fix the columns in a spreadsheet, then re-import. The export’s column names map themselves. Keep First Name and Phone No. mapped (they’re always required), and map only the columns you changed - unmapped fields stay as they were.

Good to know & pitfalls

  • Nothing is saved until you press Submit. Uploading and mapping all happen in the dialog - close it before submitting and no contacts are touched.
  • First Name and Phone No. are mandatory. You can’t move past mapping until a column is matched to each - even in Update contacts only. Everything else is optional.
  • Write phone numbers in full. Start with + and the country code (for Singapore, +65…). A number with no country code is read as a number from your workspace’s own country - fine for a purely local list, wrong for anyone abroad.
  • Match uses phone number alone. Two people who share a number are one contact to the importer, and a contact you hold under a different number will be created again.
  • An empty cell in a mapped column can blank a saved value. On an update, the file wins for every column you mapped, including its empty cells. Skip the columns you don’t want to touch.
  • Tags are only ever added. A Tags cell can hold several, separated by commas. Importing never removes a tag a contact already has.
  • Big imports run in the background. After you submit, contacts are processed in batches of 200 rows. You don’t have to wait on the dialog - Bulk Actions shows the status.
  • De-duplicate before uploading. Repeated phone numbers within one file are ignored, which inflates the Unprocessed count for no real reason.

Migrating from another tool?

Our Singapore-based team can help you clean up an export and get your contacts imported correctly during onboarding - just reach out.