Contacts: Support contact groups/labels
Description
A common feature of contacts application (probably since it's also supported by the underlying vCard format), is to "group" certain contacts together with a label. I explicitly put the double quotes there, since it's more of a tagging scheme than an actual tree-like structure: a contact can consist of multiple groups, and groups are usually more seen as a tag or a label
Use case
Grouping related contacts together can be useful for certain use cases:
- I want to send a mail to everyone in my team (and we don't have a mailing list) and want to quickly look up the email addresses to send to. (Even better: in my email application, I can just select the contact group and it fills it automatically)
- I want to send an invitation for a family gathering to my extended family (for me, that's a list of > 80 people in total), and want to have a handy list of addresses
- I want to label incoming emails coming from any contact in a certain group
- I want to start a group conversation using my favorite chat application
Prior art
Google Contacts
Google Contacts calls this feature labels.
In the overview of all contacts, it is added as a column (I reordered the columns here to fit on a smaller window):
If the screen is big enough to show the sidebar, that contains a list of labels to filter on:
When viewing a contact separately, the labels are added right under the name:
Outlook
Outlook calls this feature "groups"
iOS/iCloud
iOS: See https://www.iphonelife.com/content/tip-day-how-create-groups-contacts
iCloud: see https://www.digitaltrends.com/mobile/how-to-make-a-contact-group-on-iphone/
Design questions
- Do we call this feature "labels" or "groups"?
- Where do we want to show these in the contact details widget?
- Where do we want to show these in the contact editor widget?
- We could group contacts in the sidebar, but that would mean certain contacts can appear multiple times. So our earlier discussion of a hierarchical tree doesn't completely fit
- How to create a new group/label?
- Can we do advanced filtering (ie search for all contacts in a given group) in our search entry?