Bug 5480 - (int143219/int-152882) undo/un-merge merged contacts
(int143219/int-152882)
: undo/un-merge merged contacts
Status: RESOLVED FIXED
Product: Contacts
General
: 5.0/(2.2009.51-1)
: N900 Maemo
: Low normal with 50 votes (vote)
: Harmattan
Assigned To: unassigned
: contacts-bugs
:
:
:
:
  Show dependency tree
 
Reported: 2009-10-15 17:20 UTC by thomas
Modified: 2010-05-19 14:47 UTC (History)
16 users (show)

See Also:


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description thomas (reporter) 2009-10-15 17:20:44 UTC
SOFTWARE VERSION:
1.2009.41-10

STEPS TO REPRODUCE THE PROBLEM:
1. open a contact and choose 'merge'.
2. accidentally merge it to the wrong contact.
3. (optional: swear.)
4. try to undo.

EXPECTED OUTCOME:
opening the recently merged contact, an option to un-merge certain fields,
especially the IM fields, is, if not expected, then at least immensely useful.

ACTUAL OUTCOME:
no way to undo or un-merge. the only solution is to delete the whole IM-field
in the contact, which is accompanied with a warning stating that the contact
will also be deleted from the server!

REPRODUCIBILITY:
always

EXTRA SOFTWARE INSTALLED:
n/a

OTHER COMMENTS:
i tried really hard not to accidentally merge the wrong contacts, but failed.
and since it is reasonable to assume that this merging process will take place
as one of the first things one would do with the n900, one has probably not had
the time to properly learn how the resistive touchscreen works. thus, i'd say
this is a pretty annoying bug/feature. 

User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.5pre)
Gecko/20091009 Linux Mint/7 (Gloria) Shiretoko/3.5.2
Comment 1 Mikhail Zabaluev nokia 2009-10-15 18:00:53 UTC
It was actually discussed internally before, and I totally agree some solution
is needed.
Comment 2 Andre Klapper maemo.org 2009-10-15 19:17:04 UTC
Thomas: Please always set the version field when reporting. Thanks!
Comment 3 Keywan Najafi Tonekaboni 2009-10-16 04:32:29 UTC
Even though I would encourage to offer an unmerge or undo merge option, a
workaround could be to ask "Do you want merge with Foo Bar". This might be a
bit annoying, but not so much as by hand unmerging and still keeping the IM
contacts stay in the roster.
Comment 4 Mikhail Zabaluev nokia 2009-10-16 12:26:24 UTC
The problem with the missing feature to unmerge an IM field is, there is no way
to drop an address book field bound to an IM account while: 1) keeping the rest
of the contact; 2) not deleting the IM contact from your server-side contact
list.
Even besides possible merge mishaps, this is a valid use case.
Comment 5 Jamie Lokier 2009-11-27 01:22:50 UTC
In the Pidgin UI it's as easy to unmerge contacts as to merge them.  You can
expand merged contacts because it's a tree view; expanding opens the node to
show individual contacts inside the merged one.  Then you just drag one of the
individual ones elsewhere - a lot like browsers handle dragging around a tree
of bookmarks.

I find Pidgin's method very intuitive, although sometimes a dialog asking "do
you want to merge X into Y" would be good too because you can sometimes drag a
contact into another one by accident without noticing, and then it seems to be
lost :-)

(But that could be dealt with in other ways, too, like good searchability.)
Comment 6 Alan Bruce maemo.org 2009-11-27 01:27:05 UTC
I got bitten by this recently too. I think there should be both an "are you
sure" warning when merging (especially if there are no matching fields between
the contacts) and a way to undo the merge.

What if, when someone deletes an IM field from a contact record, you ask the
user if they want to delete the contact from the server as well? If they say
no, then the contact will appear in their contact list again as a separate
entry the next time the contacts are synced with the server.
Comment 7 Keywan Najafi Tonekaboni 2009-11-27 02:12:05 UTC
what about a unmerge tool, where you choose fields from the actual contact and
with them there is another contact created and then the fields are removed from
the actual contact
Comment 8 Jörgen Scheibengruber nokia 2009-11-27 10:38:58 UTC
In the upcoming post-sales release the merge dialog will be multiple-selection
with a "done" button. This should help to prevent accidental merges.

