Skip to content

Import contacts from a CSV

Most books arrive as an export from a spreadsheet somebody else kept, and half of it is usually already in your Contacts. The import has 3 steps for that reason, and the third one is where it earns its keep.

Nothing is written until you’ve seen the counts.

Import CSV sits behind the chevron beside New contact, at the top right of the toolbar. The empty-book card offers the same thing.

The dialog is Import contacts. To read the rule it works to, open the info mark beside the title.

  1. Press Import CSV.
  2. Press the CSV file picker and choose your file.

The first row is read as the column names, so leave your header row in. A file with no rows to import says so and stays on this step.

Every column gets a dropdown. The app guesses first, and you correct what it got wrong.

A column header that matches one of your field names maps to that field. Beyond that, name, client and contact become Full name; anything with stage, status or pipeline in it becomes Stage; tag or label becomes Tags; mobile, phone, hp or contact no goes to your phone field; and an email header goes to your email field.

Everything else starts on Skip.

+ New field... at the bottom of the list makes a field on the spot and maps the column to it.

Note that one column has to be Full name. The dialog says so and won’t let you continue until it is.

Attachment, link and person fields can’t take a CSV column, and the option says why: files cannot come from a CSV, needs a contact, not text and needs a teammate, not text.

Options, under the column list, decides what a row does to somebody already in the book. What is this import for? offers 4 answers, and the line under it spells out the consequence:

  • Add and update: new people are added, people already here are updated.
  • Add new only: anybody already in this book is left exactly as they are.
  • Update existing only: nothing new is created.
  • Add every row: no matching at all, duplicates included.

Treat a row as somebody already here when the ticks are Email matches, Phone matches and Full name matches, all on to begin with. Keep what is already here, and fill only the blanks is on too. Untick it and the file wins: a value in the CSV replaces what is on the record, and a blank cell still erases nothing. Tag every row in this import starts as import- and the date, so the whole batch can be found again.

Next builds the plan and shows you what it will do.

The green line counts new contacts. The amber lines name the duplicates, the rows that repeat somebody earlier in the same file, and any option labels nothing matched.

A grey line at the end counts rows skipped for having no name.

Press Import and it runs. The message afterwards reads Imported 12, merged 3.

Email first, then phone, then full name. The first of those to match wins, and the review line names which one it was.

Names are matched loosely on case and spacing, so ANN TAN finds Ann Tan.

A tick box reads y, yes, true or 1 as ticked, and n, no, false or 0 as unticked. Anything else is left empty.

A single-select cell has to say an option’s label. A multi-select cell can name several, split on commas or semicolons.

A label with no matching option is left out, and the review step names it rather than losing it quietly.

Where do the new contacts land?

At the end of your first stage, unless the row’s Stage column named a stage you already have. Your book needs at least 1 stage, or the import says Add a stage before importing.

Can I import the same file twice?

Yes. On Add and update the second run reads as duplicates rather than doubling your book, and only blanks get filled. Add every row is the one answer that would double it.

Something went wrong halfway. Have I lost the file?

No. The rows already written stay, and the review step re-plans against what’s actually there now, so a second run picks up the rest.

Can I import into an attachment or a relation field?

No. A spreadsheet cell holds text, and those 3 field types hold a file, a contact or a teammate.