Limit responses per person

  • 20 January 2021
  • 35 replies

Userlevel 1

Hey guys,

I’m setting up a really big assessment using Typeform but i am wanting to limit the number of times a user can submit the assessment to improve his/her results. Anywone done this before? 



Best answer by picsoung 20 January 2021, 22:23

View original

35 replies

Userlevel 7
Badge +5

Hi @RetroRed . 🙂 Welcome to the community!


While we don’t have a native feature that can prevent duplicate responses, you can learn more about a workaround here which would involve some custom code to prevent multiple responses on an embedded form. I’m asking my colleagues if they have any examples of the code they can share with you for reference, but hopefully this helps in the meantime!

Userlevel 1

Awesome, thanks @Liz very much appreciated. I look forward to seeing the code, this could help indeed!

Userlevel 7
Badge +5

Hi @RetroRed 

There are a few ways to approach this question and it really depends on the volume of respondents you expect and how tech savy you feel :)

Below a 100, you can probably rely on the solution described in this tutorial. It combines the power of logic jumps, webhooks and our Create API. You define a flow to show your respondent if they already have submitted the form. And every time someone answers the form, their email will be added to the list in the logic jump. So next time they should see the error message.

If you plan to have more respondents, you can rely on one of the solutions linked by @Liz, which relies on cookies. Here you will find a sample project. It embeds the typeform on a page, and creates a cookie on user’s browser. If the cookie exists it does not show the form.
This solution works great, until respondent flush their cookies.

Finally, an alternative would be to let everybody answers the form, and eliminate duplicates when you are analyzing the data. If it’s part of a workflow, add a component to check if a response already exists for this user.

Hope it helps :)

Hello everyone, everything good?

I have a doubt, with the tool, is it possible to configure a routine so that the user can only answer the form once? it can be validated by an email field.

Userlevel 7
Badge +5

Hey @Penze! Welcome to the Typeform Community!  :hugging:

I moved your question to this thread where you'll find several workarounds to limit duplicated responses in your form. 

We also have this article in our Help Center that could help you! 

Let me know if you're able to tackle this! I'm hoping you will! :pray_tone2:

Userlevel 1

answers seem kludgy - competitors have this feature - would be good if Typeform added it, too.

Userlevel 7
Badge +5

Hi @brillbrill if we have any updates on this feature, we’ll post them here. :grinning:

I appreciate the technical AWS serverless code solution provided but that is far too much work and far too technical to be viable in my org.

Is implementing a cookie that keeps track of people who have finished the survey that big of a deal?

Userlevel 7
Badge +5

Hi @emaugust Completely understand! While this isn’t a feature we currently have, if there are any updates or changes, I’ll let you know. 😀

Hi Community,

Just want to know how Can I do for set a limit answer by device, it is possible into Typeform? what is happening is that people are filling same survey many times and what we need is just one answer by person.


Userlevel 7
Badge +5

Hi @BetsyMunoz I added your post here where we have the answer. 😀

Hi all, I’m quite new to Typeform so I would need to only receive one response per invite so one respondent can not respond twice or more. Is there any solution? Regards, V 

Userlevel 7
Badge +5

Hi @vpezeshki Welcome to Typeform and the community! 😄 I’ve added your post here where we have the answer. 

Userlevel 3
Badge +2

Hola a todos, especialmente al personal de Typeform.


Yo tengo una idea para que la persona que recibe un enlace a una encuesta o formulario de Typeform solo pueda emitir UNA RESPUESTA, y solo una y nada más. Estoy es muy importante en las encuestas porque una persona puede alterar los resultados respondiendo muchas veces una encuesta o formulario.

Quiero hacerlo personalmente (vivo en España) o al menos por teleconferencia pero no ha sido posible que el equipo Typeform tenga en cuenta mi solicitud de cita con personas responsables del desarrollo de producto.

Mi correo es alli estaré dispuesto para cuando Typeform y sus funcionarios me quieran escuchar…





-- Google Translation -- 



Hello everyone, especially the Typeform staff.


