Best Ways to Import Contacts to Gmail

It’s not uncommon for me to use multiple email programs. However, I wouldn’t say I like re-entering contact information. I rely on importing contact records. So imagine my surprise when I discovered how mistake-prone the process is for Google Contacts. Nevertheless, if you want to learn how to import contacts to Gmail (Google Contacts), you can benefit from my mistakes. Includes CSV template file with headers and sample data.

Early Attempts

When I wrote this article years ago, I ran into many perplexing error messages that offered little help. Since then, Google has made the process more robust. Many of the previous errors did not recur. This is not to say the process is bulletproof, and it is dependent on your vendor data source and data quality. The more fields in your current system and Google Contacts have in common, the better your success rate.

Scenario 1 – Importing Multiple Contacts

Let’s start with a simple scenario where you have several contacts you wish to enter. Google provides a direct entry method where you provide the name and email address. You can enter just a name, email, or both. The entries should be separated by a comma.

For example, the string below will create 3 contact records. One name, one email, and contact with both.

Jane Doe,, Cindy Klein <>

To import contacts via a string

  1. Open Google Contacts
  2. From the left pane, click Import.
  3. The Import Contacts dialog opens.
Import contacts dialog with two options.
  1. Click Create Multiple Contacts [B].
  2. The Create Multiple Contacts dialog opens.
  3. Enter your string with each contact separated by a comma. If you want a combined record of name and email, wrap the email in <>.
  4. Optionally, you can add a label by clicking the No Label button on the top. I used Test-CMC.
Example of adding multiple contacts to Google.
Google converts the string to contact records
  1. Click Create.

Google will assign these 3 contacts with my label of Test-CMC. In addition, Google has used the email address as the Name for the record that only has an email address. This makes it easier to find the contact.

Imported record where email address is used as the Name.
Note email address is carried over into the Name field.

Verdict: I find this method inefficient. I can see adding contacts without a name, but why would I just want to enter someone’s name without their email? Moreover, there is no way to enter other contact fields.

Excel course sale

Scenario 2 – Import vCard into Contacts

If you have a few contacts, using a vCard is a good option. You can think of a vCard as an electronic business card. Many popular contact databases use this file format. For this test, I used two contacts from Microsoft Outlook 365.

Export Outlook contact as vCard.
Abe Lincoln’s test record in Outlook

In addition to basic contact fields, I added multiple email addresses, categories, birthdays, the business home page, photos, etc. These were entered using All Fields and All Contact fields. I didn’t use any user-defined fields. However, vCard files don’t include all the fields that show on All Contact fields, but a subset. This makes sense as who would give out a business card with all the information.

Using VS Code, or another editor, you can look at the generated file from Outlook which uses VCARD Version 2.1. The majority of the file is from the encoded photo.

vCard content displayed in VS code editor.
vCard viewed in a code editor

To import a vCard into Google Contacts

  1. Open Google contacts.
  2. Click Import from the left navigation pane.
  3. On the Import contacts dialog click Select file.
  4. Point to your .vcf file.
  5. Add a label. (optional).
  6. Click Import.

One noticeable difference from Scenario 1, is Google adds a Label onto the contact record called “Imported on mm/dd/”. As you can see in the picture below, the fields imported reasonably well. One issue is email addresses imported with a label of “Other”.

Imported vCard with photo to Google Contacts.
Imported vCard record

For the most part, the .VCF file format works well but some items get lost in translation. For example, since I didn’t have a photo on the 2nd contact record, Google uses the first letter of the full name for the icon [A]. The “D” is coming in from the prefix of “Dr”.

Also, the business address [B] isn’t quite right. In Microsoft Outlook, I had populated the fields “Business Address PO Box” and “Branch Location”. As a result, you see an extra 120L and Midtown.

Imported vCard recordi nto Google Contacts.
Imported vCard from Outlook

vCard Fields and Missing Data

One problem you may encounter is the vCard version number from your data source. Presently, there are 3 versions: 2.1, 3.0, and 4.0. And even though your data source, such as Microsoft Outlook, may have a field, it may not be included in the .vcf file. Some vendors have their nomenclature and some fields are optional in the spec.

For example, Microsoft Outlook won’t include “Categories” in their vCard file even if you’ve filled out the field in Outlook. This field is used as a Label in Google Contacts. In contrast, if I add a Label to a Google contact and export that record, I do see the field. Google also adds a new one called myContacts.

Exported contact showing CATEGORIES.
Exported vCard from Google Contacts

Google also ignores fields such as Gender, Nickname, and Anniversary. Interestingly, the Nickname and Anniversary fields are in the database, but not displayed to the user.

Verdict: While vCards (aka .VCF files) are good, there isn’t a way to create a file with all your contact records. They are designed to hold one contact so this option may not be efficient if you have lots of contacts or fields from your existing contact management system (CMS).

Scenario 3 – Importing an Outlook CSV File

Although the process is smooth, it’s not perfect. And, it may be a bit unsettling for folks who expect to do field mapping. You’re pretty much at the mercy of Google, Microsoft, and your data practices. While many of your fields transfer over and are stored, they may not display. However, Outlook does the same thing with its views too. It’s not until you drill down into All Contact fields that you see these other data elements.

Imported contact using Outlook CSV file.
More info pulled in with CSV file (Partial screen snap)

Although more data is pulled in, there were some quirks. These may be outlier cases. One example, if I click into the imported record using Edit, I can see the Nickname field but it’s pulling in data from Outlook’s Initials field. This isn’t Google’s fault as the Outlook CSV source file no longer has the Nickname field.

