Google-forms – How to limit one response per email for Google Forms

google-forms

I am creating a survey in Google Forms and I'm going to that use inside our organization. I am going to send the form link to everybody inside organization using their internal email. The form will not require Google login to participate, but I need to get only one response per person (one response per one emp-email-id).

If the same employee trying to participate in the survey for the
second time the form should able to identify that he is already
participated in the survey and prevent the second submission.

To solve this issue I planned to do three things

  1. Applying unique id for each link which I am sending to employee and recording the unique id after submission and if the person trying to participate in the survey with same unique id link crosschecking the recorded unique id should be able to stop the second submission.

  2. Recording their IP address instead of unique id and doing crosscheck to prevent second submission.

  3. Recording their email id and doing crosscheck second submission.

On the three things which one is possible? I am very new to Google Forms.

Best Answer

You can apply unique id to each link you send out, using pre-filled links.

  1. Add one more field to the form, e.g., "user token".

  2. Follow the instructions for getting a pre-filled link, entering something like "qwerty" in the "token" field.

  3. Inspect the pre-filled link that you get: it will look like https://docs.../viewform?entry.123456789=qwerty (there may be other entry.something parameters, corresponding to the field you left blank. You can delete those)

  4. In the spreadsheet, append random-looking numbers instead of "qwerty". For example,

Column A: =floor((2+sin(sqrt(5)*pi()*row()))*1e9)

Column B: ="https://docs.../viewform?entry.123456789=" & A2

Here I used some math to quickly get a bunch of 10-digit integers that look random but are not.

  1. Email these links to recipients; an Apps Script can help with this, if emails are entered in the same sheet.

  2. After form submissions arrive, use vlookup or match to cross-check them against your list of token numbers. For example, if the Ids are in column F, then using =isna(match(F2, F$1:F1, 0)) in 2nd row and copying it down will show the repeated submissions as FALSE. Also, use match to check tokens against the column in which you computed them originally; this will detect any users who made up a token.