I was going to say what Boyd said for the most part.
The "best" solution is one that meets your requirements. If you can't find one that meets all your requirements, then it's one that is an acceptable compromise.
If you can't find an acceptable fit, then it's "build your own", but this is generally a more costly solution than buying a package.
In some areas (generally SOP - sales order processing) then the business requirements often outweigh the facilities offered in a general package, and you have to go bespoke.
In CRM there is probably a good enough package out there - but not necessarily. You could probably build yourself a simple solution that does exactly what you want without the unnecessary bells and whistles.