A unmerge functionality is not currently planned.

If someone wants to create such a tool, it is entirely possible (and should not
even be too difficult) with the contacts api provided by the maemo sdk.
Comment 9 hex 2009-12-02 11:14:32 UTC
Agreed - I've already run into this a few times accidentally, which has caused
a mini mess.

An undo would be ideal, but an "are you sure" is OK (less desirable though
since we get to moving fast and might still make a mistake).
Comment 10 Max Edin 2009-12-05 16:46:53 UTC
I would not like an "Are you sure?" dialog. I believe it is a hindrance to
usability more than a help. Most of the time when you press merge you actually
do want the contacts you selected to merge. And only in a few instances when
you select the wrong contacts that you would not like them to merge. Thus the
are you sure dialog would in most instances force the user to press an extra
button before having his desired action take place. This, in my oppinnion,
would warrant an "un-merge" feature instead of an "are you sure?" dialog and
would give the user a more pleasant experience. 

Or am I missing som vital piece of logic? =)
Comment 11 Tim Samoff maemo.org 2009-12-05 17:27:29 UTC
I agree with Max. I don't think mistakes happen enough to warrant interupting
the flow.
Comment 12 hex 2009-12-05 22:04:14 UTC
(In reply to comment #11)
> I agree with Max. I don't think mistakes happen enough to warrant interupting
> the flow.
> 

If people are running into this already with a very limited distribution, I
have to disagree with a statement like they don't happen enough. Further, it is
far too easy to have it happen (a slight touch on the wrong contact while
scrolling is all it takes) and I've had it happen several times now including
twice during some bug testing last night. Also, makes me wonder (even more) why
do I have to confirm every email delete with no option to remove confirmation?
I deal with a lot more email daily than merging a few contacts, which could
easily be recovered from deleted items anyway. I haven't been able to find a
way to delete email via an accidental touch when scrolling through a list, but
I have with merging contacts.

Assuming bugs with mfe are fixed (i.e. updates or deletes made on the phone
start making back to the server) reducing the need to merge to 'seldom' rather
than 'often', either solution is probably fine as long as there is one.
Realistically, confirmation doesn't add much friction to the flow that exists
today, which is high user friction as it is w/out making a mistake (friction
comes from slowly being careful from making a mistake while scrolling through
hundreds of contacts). Discount a mistake into the equation and the friction
that a simple confirmation introduces is orders of magnitude less when merging
a few contacts than dealing with a mistake. Merging with the wrong contact
creates a lot of work for users:

- Identify which contact was incorrectly merged. How many contacts exist?
- Manually pull out the incorrect information back into a separate contact. I
don't know about others, but this takes me a long time since I use my address
book to memorize phone numbers, addresses, emails, notes, etc. I don't ever
memorize a person's info any longer (let alone over 400).

Or, add 1 second to the merge by asking for a confirmation; certainly less than
asking 'are you sure' to delete every email, which people do all day everyday. 

The 'are you sure' can be like many implement email delete confirmations - the
user can select whether to be asked for a merge confirmation or not in
settings. Default on.

I know this is a long post, but another perspective to consider and I don't see
how an 'undo' function would be easier to implement vs. what is being saved
from a usability perspective.

But, hey, if someone wants to go through all that is required to create an undo
rather than a confirmation dialogue that is a user definable option, cool :-)

Either way, there does need to be something because as it currently sits, it's
too easy to have this happen.
Comment 13 Hans 2009-12-05 23:13:59 UTC
(In reply to comment #12)

I strongly agree. Though I've been warned about this issue I also run into it
by scrolling through the contacts which the device unfortunately interpreted as
selecting. After that I had two contacts where I didn't know how to separate
phone and Skype information without loosing my Skype contact on the server.
Fortunately hex's posting guided me into the right direction:

I duplicated the contact in PC Suite's contact manager (fortunately it doesn't
copy Skype information so we get a 'clean' copy). Then on N900 I opened the
contact which contained the Skype field, removed any other field, renamed the
contact so it matched the Skype user and then merged it again with the correct
phone contact - *phew!*