I have an idea so that the person who receives a link to a Typeform survey or form can only issue ONE RESPONSE, and only one and nothing else. This is very important in surveys because a person can alter the results by answering a survey or form many times.

I want to do it personally (I live in Spain) or at least by teleconference but it has not been possible for the Typeform team to take into account my request for an appointment with people responsible for product development.

My email is I will be there when Typeform and its officials want to listen to me...




Userlevel 7
Badge +5

Hi @olas thanks for stopping by the community! I’ve added your post here where we have the answer. 

Hi Typeform support,


I've come to this thread because we have the same need, to limit the number of responses per person to one, but Typeform doesn't seem to have that functionality available.
I think it's very necessary, both to avoid distorting survey results and to prevent a person from filling in contact information or event attendance multiple times.
We solve this by incorporating a unique id in the url of the questionnaire as a hidden field and then eliminating duplicates. But it seems pretty sloppy to me, to be honest.

Do you plan to fix it soon?

Thanks in advance :)


Userlevel 7
Badge +5

Hi @Smartick Thanks for stopping by and sharing your feedback! If we have any plans to add this feature, we’ll post about it here. 😀


Hi everyone, I am adding to this thread based on some great help from @picsoung 


Here is where I am still struggling: 

Here is the test page for this discussion: 

This is Squarespace 7.0 / Brine Family template


The behavior that is expected:

-the embedded form will appear in the center of the page and in full view. 

-the message “You have already completed this survey.Thank you for your participation.” will appear AFTER the the survey has been submitted


Current behavior: 

-the embedded form is displaying as a small box, upper right

-if you refresh the page at any point in time, or open another tab or window and call the page, even if you have not submitted the survey, you get the message “You have already completed this survey.Thank you for your participation.”


Here is the code that is being used (see below). Any and all help is greatly appreciated!! 


<div class="target-dom-node" style="width:100%;height:725px;"></div><script src="//"></script>

const embedElement = document.querySelector('.target-dom-node') // NOTE: `.target-dom-node` is the target DOM element from your website or web app

var displayed = getCookie("displayed_typeform"); //
if (displayed){
  embedElement.innerHTML="<h2>You have already completed this survey.Thank you for your participation.</h2>"
} else if(!displayed && displayed === "") {
  setCookie("displayed_typeform", true, 365);

function showEmbed(){ // call this function to display the embed typeform'POQw46tF', 
      hideHeaders: true,
      hideFooter: true,

// Cookie manipulation
// From

function setCookie(cname, cvalue, exdays) { 
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires="+ d.toUTCString();
    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";

function getCookie(cname) {
    var name = cname + "=";
    var decodedCookie = decodeURIComponent(document.cookie);
    var ca = decodedCookie.split(';');
    for(var i = 0; i <ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') {
            c = c.substring(1);
        if (c.indexOf(name) == 0) {
            return c.substring(name.length, c.length);
    return "";


Userlevel 7
Badge +5

Thanks for stopping by @UserNYC ! @mathio may have some suggestions for you. 😁

Userlevel 7
Badge +5

Hi @UserNYC , it looks like you already found an answer in the thread below, right?



Is there a way to have only one response per email? 

Also, can you set a default time for a question to be active before moving to the next?



Userlevel 7
Badge +5

Hi @FranciscoGN I’ve moved your question here where we have the answer. 

For your second question, we don’t have this feature, but I can share this feedback!

Hi @FranciscoGN I’ve moved your question here where we have the answer. 

For your second question, we don’t have this feature, but I can share this feedback!

Thanks Liz. I think that the tutorial is for typeform and not for videoask. Do you have one for videoask or it is the same for both?

Userlevel 7
Badge +5

@FranciscoGN @andrew_videoask or @Grace may be able to help you with that!

Userlevel 7
Badge +5

Hey @FranciscoGN 👋

There isn’t a way to limit how many times an email address responds to a videoask, I’m not sure if this would work for your setup but we do have a guide on how to close your videoask after receiving a specific number of responses:


We also don’t have a timer feature for each step, but it is something that’s on our feature request board so I’m going to add a +1 to it. 

Let me know if you have any other questions!