What you're asking for doesn't seem like a something a CRM should do. It seems more like a managerial accounting question.
First off, for every new customer, you should have built in metrics to figure out where they came from. For instance, use a different number on your direct mail pieces, use trackable order links in your e-mails and PPC campaigns.
Secondly, place a system to automatically follow up with existing customers. E-mail power user tips after 15 days, Phone call after 45 days of use to gauge satisfaction, etc. For gauging customer satisfaction, you get more useful feedback from someone on the phone than filling out a survey.
First off, for every new customer, you should have built in metrics to figure out where they came from. For instance, use a different number on your direct mail pieces, use trackable order links in your e-mails and PPC campaigns.
Secondly, place a system to automatically follow up with existing customers. E-mail power user tips after 15 days, Phone call after 45 days of use to gauge satisfaction, etc. For gauging customer satisfaction, you get more useful feedback from someone on the phone than filling out a survey.