View Single Post
Posts: 65 | Thanked: 167 times | Joined on Oct 2011 @ Helsinki
#144
Hmmm actually I might have been confused, so here is the automerging bible, which should be roughly up to date:

1. In general auto merging is triggered when users created a new account or re-enabled an existing account
(e.g. Gtalk, Skype, Facebook, Twitter, MfE). The only exception is when syncing contacts from a another
device via bluetooth. This does not involve with any account, but it will trigger auto merging too. Auto merging
is generally a one time operation for any account (one reason we can't periodically run auto merging is that it
may re-merge contacts that we have manually unmerged). One exception is accounts with matching-only
option, which will be explained in section 5.
2. Auto merging will try to match any newly imported contacts with *existing* contacts in the phonebook. The
matching is preferably based on email and IM address (e.g. contact A's email or IM address fully matches
contact B's email or IM address). If none of these fields get matched, then we try to match contacts by name
(case insensitive exact match, and also supporting "X Y" and "Y X"). Please notice that we are NOT matching
contacts by phone number.
3. We are not auto merging service contacts from the same service (e.g. two Facebook contacts share the
same name), as they are more likely representing different people rather than different accounts of the same
person.
4. When importing contacts from MfE or another device, we only merge them with existing service contacts
(meaning contacts with an online account, including all IM and social accounts - Gtalk, Skype, Facebook,
Twitter, and in future MSN, Yahoo, etc), but we NEVER merge them with existing local contacts (contacts
without an online account, so MfE and Ovi sync contacts are also regarded as local). The reason is that if auto
merging was incorrect (e.g. two people happened to have the same name), it is really easy to just split the
service account from the merged contact (contact card -> action menu -> unmerge). However, on the other
hand, two local contacts are generally meshed to one single contact, so there is no easy way to split the
incorrect part of local contact.
5. Facebook and Twitter have a special feature: importing only contacts that match the existing contacts in the
phonebook. That means if a Facebook or Twitter contact can't match any existing contact, they are dropped
from the phonebook. However, users may configure Facebook, Twitter, MfE, other service accounts in any
order. Even though a Facebook/Twitter contact does not match any existing contact, it may match an
incoming Gtalk or MfE contact in future. Therefore, instead of dropping these unmatched Facebook/Twitter
contacts immediately, we cache them and see if they can get merged with incoming contacts within a short
period of time. We will eventually clean up the cache (so eventually drop them from the phonebook). In
addition, when new contacts are imported to the phonebook, we refetch contacts from matching only account if
they are absent from the temporary cache. This will ensure if users first configure Facebook/Twitter account
then configure a new Gtalk/SKype/etc account later (e.g. after several hours or even days), all their matched
Facebook and Twitter contacts will get eventually merged and imported.
When auto merging WON'T happen:
6. You have already imported your service contacts (e.g. Gtalk, Facebook, Twitter), and you manually create
some new contacts. Even if these new contacts match existing service contacts, auto merging won't happen.

I'm not sure if the "refresh" button in the merge panel addresses case 6... All the automerging stuff is done in UI and I'm a backend guy

Last edited by abustany; 2011-12-05 at 08:12. Reason: completing the info
 

The Following 4 Users Say Thank You to abustany For This Useful Post: