Syncing PocketPC
(and other Mobile Devices')
PIM Data
using Google Contacts

© Beverly Howard, Austin, Tx, 2009
(Updated June 10, 2013)

This Page Formatted for Viewing with PocketPC
Table of Contents
Google Setup Links
CSV Import Blues
First Sync Tips
Gotchas
My Contacts, (not)
Feedback

It is a bit stunning when you accidentally stumble across an unexpected solution to an urgent, decade old need.

Syncing Windows CE devices (PocketPC, WinMobile) PIM data has been a much discussed and problem fraught area since I began using Windows CE devices in the late 90's.

Along with the default sync limit of having to use "full" Outlook along with it's inherent baggage and problems, the general lack of any third party PIM sync options such as the early Lotus solution usually brought pocketpc users back to the dark side to Activesync on the PC.

Recently, a few paid proprietary third party solutions began to offer Microsoft Exchange PIM device sync which made the power users with expense accounts very happy to pay the service fees to access an Exchange Server.

While Microsoft Exchange provided users with internet sync options plus "push email," buying Exchange Server was not cheap and beyond the reach of most individual users as it required an internet connected server.  The exchange server software also carried a heavy price (including per seat licenses) which meant it was targeted at enterprise users with large IT budgets along with the administration skills to keep the server and the company mobile device users healthy.  The good news and appeal was that MS Exchange finally provided Windows Mobile devices with "push email" after years of Blackberry dominance with this feature.

Then, a couple of years ago, my jaw dropped when Apple announced that they had licensed Activesync from Microsoft for use as part of the iPhone Operating System.  They actually licensed only that part of Activesync on the device that synced with Microsoft Exchange servers via an internet/network connection.

However!
Google Drops Exchange Sync (Jan 2013)

While all of the data import options detailed below still work, Google has dropped MS Exchange as their sync protocol and they now use CardDav as their google contacts sync protocol.

CardDav is the default sync protocol in android devices and in Apple iOS devices, CardDav accounts can be set up in the Mail... ext, "Other" accounts section.


More Info & "How To's"


https://support.google.com/mail/answer/2753077


Bonus!  Google Calendar and Tasks also Sync, plus you can "Push" GMail to your device.


A Few Nuts & Bolts Details

  1. Google's MS Exchange sync does not currently support syncing contacts "categories" (Google calls them "Groups") even though they are supported within the Google Contacts app and Google's Outlook import option imports them from outlook without pause.  Text on several of the Google setup help pages state that "Groups Sync is not supported at this time"  Keep fingers crossed, as no categories sync is a huge negative if you have more than a few dozen contacts.
  2. Google's current MS Exchange setup does not support syncing anything contained in the "notes" field other than plain text... this includes images, handwriting and hyperlinks.... any of these will be removed when a contact is synced back from the mobile device.

Importing/Exporting to/from Google Contacts

Step one is getting your contacts information into Google Contacts.  At the time of this writing (12/24/09) the contacts "import" option does not support "Google CSV" format files, but handles imports in the "Outlook CSV" file format.


(Note, the column breaks shown below are arbitrary and included simply to make reading and finding specific field titles.)


First Name
Middle Name
Last Name
Title
Suffix
Initials
Web Page
Gender
Birthday
Anniversary
Location
Language
Internet Free Busy
Notes
E-mail Address
E-mail 2 Address
E-mail 3 Address
Primary Phone
Home Phone
Home Phone 2
Mobile Phone
Pager
Home Fax
Home Address
Home Street
Home Street 2
Home Street 3
Home Address PO Box
Home City
Home State
Home Postal Code
Home Country
Spouse
Children
Manager's Name
Assistant's Name
Referred By
Company Main Phone
Business Phone
Business Phone 2
Business Fax
Assistant's Phone
Company
Job Title
Department
Office Location
Organizational ID Number
Profession
Account
Business Address
Business Street
Business Street 2
Business Street 3
Business Address PO Box
Business City
Business State
Business Postal Code
Business Country
Other Phone
Other Fax
Other Address
Other Street
Other Street 2
Other Street 3
Other Address PO Box
Other City
Other State
Other Postal Code
Other Country
Callback
Car Phone
ISDN
Radio Phone
TTY/TDD Phone
Telex
User 1
User 2
User 3
User 4
Keywords
Mileage
Hobby
Billing Information
Directory Server
Sensitivity
Priority
Private
Categories
Here's a sample of a simplified OUTLOOK.CSV header line;
First Name,Last Name,Company,Home Street,Home City,Home State,Home Postal Code,Home Phone,E-mail Address,Notes

Note, the above line may "wrap" on your browser, but, it must be a single line at the beginning of your CSV import file.  CSV  indicates "Comma Delimited file" so, the data lines must contain comma's that define each field's data... for example;
Beverly,Howard,"Byte Aid, Inc",123 Gold St,Austin,TX,........
"Quotes" are not necessary unless the field contains a "comma" as the company name above does.  Most programs that generate CSV files go ahead and put quotes around every field to avoid problems.

The Outlook "Categories" field is a special case since a contact can be in a number of different categories so the category names are separated using semicolons (;-) ... for example;
My Contacts;Friends;Coworkers;Family;Clients 
Since the primary goal of this exercise is to "sync" uploaded contacts, you can either upload to google contacts, then select "All Contacts" and add them to "My Contacts" on the google page, or you can assure that every contacts field contains "My Contacts" before the import.

Related to this, assure that every contact has a category or invent one... for example, find every contact that does not belong to a category and put them in a category named something like "Unassigned"  ...why? Because there is no easy way to isolate contacts with no category once they are in Google.


A Warning! 

I just discovered that imported contacts that have the company name field populated but nothing in the "name" fields DO NOT SYNC USING GOOGLE'S EXCHANGE SYNC!

Worse, once in google's web interface, there is NO WAY TO FIND CONTACTS THAT DO NOT HAVE THE NAME FIELD POPULATED using google's web interface.  While it's possible to see that the name field is not populated when a single contact is checked, the only apparent way to find all contacts that will not sync is to export them and manually search the export file for empty name fields, so, it's best to deal with this before importing contacts by assuring that all contacts have something in the name fields.



There have been a number of forum posts that underscore the fact that getting data into the correct Google fields is an ongoing problem.  One responder indicated that this CSV to VCard format utility works well as it offers a Q&A interface to get the right fields populated into a VCard format that imports easily into Google contacts.   While this is an excellent tool (and one that I have needed in the past) note that it has no conversion for several important fields... notably "categories," "keywords," and "spouse" which may be major considerations for large imports.


First Sync Tips

First and foremost, BACKUP YOUR DATA! ...all copies of your data!  I did ...and ended up calling on those backup copies a number of times as I learned... for example, if you import and make extensive changes using the Google interface, be sure to export a copy in "Outlook" format and save it before you venture setting up sync options.

Start with a completely empty device.  Even though Google's sync options present options to not duplicate contacts if they exist on your device, these options do not appear to work.

Again, "Groups" (categories) do not sync at this time, so don't get caught by surprise.  A single "Group" of  "My Contacts" will be created.

I don't know Blackberry at all, and it was "send in the clowns" as a good friend who is also a newbie with his Blackberry Storm (no hardware keypad) and I attempted to sync via google (menu/googlesync)  and since neither of us were comfortable with the password input case issues, etc,.

Multiple unsuccessful attempts to login resulted in a google "Account Locked" and just trying to read the "captcha" swirling text made things totally absurd.  Finally the captcha letters were reduced to unreadable size after several attempts to enter them and we gave up with no apparent way to unlock the google account.  Took two days of searching to find https://www.google.com/accounts/DisplayUnlockCaptcha which can be run on a PC with a normal sized screen and quirkless keyboard.

Goggle Contacts Tips


Goggle Contacts Gotcha's

Here's hoping that the Google team will deal with a few missing features that most contact managers have because they are essential.


Contacts Filed by Organization Name only Will Not Sync

Contacts that have the company name field populated but nothing in the "name" fields WILL NOT SYNC USING GOOGLE'S EXCHANGE SYNC!

This can be a confusing issue since contacts with empty name fields present no problem within google's web interface... they are visible and can be searched... but they will not sync to your mobile device.

Worse, once in google's web interface, there is NO WAY TO FIND THE CONTACTS THAT DO NOT HAVE THE NAME FIELD POPULATED.  It's possible to see that the name field is not populated when a single contact is checked or edited, but the only way to find all contacts that will not sync is to export them and manually search the export file for empty name fields.

Excel seems to be the best tool to address this problem until google offers a fix.  Here's a step by step find and fix guide;
  1. export all contacts in GOOGLE CSV format.  (Don't use the Outlook CSV format as you will loose formatting and custom fields when you reimport the fixed data.)
  2. make a safety copy of the exported csv file
  3. open the csv file using excel in my case, the google csv file was exported in NAME order which simplifies this process.  The records without entries in the NAME field should be at the top of the file
  4. note the ROW NUMBER of the LAST blank name field
  5. scroll right (way to the right) to find the "ORGANIZATION" column
  6. mark (highlight) this column STARTING AT ROW TWO down to the row number you previously noted
  7. <rightclick> and select <copy>
  8. scroll left back to the first column
  9. mark (highlight) this column STARTING AT ROW TWO down to the row number you previously noted (the last blank name field)
  10. <rightclick> and select <paste>
  11. save the file with a new name indicating that it contains the name field fix
  12. now the scary part ...open google contacts
  13. <click> "All Contacts" then select "ALL"
  14. <click> "DELETE CONTACTS"  (note... this action is not reversible which is why having at least one "safety copy" is vital)
  15. <click> "IMPORT" and select the csv file containing the name field fix
Note that depending on the number of contacts in your list and the current google load, it will take some time for the contacts to sync to your mobile device.  In this test of just over 1,000 contacts, the complete update took over fifteen minues.

OBVIOUSLY, do not add or edit contacts on your mobile device during any part of this process.


Contacts Not In "My Contacts"

Google automatically adds the addresses of any message you send via GMail to your contacts if  that address is not already in contacts.  This gotcha does expose the difference between "My Contacts" and "All Contacts" as these automatically added addresses do not end up in "My Contacts" unless you move them there.  And, only "My Contacts" will sync.

Google's "apparent" analogy here is the "collected addresses" feature that some email clients have.  For example, when you address a new email in most clients, you are presented with matching options from both your email list, plus entries that have been "collected" from other email activity.  The problem is that where these "collected addresses" are accessable in most email clients, within Google, they are simply "overflow" addresses with no obvious way to manage those addresses that exist only in "All Contacts"

There are now two options for addressing contacts not in "My Contacts"

The "new" version of contacts now has an "Other Contacts" category/group below your list of groups.  Clicking this allows you to go through and move selected contacts. 

BUT!  Before you begin notice the "Groups" pulldown next to the "Add To My Contacts" button.  Since "Groups" only exist in "My Contacts" using this pulldown meets the needs of both moving contacts into My Contacts and assigning them to one or more Groups.

The new interface also allows you to easily spot contacts that I have not been assigned to any "Group"  Clicking on "My Contacts" now displays an expanded line for each contact that shows what groups each contact has been assigned to.  There are two options to assign orphans to groups...

The first is to check all of the contacts that you want to be assigned to a group, then click the "More" button and assign all to one or more groups... tip... remember to uncheck before moving on to a new set of contacts.

The second is to click a single contact and pulldown groups and select.

===========

A older method also still works if you use the "Google Contacts" page rather than the contacts option in GMail and other Google interfaces.

Open contacts
Highlight the "All Contacts" entry near the bottom of the left side
Enter a single <space> in the "search contacts" field and press <enter>

You will notice that the results column contains the header "My Contacts (xxx)"

If you scroll down this results column, you will find another header "Other Contacts (xxx)"

Below this header are the contacts that are not in "My Contacts" and will not sync.  When you check one or more of these contacts, the "Move to My Contacts" Button will become active.

Important!  Add each one of these "orphans" to a group as there is no way to search for contacts not included in a group other than to export them and use another program such as Excel.

While Google Contacts handles "Groups" (categories) well, any contact not assigned to a group will essentially be lost as there is no "no groups" display or search option.  When I realized that I ended up with a number of contacts with no category, my best option was to export, then delete all contacts, open the OUTLOOK.CSV file using excel which made it possible to spot all of the contacts that contained only "My Contacts," edit those fields to add ";NoCat" re-import them and then use Google to get them in appropriate groups.


There is currently no way to display contacts by any sort other than "First Name"  However, the "search" function works quickly and displays matches as you type plus it seems to search most fields.


No Links Allowed In Notes Field!

Know that Google's sync may mangle the contents of your "Notes" field if a note contains any type of hyperlink or other "object."

As an example, I use "TEL:" hyperlinks extensively in my windows mobile contacts notes field since, after they are created, simply tapping them will dial any number that does not fit in a "standard" contacts telephone field. 

Google's current Exchange settings not only removed the hyperlinks, they removed the visible telephone numbers... remember, I urged "backing up!" and it paid off for me here.  To add insult to injury, after the sync permanently deleted to telephone numbers, Exchange posted a note in the "notes" field that informed me that "images and handwriting would be removed from the notes field" ...thanks bunches ;-(


If you use Google Voice using a mobile device such as windows mobile or iTouch with wifi makes it potentially easy to trigger free calls anywhere in your home or office.  (Google Voice currently offers free USA calling from any of your listed numbers using a callback schema)

Unfortunately, while the Google Voice dialing and search options work flawlessly from any PC, the search options in mobile versions of these pages is completely broken at the time of this writing (Jan 3, 2010)  Tip, the "Placed Calls" link does allow quick and easy selection from this list.


There's a long standing bug at Google that results in an "Invalid Request" message if you go directly to http://www.google.com/contacts and are not currently logged in.  The message is bogus as you are now logged it and can simply enter that url again.  However, it makes more sense to go to either http://GMail.com or http://google.com/voice and click on "contacts" as these do not generate the same error.


Feedback and Discussion

Since this page was created, microsoft has closed all of it's public nntp newsgroup support forums, so, there really is no good place to discuss and deal with google support issues.  Google's "help" forum is the logical choice, but, since most of the outstanding support issues are those that users cannot address and google has not responded to any google voice issues posted there in almost a year, don't get your hopes up.

It's also hard to find the right place to post, discuss or enter ongoing discussions... that said, I have participated in a number of google contacts and google voice discussions so, check my list of discussions as a potential starting point to find help or post a related question.

...one final note...

I'm dependent on contacts' categories.  After setting up and extensively testing Google's Exchange Sync on my Windows Mobile 2003se device, the lack of categories sync sent me back to Outlook and Activesync for the moment. 

When Google turns on category sync, I'll probably be back ...although the TEL: hyperlink deletions might still keep me away.


To Return Bev's PocketPC Page, Click Here.

To Return to Bev and Rebecca's Home Page, Click Here.