We send out a survey using one of the many survey tools out there. We don't send the survey for EVERY completed project since some project sponsors would get multiple surveys per week and that could be annoying to them. So we choose the ones we feel have the most importance.
We also send the survey via an email where we're able to code a response to a couple of questions on the survey into the survey link... such as project ID and project actual completion date. This has allowed us to gather that survey feedback and kick-start the responses back onto a task at the end of the project (having that project's actual completion date lets us set the task completion date to that same date and doesn't push out the project's timeline).
At the time we started doing this, we didn't have Fusion, so the kick-start to create a new task on the project was the best option we had. I've since created a Fusion scenario to allow me to upload the survey results to a separate project and Fusion creates the task on the appropriate projects.
If I were starting from scratch and already had Fusion, I would have put the survey results onto a custom form on the project.