monicahq / monica

Personal CRM. Remember everything about your friends, family and business relationships.
https://beta.monicahq.com
GNU Affero General Public License v3.0
21.69k stars 2.18k forks source link

Share information between contacts #593

Open kenahoo opened 7 years ago

kenahoo commented 7 years ago

For many of the contacts I maintain, people share lots of data between them. For example, I and my spouse and our 3 kids share an address and a phone number; three of us also have our own phone numbers, and four of us have our own email addresses. Variations on this are extremely common in my address book.

How can this data be properly shared among the various contacts in Monica so as not to violate the Don't Repeat Yourself principle for data?

If I were designing this using a graph database, I'd say that each contact has a few intrinsic properties (name, birthdate, tags), then is linked to various contact info records in a many-to-many bipartite linking - each contact can have several info records, and each info record can link to several contacts.

Could anything like this be in the cards for Monica? It's the major gripe I have about all the address books & CRM-like products I've seen - it doesn't represent the data as I think it really exists in the world. Monica takes a couple small steps in this direction, by linking contacts through relationships like "significant other" and "child". It would be great to extend this functionality!

kenahoo commented 7 years ago

Any thoughts on this?

djaiss commented 6 years ago

Let's try to summarize. You want to be able to

Interesting, but complex to do. Apart from child/spouses, in which other case could we have this?

tylerrobb commented 6 years ago

Making assumptions without actually writing data to each contact could help a lot. I could envision defining the relationship type not only between myself and the contact but between contacts. The relationship type between contacts could have pre-defined rules for what assumptions that Monica could make.

For example:

From this, I would assume that John and Jane live together at the same address, have the same home telephone number, and share the same children. Instead of writing to the database, it would be nice if the Monica user had the chance to confirm or reject these assumptions.

  1. I create John first and fill in all details (kids, address, contact info, etc.)
  2. I subsequently create Jane and a dialog box appears with the option to select certain pieces of info from John's profile that I would like to copy to Jane. (This doesn't write duplicate data to Jane's entry, but it does create a symbolic link between the two profiles. If I edit the children's info in one, it displays on the other. If I update the home address in one, it displays on the other.)
DesignsWithDavid commented 2 years ago

Has there been any progress on this?