CiviCRM (www.civicrm.org) is a nice Open Source CRM which is very well integrated in drupal. To create a Survey with CiviCRM you start with creating the questions as custom fields. An obvious choice would be to then create a CiviCRM profile. But a CiviCRM profile does not allow you to have more then one page in one Survey, or to have Conditional questions, depending on previous answers. The drupal webform module does have those options (and more). With module Webform CiviCRM Integration you can have the best of both worlds. With Webform CiviCRM Integration you select the custom fields of CiviCRM and place them in your webform. You can then use the Webform functionality to add
- Page breaks
- Personalized messages with CiviCRM tokens
- Advanced validation ( http://drupal.org/project/webform_validation)
- Conditional questioning, even on the same page (http://drupal.org/project/webform_conditional)
- Add markup, for example "Question 1 of 10"
- etc.. etc..
When your survey is finished, you can use the CiviCRM Mailing functionality to send a personalized survey request which sends everyone to their own Survey page. The Survey results can be found at both the Webform Results page and in the CiviCRM contacts.