Here’s the challenge, as experience has taught me. The problem, as you state, is simple. The solution, on the other hand, is complex. Most important of all, the solution delivered to the customer has to be “deceptively simple”.
What do I mean by “deceptively simple” ? Think about the Web. To date, that’s the only “deceptively simple” application that used en masse.
Back to the CRM (or its inverse known as VRM), the “relationship” is the key to everything. Now, if we scroll back to my Web comment above, note it also operates on the same premise i.e., the “relationship” is the key to everything.
Assuming I still have your attention at this point, I posit that we can solve this CRM/VRM problem by using hyperlinks as relationship type identifiers (note we [OpenLink Software] designed a CRM system circa., 2000 only to suspend release realizing longer term virtues of a Semantic Web of Linked Data as the underpinnings for that and much more).
Basically, we just need a Semantic Web of Linked Data where both humans and machines understand the nature (semantics) of entity relationship types :)
 https://www.w3.org/DesignIssues/LinkedData.html — Linked Data Principles
 http://kidehen.blogspot.com/2014/03/linked-data-deployment-tutorial.html — Simple Linked Data Tutorial
 https://medium.com/openlink-software-blog/semantic-web-of-linked-data-deployment-using-social-media-platforms-7131946bff8d — building a Semantic Web of Linked Data using existing Social Media Platforms
 http://www.openlinksw.com/ontology/ecrm # — CRM Ontology (a work-in-progress rework of what was designed in 2000, but with today and tomorrow in mind).