I want to prevent survey takers from submitting multiple responses to the same survey. IP prevention and cookie based prevention are not good enough since both of them are pretty easy to bypass.
So I came up on idea to automatically add a hidden value to the survey which will somehow (hopefully) stop people in case this value is already in the response results.
For example – I send a survey link with url variable ?name=123 and then I add hidden value with this url parameter which is shown in my responses. Whenever a person opens this url, the survey should “ask” this question – Do I already have this name (123) in the results? If yes, then send the person to a warning page (or just don’t let him submit the results).
Is this possible?
If I understand your proposal correctly, you want to create a unique link for each respondent to prevent them from responding more then once to the same survey.
You have a good idea, but SurveyGizmo can create these unique links for you. Review the SurveyGizmo Documentation – https://help.surveygizmo.com/help/article/link/create-unique-links.
Basically, you create an email campaign and add names and email addresses to the contact list. This automatically generates a unique link for name on the contact list. You can then export these unique links and send them out through other means. These unique links will be the respondent’s only access to the survey and will not work after it has been completed.
There is an assumption that you have names and email addresses for all of your respondents. You can still use this process even if you don’t have this information. You can create dummy email addresses (firstname.lastname@example.org) and add them as contacts. It does not matter if the email addresses are not valid as long as they are properly formatted and you do not actually use SurveyGizmo to send them out.
You should be able to accomplish this by using Custom Scripting and Skip/Disqualify Logic. Your Custom Script would use the sgapiGetQueryResponseCount function to check for how many responses you already have for those URL variables, and then you disqualify the survey if that count is greater than 0.
Just keep in mind that there’s possibly a few minutes delay between when the user submits their survey and when the responses actually show up in the database for querying, so if you have a user who’s determined to submit multiple responses back-to-back, the sgapiGetQueryResponseCount may return a count of 0 when there was already one or more responses.