As hex mentioned the tricky part for the user is not only to undo the merge but
first to *find* the accidentally merged contact. To me the unwanted merges
happened during fast scrolling and I had to look into dozens of contacts before
finding the wrong Skype fields. Please take this 'side-issue' also into account
for any solution of this bug.
Comment 14 Tim Samoff maemo.org 2009-12-05 23:36:00 UTC
First, to address UX inconsistencies throughout Maemo: Each app/area within
Maemo is developed by a separate team. This is actually a much greater "bug"
within Maemo (unfortunately, one that cannot be completely solved via Bugzilla)
and why we see differently functionality occur between apps.

Hex's argument is a good one -- and I'm glad the post appeared. The reason I
feel like I do, though, is over the past few months that I've been using the
N900 (beginning with pretty old/buggy software), I can only remember making a
mistake like this once or twice -- and that's with over 800 contacts. So,
that's where I'm coming from.

I'm all for this option to be added to the Contacts app. And, if there are
enough people who need the confirmation dialog, I will concede to it. But, I
also want to "argue" for the side of seamless UX. I can point to several papers
that speak on the importance of moving away from confirmations and using the
"undo" paradigm whenever possible. But, again, this is just in the interest of
debate, in order to find the best solution for everyone. (This is the case for
every app -- e.g., Modest, etc. -- not just Contacts.)
Comment 15 AB 2009-12-06 00:09:50 UTC
(In reply to comment #14)

> I can point to several papers
> that speak on the importance of moving away from confirmations and using the
> "undo" paradigm whenever possible.

This same point was repeated during at least one talk at the Amsterdam summit.
In the specific case of Contacts, there already is an implicit form of
confirmation: the user is shown a picklist of name/surname combos.
Comment 16 Jamie Lokier 2009-12-06 13:08:40 UTC
(In reply to comment #13)
> After that I had two contacts where I didn't know how to separate
> phone and Skype information without loosing my Skype contact on the server.
> Fortunately hex's posting guided me into the right direction:
> 
> I duplicated the contact in PC Suite's contact manager (fortunately it doesn't
> copy Skype information so we get a 'clean' copy).

Ow.  That's pretty complicated.  People who don't google hard enough are likely
to just delete and recreate the contact - and then get bitten by "deleting
contact info removes entry from the IM server" surprise (surprising for a phone
contact list, not an IM client).

PC Suite does not run on Linux, so what are Linux users to do?  Is there any
option for them, other than losing their server-side Skype and IM friends after
an accidental contact merge?

It also seems like taking advantage of a bug in PC Suite - that it does not
copy the Skype info.

When I have helped someone else use PC Suite with a S60 phone, it didn't show
all the contact fields in the GUI, so I don't think I would trust PC Suite with
a valuable contact database anyway.  That's another issue.  But it's
interesting that the solution to the merge/un-merge issue is to take advantage
of PC Suite's lossy handling of contact fields beyond the very few simple ones
it knows about.
Comment 17 Tim Samoff maemo.org 2009-12-06 15:41:34 UTC
> PC Suite does not run on Linux, so what are Linux users to do?

For anyone (not just Linux users), here's what I've done:

1. Create new Contact
2. Copy all perinent fields from old (botched) Contact manually
3. Delete old Contact

Of course, if two new Contacts are must be created to fix the merged Contact,
then you'd have to do that before deleting the old one...

