I'm a developer writing an application to sync Outlook 2007 contacts with GMail. These are regular local-PST contacts, not Exchange, and yes, for now I'm exclusively focused on Outlook 2007 since that's what I have available. I may look at older versions (which I own) if this one works out. Anyway, I've tried most (all?) of the sync apps and didn't enjoy the experience. I've done the export/import thing and consider that a temporary fix. So I decided to do something about it myself.
The application I have today runs in the background and periodically pulls contact data from both systems. It can identify matches using a variety of prioritized criteria, and it has a way to systematically decide what data needs to be updated in each contact list. It can write changes to both sides. So it's largely done -- except for some decisions about that sync methodology.
The tricky thing about sync is that the GMail and Outlook contact data fields are totally different.
For example, GMail allows unlimited e-mail contacts which are tagged as Home, Work, and Other. By contrast, Outlook only supports three e-mail addresses, and they're not tagged at all. What should a sync app do if the GMail account has four addresses, but only three Outlook slots to store them?
A different example: GMail also supports unlimited phone numbers, also tagged with about six categories. On the other hand, Outlook can handle sixteen phone numbers, each with a fixed category. Some are a bit odd, like Radio Telephone. What should the sync app do if the GMail account has three Work numbers? Outlook only has Business 1 and Business 2...
Granted, these are what programmers call "edge cases" -- they won't apply to most users. But I'm hoping to find some people with large, complex Outlook address books who will weigh in with opinions about how they'd like problem cases handled.
Here is a comparison of the contact data in each system (exlcuding largely similar fields, and excluding the vast array of Outlook fields that simply have no GMail equivalent)--
E-mail Addresses:
GMail: Unlimited, tagged as [FONT="]Home, Work, Other[/FONT]
Outlook: 3, not tagged at all
Phone Numbers:
GMail: Unlimited, tagged as [FONT="]Home, Work, Mobile, Work Fax, Home Fax, Pager, Other[/FONT]
Outlook: 16, one each of Primary, Mobile, Car, Home, Home 2, Business, Business 2, Assistant, Callback, Company, Business Fax, Home Fax, Pager, Other, Radio Telephone, TTY/TDD
Postal Addresses:
GMail: Unlimited, tagged as [FONT="]Home, Work, Other[/FONT]
Outlook: 4, one each of [FONT="]Home, Mailing, Business, Other[/FONT]
IM Addresses:
GMail: Unlimited, tagged as [FONT="]GoogleTalk, AIM, Yahoo, Skype, QQ, MSN, ICQ, Jabber[/FONT]
Outlook: 1, untagged (probably should equate to MSN, but...?)
Generic "Other" Field:
GMail: Unlimited, tagged as [FONT="]Home, Work, Other[/FONT]
Outlook: No direct equivalent
Web Address:
GMail: No direct equivalent
Outlook: 1, not tagged
The contact name is a special case. GMail does a poor job importing Outlook contacts since it leaves the name blank on business-only contacts. I guess Google devs only talk to their friends. The app I've written will fix your imported list in GMail by substituting the company name if the name is missing. Lots of little stuff like that is easy to do. It's the "unlimited" lists in GMail and the many places where there isn't a direct correlation that are creating questions in my mind.
When something doesn't quite match up should the app simply not do anything? Or would you prefer a partially successful sync? What about some sort of manual conflict resolution? What other options would you like to see in a sync app? (Limited to sync activity and contacts -- I don't plan to mess with ToDo lists, calendars or anything outside of contacts.)
You've got a dev's attention... share your thoughts and ideas.
The application I have today runs in the background and periodically pulls contact data from both systems. It can identify matches using a variety of prioritized criteria, and it has a way to systematically decide what data needs to be updated in each contact list. It can write changes to both sides. So it's largely done -- except for some decisions about that sync methodology.
The tricky thing about sync is that the GMail and Outlook contact data fields are totally different.
For example, GMail allows unlimited e-mail contacts which are tagged as Home, Work, and Other. By contrast, Outlook only supports three e-mail addresses, and they're not tagged at all. What should a sync app do if the GMail account has four addresses, but only three Outlook slots to store them?
A different example: GMail also supports unlimited phone numbers, also tagged with about six categories. On the other hand, Outlook can handle sixteen phone numbers, each with a fixed category. Some are a bit odd, like Radio Telephone. What should the sync app do if the GMail account has three Work numbers? Outlook only has Business 1 and Business 2...
Granted, these are what programmers call "edge cases" -- they won't apply to most users. But I'm hoping to find some people with large, complex Outlook address books who will weigh in with opinions about how they'd like problem cases handled.
Here is a comparison of the contact data in each system (exlcuding largely similar fields, and excluding the vast array of Outlook fields that simply have no GMail equivalent)--
E-mail Addresses:
GMail: Unlimited, tagged as [FONT="]Home, Work, Other[/FONT]
Outlook: 3, not tagged at all
Phone Numbers:
GMail: Unlimited, tagged as [FONT="]Home, Work, Mobile, Work Fax, Home Fax, Pager, Other[/FONT]
Outlook: 16, one each of Primary, Mobile, Car, Home, Home 2, Business, Business 2, Assistant, Callback, Company, Business Fax, Home Fax, Pager, Other, Radio Telephone, TTY/TDD
Postal Addresses:
GMail: Unlimited, tagged as [FONT="]Home, Work, Other[/FONT]
Outlook: 4, one each of [FONT="]Home, Mailing, Business, Other[/FONT]
IM Addresses:
GMail: Unlimited, tagged as [FONT="]GoogleTalk, AIM, Yahoo, Skype, QQ, MSN, ICQ, Jabber[/FONT]
Outlook: 1, untagged (probably should equate to MSN, but...?)
Generic "Other" Field:
GMail: Unlimited, tagged as [FONT="]Home, Work, Other[/FONT]
Outlook: No direct equivalent
Web Address:
GMail: No direct equivalent
Outlook: 1, not tagged
The contact name is a special case. GMail does a poor job importing Outlook contacts since it leaves the name blank on business-only contacts. I guess Google devs only talk to their friends. The app I've written will fix your imported list in GMail by substituting the company name if the name is missing. Lots of little stuff like that is easy to do. It's the "unlimited" lists in GMail and the many places where there isn't a direct correlation that are creating questions in my mind.
When something doesn't quite match up should the app simply not do anything? Or would you prefer a partially successful sync? What about some sort of manual conflict resolution? What other options would you like to see in a sync app? (Limited to sync activity and contacts -- I don't plan to mess with ToDo lists, calendars or anything outside of contacts.)
You've got a dev's attention... share your thoughts and ideas.