The other oddity is if you’ve used the Children field in Outlook and entered multiple names separated by a comma, only the first entry shows. The problem with these fields is you don’t know how the user is going to populate them. Since this field comes in as a “Relationship”, I don’t think Google is looking for a number.

You’ll also note that the CSV seems to have fixed the business address issue I had with the vCard. I don’t have the extra 120L and I now have a separate field for Office Location.

And perhaps best of all, is that the Outlook Categories are brought over and show as Google Contact Labels at the top of the record.

Verdict: Very good and efficient option. Expect to do some tweaking.

Scenario 4 – Creating a CSV Template (Google)

The next test was to fix my existing Google Contacts test record and then export it. Google provides two CSV export options. One is for Google and one is for Outlook. They also provide a template that you can download. However, because it’s just the column headers, there is no context and it’s easy to make mistakes.

Corrections to Google Contact Record

Essentially, I’m using the previous import from the Outlook CSV as my basis. I want to make some corrections and then use the corrected record as my new starting point. I went into Edit and made the following changes:

  • I changed the Nickname to “Vinny”.
  • I added a Child Relationship for Stephanie.
  • I edited the first child record to be just Erik.
  • I added “Work and “Home” labels to the emails.
  • I removed the 120L entry in the PO Box field.

Export Corrected Google Test Record

The good news is Google Contacts allows you to export individual records. So I figured I could see how the corrected record looked.

  1. Open your test contact in Google.
  2. Click the 3 dot More Actions icon.
  3. From the drop-down menu, select Export.
More options menu item showing Export.
Export Google test contact
  1. Select Google CSV.
Google Contacts export options.
  1. Click Export.

Despite these corrections, the exported Google CSV file had “Vinny” in the Initials column and the Nickname field was blank. And the file still had my original entry with both children even though I had edited the line to just have Erik. (In a previous test, I separated the kids’ names with ::: which didn’t work.)

The question I had was what would happen if I deleted the test record in Google and imported its CSV file back to Google? Would my labels change? Thankfully, everything worked as expected.

One concern I had was “Group Memberships“. In the exported file from Google, they separate the Label with 3 colons with a space on either side. I wanted to see if I changed the separator to a comma if it would work. The answer is “no”. Instead of having two distinct labels, I had one. The same problem occurred if I used semicolons.

Imported labels using commas.
Adding commas makes one label

Lastly, I remembered the Outlook CSV file used the field Categories and they were separated by commas. Could I rename the Group Membership field and add my commas? Not really. You’ll get a field called Categories, but these values won’t show as a filterable Label at the top of each record.

Renamed import column name to "Categories".

If you plan to use Labels, the export field is called “Group Memberships”. If you have multiple labels attached to a contact, they must be separated by a space, three colons, and another space ( ::: ).

Excel formula bar showing color separators.
Use colons and spaces to separate Group Memberships

If you’d like to use my starter template, you can download it below. It has more fields than Google’s and includes the test record data. To get acquainted with the template, you might want to transpose your columns and rows in Excel. Just remember to swap back before uploading to Google.

Verdict: If you’re not coming from Microsoft Outlook, this is your best option. You’ll probably have to take the fields from your vendor’s CSV file and rename them to match the headers in my starter CSV template. Or, could retype your contacts, but this would be time-consuming since you can’t use an Excel Data Form to speed up the entry since there are too many fields. I also did have luck deleting columns I didn’t need. However, I wouldn’t do that till after you get your first test record imported.

Tip 1: Start Small and Map Fields

When you import files, I think it’s a good idea to start small. The last thing you want is to import your entire contact database only to discover fields mapped incorrectly or are missing. Instead, start with a small number of test records and see what happens. Google will automatically add a “Label” name based on the import date.

My suggestion is to look at the fields you use and create a test contact record with them. Make note of these fields as you need to make sure they transfer properly. In the case of Microsoft Outlook, you should look at All Contact Fields. You need to determine which fields are critical to you

Using this test record, I created several CSV files and VCF files and tweaked them along the way.

Tip 2: Check for Vendor Solutions

If you’re coming from a popular contact management system (CMS), you should look to see if an existing solution is available. Sometimes your current provider will offer advice and other times it might be Google. While Google seems to work with Microsoft Outlook fairly well, they are other vendors. And some vendors, like HubSpot, have solutions in their marketplace that allow you to sync contact records.

Tip 3: Skip Google’s Template

Google does provide a CSV file template with headers. However, you may find it more confusing. It has 36 fields, and some of them may make you pause. For instance, there is a field value called “Sensitivity.” I’m unclear what I would enter in this field – “gluten”? I transposed the columns and rows in Excel so you can see the fields in one column. To be fair, there’s not much documentation defining what Microsoft Outlook fields mean either.

If you look at the list, you might notice there aren’t any fields for phone numbers. And there is only one set for email. In reality, you can have these other fields and more than one relationship. However, you wouldn’t know it by looking below.

List of Google's fields in one column.
Field names from Google Contacts template

Google Contacts Import Restrictions

Once you get past the header and template issues, there are two other restrictions you might encounter.

  • You can’t import more than 3000 records at a time. If you have more than that, create multiple CSV files.
  • Google Contacts has a record limit of 25,000 contacts

Hopefully, you now know how to import contacts to Google Contacts and won’t go through the frustration I did. And if you’re like me, you probably learned a thing or two, such as what’s a Yomi name.

Key Takeaways

  • Always create test records before importing your entire file
  • Recognize that some fields may not display, but are stored
  • Not all contact info is searchable
  • If you plan to use Labels on contact records, you need to separate them properly
  • If you plan to use Nicknames, use the Initials field
  • The encoded photo from a vCard will not export out of Google the same way