so the problem of contact management is the opposite of new, and a lot has improved in recent years, but things still aren’t working for me
my contacts are split like so
primary list of contacts: Gmail. Auto-adding of addresses to the the list is usually good, but I wish it was easier to purge people with who I exchanged one email a long time ago (subject to manual confirmation).
secondary list of contacts: Pidgin. the great instant messaging software includes all my contacts on MSN/WL messenger (including my old account), Gtalk, Yahoo, AIM, ICQ (admittedly virtually unused now). while most of these protocols store the contacts server-side, I have manually combined multiple accounts of the same people, and this is stored in a local XML file. I wrote an XSLT a year or two ago which converts the XML to CSV which can be imported into Gmail. Of course, it is imported manually, doesn’t really deal with Gmail-Pidgin duplicates, and of course lacks the avatars which aren’t stored in the Pidgin local file to begin with.
secondary list of contacts #2: Facebook. Facebook makes for pretty nice contact management, but it is largely a walled garden. For one thing, email is preferable for non-trivial conversation (email works well, isn’t closed, can be better archived and searched, etc.). Facebook makes the process for emailing someone as (1) find their profile (2) find their email in an image and retype (not copy-paste) it into my email application. Ugh. Facebook does have excellent metadata, and importantly, everyone manages and keeps up-to-date their own data. Today I tried FriendsCSV, a Facebook application that converts your friends list to a CSV file which is nice, although they don’t violate Facebook’s terms, meaning of course that email address aren’t included. And thus importing into Gmail creates a million duplicates. The metadata can include the URL to their Facebook profile, but Gmail contacts don’t even support URLs, so the URL is plain text.
tertiary list of contacts: Skype. As I have never yet had a cell phone, I use SkypeOut as my “phone” and so it contains actual phone numbers (in addition to some Skype contacts), a piece of metadata which is largely absent from my other contact lists, but also quite important. Apparently Skype’s own export function doesn’t include SkypeOut contacts, which makes things fairly useless.
There are also various contacts spread out in LinkedIn and many other websites, but few that aren’t also in the previously mentioned lists.
Of course, now that I have a mobile device (currently an iPod Touch, although I will probably be switching this for a cell phone by August), I want to get the data on there, especially phone numbers, since that is the data I will need when I don’t have Internet access. So my current workflow looks like this
- periodically prune Gmail contacts
- periodicially import (and then prune) contacts from Pidgin->XSLT->CSV and Facebook->FriendsCSV->CSV
- periodically delete Windows contacts, and then readd them all by importing the contacts exported from Gmail
- synch my iPod, fortunately done automatically when charging
Of course, the iPod Touch has a great visual interface, rendered useless by the fact that contacts imported from Gmail through CSV won’t include Gmail’s avatars (and certainly not ones that failed to get imported from Pidgin and Facebook).
One big problem with this is all the manual pruning that is necessary, and largely incomplete, thanks to all the duplicates created. And let’s not even get into the problem that I have many contacts that I don’t know about because they are people who I exchanged email with before Gmail, and will be useless until I import the old emails into Gmail that were on Outlook Express and are now in that format on an external hard drive…
Google now has a Contacts API and Microsoft has their Windows Live Contacts API, although the latter is decreasingly useful as people migrate off Hotmail/MSN to Gmail/Google. And I don’t want to write the apps using the APIs, I’m lazy and want other people to do it.
Plaxo is supposed to be my saviour, synching things across everywhere, keeping data up to date, deleting duplicates, etc. If I pay of course (what?? pay for software?). I wonder if it is worth it…
I want the future now, dammit.