Importing Contacts from CSV or Excel: Step by Step

In brief: Importing contacts is a three step wizard: upload a CSV or XLSX, map every column or skip it, then run and review the results.


Applies to: Anyone whose role includes importing contacts.


See also: Companies, People, and Individuals: Contact Records explains why email is the field everything matches on, and Adding and Editing Contacts (Including Quick Add) is how you fix whatever the file got wrong.


Importing contacts is a three step wizard. Upload a CSV or XLSX, map your columns to Net Net fields, then run it. Mapping is manual by design, so it takes a few minutes rather than a few seconds, and what you get at the end is a clean directory instead of a mess you spend a month untangling. Email is the field everything hangs on, because email is how Net Net matches a row to a Person.


Start from the import button in the Contacts header. The rest of that header is covered in Navigating Contacts: Grouped View, Search, and Select Mode.


Step 1: Upload


Drag a file onto the drop zone, or click Choose file.


Accepted formats are CSV and XLSX. If you pick something else, the error appears right there and nothing advances.


Underneath the drop zone are three links worth knowing about:


  • Download XLS template
  • Download CSV template
  • View past uploads


If you are exporting from another tool and have any choice about the column layout, download one of the templates first and match it. Mapping a file that already uses Net Net's field names takes a fraction of the time.


There is no cancel button on this step. Nothing has happened yet, so you can simply navigate away.


Step 2: Map fields


This is the step that matters, and the one that takes the time.


The screen is two panels. On the left, every column from your spreadsheet. On the right, the mapping workspace for whichever column you have selected.


Reading the left panel


Each source column shows its name and a badge:


  • Mapped, pointed at a Net Net field
  • Skipped, deliberately ignored
  • Needs attention, not yet decided


Above the list, three summary chips count how many columns are in each state.


Most columns start as Needs attention, and that is intentional rather than unhelpful. Automatic mapping guesses, and a guess that silently puts mobile numbers into an office phone field is worse than no guess at all. Net Net asks you instead.


Mapping a column


Click a column on the left and the right panel opens for it.


  • Skip this column ignores it entirely. Use it for the internal reference numbers and legacy junk that every export carries.
  • Person and Company tabs choose which entity the column belongs to. Which fields each of them carries is set out in Companies, People, and Individuals: Contact Records.
  • Search Net Net fields narrows the list when you know what you are looking for.
  • Field cards are what you click to make the mapping. Required fields are marked.


Work down the list until nothing is left in Needs attention.


Email is required for People, and it is not optional in the way other fields are. Email is what the import matches a row against. Without it, Net Net has no way to tell whether row 200 is a new person or the same person from row 12 with a different phone number.


The overwrite rule


There is exactly one overwrite control, and it is the checkbox labeled Overwrite existing values.


Here is the rule it governs. When a row's email matches a Person already in your workspace, that Person is updated rather than duplicated. What happens to their existing details depends on the checkbox:


  • Overwrite on. Imported values replace what is already there.
  • Overwrite off. Imported values only fill fields that are currently empty. Existing values are left alone.


Off is the safer default when you are importing a partial export, because a spreadsheet with blank title columns will not wipe the titles you already have. On is the right choice when the spreadsheet is the newer, more accurate source and you want it to win.


Running it


The Import button stays unavailable until Needs attention reaches zero. Every column has to be mapped or explicitly skipped.


This gate exists so that no column ever ends up quietly ignored because nobody noticed it. A skipped column is a decision. An unmapped one is an accident.


Step 2 has a cancel button, and it asks you to confirm, because leaving discards the mapping work you just did.


Step 3: Results


The results screen tells you what happened:


  • Total rows processed
  • People created and People updated
  • Companies created and Companies updated
  • Failed rows


Alongside those, a Download Exceptions link gives you a file of the rows that could not be imported. That file is the useful one. Fix the problems in it, and re-import just that file rather than running the whole spreadsheet again.


Common reasons a row lands in exceptions: a missing email on a Person, an email that is not a valid address, or a value that does not fit the field it was mapped to. Fixing those one at a time afterwards is the same workflow as Adding and Editing Contacts (Including Quick Add).


A single Finished button returns you to Contacts.


Past Uploads


Every import run is kept. Reach the history from View past uploads on the upload step, and you get a table of your recent runs with the filename and the date, plus a download link for that run's exceptions.


That means you can come back to an import from last Tuesday, pull its exceptions file, and work through it without re-uploading anything.


Import sessions do not stick


Starting an import always starts fresh. No remembered file, no remembered mappings, no leftover overwrite setting from last time. A session resets when you enter Import from Contacts, when you cancel out of step 2, when you finish at step 3, and when you navigate away to another part of Net Net.


This is deliberate. Half-finished import state that silently persists is how people accidentally run someone else's mapping against their own file.


Frequently Asked Questions


What file formats can I import?


CSV and XLSX. Anything else is rejected at the upload step with an inline error. Templates for both formats are available on that same screen, and matching one of them makes the mapping step considerably faster.


Why do I have to map columns manually?


Because a wrong automatic guess is worse than no guess. Silently mapping mobile numbers into an office phone field produces a directory that looks fine and is quietly wrong. Net Net shows most columns as Needs attention and asks you to decide.


What happens if a person in my file already exists in Net Net?


They are updated, not duplicated, matched on email. Whether their existing details are replaced depends on the Overwrite existing values checkbox: on means imported values win, off means imported values only fill fields that are currently empty.


Is email required in the import?


Yes, for People. Email is what the import matches on, so a row without one cannot be reconciled against your existing contacts. Rows missing an email land in the exceptions file.


Why is the Import button unavailable?


Because at least one column is still marked Needs attention. Every column has to be either mapped to a field or explicitly skipped before the import can run. That gate is what stops a column being ignored by accident.


Some rows did not import. How do I find out why?


Use the Download Exceptions link on the results screen. It gives you a file of exactly the rows that failed. Fix them there and re-import that file on its own rather than running the whole spreadsheet again.


Can I get the exceptions file from an older import?


Yes. Past Uploads keeps your import history. Open it from View past uploads on the upload step, find the run by filename and date, and download its exceptions from there. Nothing needs to be re-uploaded.


I started an import and left. Will it remember where I was?


No, and that is on purpose. Import sessions reset when you cancel, finish, or navigate away, so you always start from a clean upload. Persisting a half-finished mapping is how the wrong mapping gets run against the wrong file.


Related articles


Mapping goes faster when you already know what Net Net expects, so Companies, People, and Individuals: Contact Records is worth reading first, particularly the part about email being the identity anchor. After a run, Navigating Contacts: Grouped View, Search, and Select Mode is how you check the result, and Adding and Editing Contacts (Including Quick Add) is how you patch up anything the file got wrong. If an import brought in rows you did not want, Deactivating vs Deleting Contacts (and Why Delete Is Final) covers cleaning them out safely.


Updated on: 08/04/2026

Was this article helpful?

Share your feedback

Cancel

Thank you!