How to Import Contacts into Google Contacts from a CSV

The short answer
Go to contacts.google.com, click Import, and choose your CSV — but first rename your file's header row to match Google's own column names (First Name, Last Name, E-mail 1 - Value, and so on) using its sample template. Google's import always adds new contacts rather than merging, so a mismatched or repeated file is what actually causes duplicates.
How to import contacts into Google Contacts from a CSV, get the header row right, and fix or undo the duplicates a bad import creates.
On this page
Importing contacts into Google Contacts from a CSV is the fastest way to get dozens or thousands of contacts in at once — pulled from a CRM export, an old phone backup, or a spreadsheet a client sent over. The friction is almost never the Import button; it's the file.
Google Contacts matches each column header in your CSV to one of its own field names, and a header row that doesn't match sends data into the wrong field or, worse, creates a brand-new contact for every row even when half of them already exist. Get the header row right first, and the rest of the import takes about two minutes.
The short answer#
Go to contacts.google.com on a desktop browser, click Import in the left sidebar, and select your CSV file. Google Contacts adds every row in the file as a new contact — it does not check your existing list for matches, so importing the same file twice doubles everyone in it.
That single fact explains almost every duplicate complaint. Before you import, rename your file's column headers to match Google's own names — First Name, Last Name, E-mail 1 - Value, Phone 1 - Value, and so on — using the sample template linked from Google's import page. A header row Google doesn't recognize usually still imports, but the data lands in the wrong field or gets skipped.
Before you start#
A few things here save you a redo:
- Get the official template. Google's import page links a sample Google Sheet with every recognized header already in place — open it, then File, Make a copy.
- You don't need every column filled. A name plus one email or phone number imports as a usable contact, and Google leaves blank columns alone rather than rejecting the row.
- Back up your current list first. In contacts.google.com, open the top-right Export option and download a Google CSV of what you already have before you touch it.
- Split large lists. Google caps a single import at 3,000 contacts, with a 25,000-contact ceiling on the whole account, so anything bigger needs more than one file.
| Column header | What goes in it |
|---|---|
| First Name / Last Name | The contact's name, split across two columns rather than one full-name field |
| E-mail 1 - Label / E-mail 1 - Value | The label (Home, Work) and the address itself; add E-mail 2 - Value for a second address |
| Phone 1 - Label / Phone 1 - Value | Same pattern as email — one label column and one value column per number |
| Organization Name / Organization Title | Company and job title, if you track them |
| Notes | Free text — anything that doesn't fit a structured field |
| Labels | Which contact group the row should land in on import |
Steps#
- 1
Build or open your CSV
Start from Google's sample template, or open your existing export — from a phone, a CRM, or another email client — in Google Sheets or Excel.
- 2
Rename the header row to match Google's fields
Change your first row so each column header matches one from the table above — First Name, Last Name, E-mail 1 - Value, and so on. This is the step that actually decides where your data lands.
- 3
Save the file as CSV
In Sheets: File, Download, Comma Separated Values. In Excel, use Save As, CSV UTF-8 rather than plain CSV if any names use accented characters — the plain option can mangle them.
- 4
Open contacts.google.com and click Import
The Import option sits in the left sidebar of the full contacts web app, not in the small contacts panel inside Gmail.
- 5
Select your file and confirm the import
Choose your CSV and click Import. Google adds each row as a new contact immediately — there's no preview step and no field-mapping screen first.
- 6
Check for duplicates right away
Open Merge and fix in the left sidebar as soon as the import finishes. If this is a repeat import, you'll catch the overlap here before it spreads into a phone sync too.
What actually happens to each column#
Each header in your file becomes one labeled field on the contact card, not a single block of text. A column named E-mail 1 - Value fills the primary email field specifically; a header Google doesn't recognize usually gets dropped into Notes rather than discarded.
That's why an import can look successful while half the useful detail sits in the wrong place — the row imported, just not into the fields you expected.
A common example: a header column named just Email instead of E-mail 1 - Value. Google doesn't recognize the plain label, so that address usually gets appended to Notes as loose text rather than filling the contact's actual email field. Renaming that one header before you import fixes it without touching anything else in the file.

Platform differences#
Where your contacts are coming from changes what needs fixing before you import:
| Source | What to change before you import |
|---|---|
| Outlook (.csv export) | Outlook's export uses its own column names — a single Full Name field, E-mail Address instead of E-mail 1 - Value. Rename the headers to Google's pattern or the data lands in Notes instead of a structured field. |
| Apple Contacts / iCloud | Apple exports as vCard (.vcf), not CSV. Google Contacts imports vCard files directly — skip the CSV conversion entirely and import the .vcf as-is. |
| A CRM export (HubSpot, Salesforce, and similar) | CRM exports often carry dozens of columns Google won't recognize. Keep the ones that map to a Google field and drop the rest; an unmapped column doesn't break the import, it just gets ignored or pushed into Notes. |
| A spreadsheet you built yourself | This is the case the sample template solves directly. Copy it, paste your data into the matching columns, and delete anything you didn't use. |
None of these differences change the 3,000-contact cap or the header format itself — they only change what you do to the file before that header row ever reaches Google.
What to do when it doesn't work#
Three problems account for most import complaints, and none of them need starting over.
Google doesn't merge on import
If you already have duplicates, open Merge and fix in the left sidebar of contacts.google.com. It surfaces obvious matches automatically; for pairs it misses — the same person under two email addresses, or a name typed two different ways — search for the contact, open the three-dot menu, and choose Merge with other contact instead.
If the import went badly enough that merging one by one isn't worth it, undo the whole thing. Open the gear icon in Google Contacts, choose Undo changes, and pick a window from the last ten minutes up to the last 30 days. That reverts everything changed in that period, including the import, without touching anything from before it.
If fields landed in the wrong place rather than duplicating, the header row is almost always the cause. Recheck it against the mapping table above, fix the mismatched columns, delete the badly-imported rows, and import again.
If names or addresses show up as garbled symbols instead of readable text, the file wasn't saved with UTF-8 encoding. Re-save it as CSV UTF-8 from Excel or Sheets rather than plain CSV, delete the corrupted contacts first, then re-import — importing over them just adds a second, equally garbled copy.
A faster way#
A CSV import fixes the backlog once. It doesn't stop the same gap from reopening — a client emails you before any contact record for them exists, and the useful detail about who they are stays scattered across a handful of past threads instead of sitting in one place.
We build AI Emaily, an AI-native email client with a Personal Context brain that keeps a profile on each person and client you email, built from what you tell it rather than scraped from your sent mail. Inbox rules can act on that context automatically — filing a new contact's mail into the right place the moment it arrives instead of waiting for the next contacts export. The CSV import above is still how an existing list gets in; the Context brain is what keeps information about people current after that.
Frequently asked
See it in AI Emaily
Keep reading
Sources

Written by
Nafiul HasanNafiul Hasan is an entrepreneur and AI automation system builder with 10+ years of experience turning messy, manual workflows into reliable automated systems. He designs and ships AI enterprise solutions end-to-end — the agent logic, the data plumbing, and the product people actually use — and founded AI Emaily to give busy professionals their attention back. He writes here from the builder's seat: what works, what breaks, and how to put AI to work without giving up control.