Yes, this is tedious, but as I said, I've only had to do it a couple of
times... And, as noted above, there are more desirable methods. ;)
Comment 18 Jamie Lokier 2009-12-06 16:11:19 UTC
(In reply to comment #17)
> For anyone (not just Linux users), here's what I've done:
> 
> 1. Create new Contact
> 2. Copy all perinent fields from old (botched) Contact manually
> 3. Delete old Contact
> 
> Of course, if two new Contacts are must be created to fix the merged Contact,
> then you'd have to do that before deleting the old one...

Does that avoid the problem of IM contacts being deleted from IM servers, when
you delete the old (merged) contact?
Comment 19 Hans 2009-12-06 17:49:20 UTC
(In reply to comment #18)
> (In reply to comment #17)
> > For anyone (not just Linux users), here's what I've done:
> > 
> > 1. Create new Contact
> > 2. Copy all perinent fields from old (botched) Contact manually
> > 3. Delete old Contact

[...]

> Does that avoid the problem of IM contacts being deleted from IM servers, when
> you delete the old (merged) contact?


No. He must not delete the old contact in step #3 but just remove all non-IM
fields in that contact and optionally rename it back to its original name.
Comment 20 Tim Samoff maemo.org 2009-12-06 20:07:34 UTC
Yes, as the info is retained in the new Contact(s).
Comment 21 Jamie Lokier 2009-12-06 20:16:14 UTC
(In reply to comment #19)
> (In reply to comment #18)
> > (In reply to comment #17)
> > > For anyone (not just Linux users), here's what I've done:
> > > 
> > > 1. Create new Contact
> > > 2. Copy all perinent fields from old (botched) Contact manually
> > > 3. Delete old Contact
> 
> [...]
> 
> > Does that avoid the problem of IM contacts being deleted from IM servers, when
> > you delete the old (merged) contact?
> 
> 
> No. He must not delete the old contact in step #3 but just remove all non-IM
> fields in that contact and optionally rename it back to its original name.

That is not a solution if the merged contact has acquired IM fields for two
people.

>> Yes, as the info is retained in the new Contact(s).

Seems you disagree. (I'm still waiting on my N900, so cannot test).
Maybe it's ok.  Would be better to be able to delete individual IM contacts
from the phone that you still want to keep on the server, though.
Comment 22 Jörgen Scheibengruber nokia 2009-12-06 20:26:05 UTC
To savely unmerge an im-contact (i.e. without loosing the contact from the
server)
simply disable the im-account. Then delete the im-username from the merged
contact. Reenable account, and the im-contact will be back as a stand-alone
contact. HTH.
Comment 23 Jamie Lokier 2009-12-06 20:46:14 UTC
(In reply to comment #22)
> To savely unmerge an im-contact (i.e. without loosing the contact from the
> server)
> simply disable the im-account. Then delete the im-username from the merged
> contact. Reenable account, and the im-contact will be back as a stand-alone
> contact. HTH.

Thanks Jorgen.  It's good there's a workaround, but it sounds like plenty of
room for UI improvement in this area.  It's rather fragile, depending on the
user guessing correctly what something will do.  I would not have guessed that
disabling the IM account and deleting the contact would not delete the contact
at the next sync when the account was reenabled.

Right now because of these UI issues, I would be wary of trusting the contact
list with important IM accounts (like professional connections), only "play"
accounts where I had some other way to contact people if I made a mistake - as
others have lost contacts unexpectedly and permanently.  Witness here, just in
the few preceding remarks, disagreement over when deleting an IM contact
deletes it from the server.

By which I mean there is room for improvement in making the UI more robust
w.r.t. user expectations (which for IMs will vary among users due to their
different experiences on other devices).
Comment 24 Mikhail Zabaluev nokia 2009-12-07 12:32:01 UTC
(In reply to comment #16)
> Ow.  That's pretty complicated.  People who don't google hard enough are likely
> to just delete and recreate the contact - and then get bitten by "deleting
> contact info removes entry from the IM server" surprise (surprising for a phone
> contact list, not an IM client).

So, this where we want to help with a third option: unmerge the contact. This
will not remove the contact on the server side, and provide the "undo" path for
accidentally merged IM contacts.
Merging itself would remain prompt-free as it should be.
Comment 25 hex 2009-12-08 02:28:43 UTC
> So, this where we want to help with a third option: unmerge the contact. This
> will not remove the contact on the server side, and provide the "undo" path for
> accidentally merged IM contacts.
> Merging itself would remain prompt-free as it should be.
> 

Cool - then what happened to that thinking in more important places like
deleting email that you do all day every day? You certainly shouldn't be
merging contacts all day or everyday - right now the frequency just has to do
with the bugs.

Did you miss my suggestion that it is user definable? Turn it off if you want.
And, with the prompt - remind me how that removes anything from a server, but
an undo doesn't? That has me lost.

I'm trying to find a solution that is not more expensive than the return yet
intuitive that fits the task we are talking about: merging contacts. Yes, needs
to be solved, but at what cost? Is it better to make things more complex and
expensive to develop where users spend little of their time than implement a
solution that introduces trivial friction and put resources on more important
tasks? In fact, I argue that the assurance it buys outweighs any friction
introduced.

BTW - It's not 100% always true that an interstitial should ALWAYS not be
introduced, especially when the cost of a mistake far outweighs the savings
removing the interstitial might bring.

Like I said, I'm probably fine either way, but all the issues I keep finding,
I'm becoming more discouraged. When I see Nokia weigh in like this knowing all
else that needs to be fixed and basic features that are missing, I know this
being released anytime soon is not probable.

I could rattle off very quickly 10 items I'd like to see more effort put on
than going overboard with this. At least, overboard is my opinion and it's
based on how often people need to do this once the bugs in sync are fixed.
Comment 26 Venomrush 2009-12-14 12:58:14 UTC
This bug have my vote.

I have accidentally merged wrong contacts more than 10 times due to clumsy
finger. It's a hassle to de-merge them. An undo function would be nice.
Comment 27 Jack Tanner 2009-12-29 05:44:48 UTC
Three comments. First, Maemo already has prominent Undo functionality in some
apps - e.g., Sketch. There's precedent for exposing it in the UI.

Second, a possibly useful alternative is Copy Contact functionality. If I
accidentally merge two contacts, and if Copy Contact is available, then I can
duplicate the (wrongly merged) contact, and delete the "wrong" fields from each
copy.

Third, the big UX issue here is having to do so much merging manually in the
first place! Just give me a wizard that walks me through all pairs of contacts
that match on some fields, and ask me if each pair is worth merging.
Comment 28 hex 2010-01-13 19:28:50 UTC
(In reply to comment #27)
> Three comments. First, Maemo already has prominent Undo functionality in some
> apps - e.g., Sketch. There's precedent for exposing it in the UI.

I agree. As it also does confirmation functionality (delete mail, change wifi
power level, etc, etc). Like I mentioned, I don't care which is implemented,
but there is plenty of precedence for both whether on the N900 or every other
OS people use and are used to (mobile or not-so-mobile), but confirmation is
orders of magnitude easier to implement thus my suggestion so hopefully we get
something rather than nothing.

> Second, a possibly useful alternative is Copy Contact functionality. If I
> accidentally merge two contacts, and if Copy Contact is available, then I can
> duplicate the (wrongly merged) contact, and delete the "wrong" fields from each
> copy.

Great idea, but that may either send this 40-vote bug to brainstormers or might
qualify as another enhancement. I say the latter since this is usually
functionality in addition to merging. Many times we want to copy contacts so we
can maintain most info and just change some fields (e.g. name if we want to
keep company info/address the same or phone number/email if we want to organize
our contacts that way, which I and others I know have done for some contacts
for a while (N900 or other) just to keep easy step access to work vs.
personal). So I think this should be a different enhancement request - it'd
certainly get my vote, but I can also live w/out it because major organizing I
don't do on a mobile.

> Third, the big UX issue here is having to do so much merging manually in the
> first place! Just give me a wizard that walks me through all pairs of contacts
> that match on some fields, and ask me if each pair is worth merging.
> 

Another great idea, but again, orders of magnitude additional work. In my case,
not effective because 

The crux of this issue for me and why I (and a few folks I know) have to merge
on the phone often are twofold:

A) the way the EAS implementation handles contacts plus the addition of your
(my) separate IM accounts (these come in completely separately when you connect
your IM acct(s) - missing the clever EAS tweaks others have used). Whether I
reflash or just let "live" long enough, my contacts seem to "drift" plus my
100+ IM contacts come in with 2 entries separate from their main contact
record(s): one each for IM address and email. The wizard you mention would do
me (and I suspect others) no good since most IM addresses don't match name at
all and I'd say half use different email logins since they moved to new email
addys but keep IM from years ago. Thus, after adding, changing,
deleting/re-adding MfE account, I have to do A LOT of merges. So a couple
things need to be fixed/changed elsewhere to reduce this.

B) Kinetic scrolling and how easy it is to accidentally hit the wrong contact
when looking for others (and in the face for those who say the screen isn't
that sensitive - wrong! It's great - too great). Sure, I can use the kb to
type, but when you have hundreds (and some have thousands) of contacts, there
may be a few left on the screen or you still may need to scroll (I do often).
Or, if you merge from w/in one contact and need to find IM handle (or whatever
other contact) and you're not-quite-clear on what you need, you have to scroll.
I can be too clumsy, moving too fast or sometimes the screen hangs for a couple
seconds so hit the wrong 'whatever' so happens to me in a lot more than
contacts - but I don't scrolling changed, but do want it to be more
mistake-proof in areas that need it. Too me quickly trying to merge a lot of
contacts needs it and happens just a tad less than needing to do most other
things on the phone like deleting email. In this case, adding the ability to
scroll via sidebar (like implemented on many other devices) and arrow keys
would be nice, but that's for another enhancement request.

Interrupting flow has been talked about, but I think I mentioned, sometimes
when we design software we need to do some things that make it counter
intuitive to 'making it easier' or 'user friendliness'. Back to making a rather
simple change of confirmation compared to undo or copy (GREAT ideas I agree
with to, but more complex) is a confirmation in this case really less user
friendly? Or, is it something people generally expect these days (mobile or
not, linux, os x or windows) and by not having it, the problems it causes will
have people cursing the N900 much more than the "now expected" confirmation
that most (not all of course) won't even think twice about (unless deleting
emails since that is rarely expected :-)? Depending on OS, most you even get
confirmation prompts unless you force off in the CLI. We've all lived with it
for years.

So, add the ability for the user to DISABLE confirmation if s/he chooses. On or
off by default (I suspect off based on current modus operandi) then no one
loses and it's a fairly quick, easy implementation (unless they've done
something really horky under the hood).
Comment 29 hex 2010-01-13 19:37:02 UTC
Oh, I should add, my meta-point is to reduce likely hood of accidental "hit the
wrong contact" and merging by allowing the user to turn on confirmation.

I'm not saying to drop undo and copy functions - both good ideas, but will take
a lot longer and we likely won't see in Fremantle if this is what is chosen (my
guess).
Comment 30 Jörgen Scheibengruber nokia 2010-01-15 10:45:13 UTC
A couple of comments:

* In pr1.1, we made the merge-selection dialog multi-selection. So now there is
a "Done" button, which should help to prevent accidentally merging the wrong
contacts
* We have prototyped an assisted-merge functionality. But this stuff is very
tricky to get right, so it's still unclear wheather we can get it's quality
good enough to be included in the product. If it's not going to be in the
product, we'll try to get it released as a separate, open source app.
* Undo merging is not going to happen for Fremantle. In Harmattan the situation
will be re-evaluated.
* Copying contacts is very easy to by simply exporting and re-importing them,
as the import does not prevent duplicates. If there is huge demand for it, it
could be added into the menu, I have to talk with with our ui designer about
that.
Comment 31 Jack Tanner 2010-01-15 21:14:06 UTC
Thank you for the new multi-selection dialog in PR 1.1. That's a huge
improvement.

Suggestions to make it even better:

- When in the multi-select, show something about the contact that is being
merged into. For example, above the Done button, show the name and maybe the
avatar.
- Auto-suggest mergeable contacts in the multi-select, i.e., populate the
initial list with those contacts that match somehow. For example, suggest
"Smith, John" when merging into John Smith, suggest other contacts with the
same username@ any email address, etc.
- Add a button to open the full Address Book for those cases when the contact
being merged is not in the auto-suggest list.
Comment 32 Andre Klapper maemo.org 2010-05-19 14:47:25 UTC
This has been fixed for Harmattan in the internal Contacts UI Specification.
Nokia does not plan to fix this for Fremantle (Maemo5) as the changes are too
complex in such a late state.