How can I limit responses in a form?


I have a question, is there a way to limit responses on a Form?

I need to receive the first 20 responses (confirmen in an event), and if is possible, to save +21 responses an beyond as a “to be confirmed”.

Any ideas?


1 Like

Hey there!

I have several ideas, but it depends on how users are accessing the form. Are they accessing your form externally provided a link? If so, how is the link being provided to them?

If users are accessing the form via a doc, you could have them access the link via a button in the doc, and then write some disable criteria to the button such as: formResponses.count>20

Just as an initial idea to mark anything past 20 as “to be confirmed” you could create a 2 new columns in your response table.

In column 1, you are going to essentially number the rows with: thisTable.find(thisRow)

In column 2, you can write: if(thisRow.column1>20, "to be confirmed" , "Confirmed")

That will essentially mark any response past the first 20 as “to be confirmed” - there are some other flexible options to make that column able to be modified if you need it as well.

If that doesnt help you can always provide more detailed context for more specific guidance

1 Like


I like @Scott_Collier-Weir 's approach. You could also add a “accumulated” column just in case some gets more than one ticket.

It would look something like this:

You could then show the “Confirmed?” column in the form

Could this work for you?

Hi @Hector_Reyes1 and @Scott_Collier-Weir thank you so much!

I really liked your ideas, so clarifying, thank you so much.

I have this question: is possible to change the feedback message after the form is completed if the response is >20 or <20?


Hi Cristian,

Not really, but you could:

a) create an automation to send them an email after they submit the form.
b) use a formula to dynamically show “Confirmed” or “To be confirmed” directly in the form (like the image)

Hey @Hector_Reyes1 ,

Can you elaborate a bit more about b) use a formula…
I’m not really sure that I understand how this would show directly in the form. I have been limiting the number of participants for courses by not showing the course that is full on the form, but I have not found a way to make the form really show interactive full/not full messages. You can change the content of the form based on changing row contents in the underlying table, but when you do so, all the rows from already submitted forms will change too if you change the form item.
I can see a solution where you maken a form choice available based on the number of participants, but that is a bit more complicated and work to get that to happen (as far as I can see it).

1 Like


I was playing around with this form and trying this approach → Screen Recording 2021-08-27...

In this case the problem is the 10th participant who might get the incorrect message.

What approach are you taking to stop showing the course when it’s full?

Hey @Hector_Reyes1 ,

I am just realizing you are asking this question to me, or at least I suppose you do.

I have a table with rows with the courses, the display column is a compound field holding the description and date of the course. There are also columns that lists the maximum number of participants for each course, which can be a different number for each course and there is a column which collects the number of participants from the response table.

The response table has columns for the name of the participant (and some more detail columns) and a lookup column for the courses (from the course table). This response table has a published form that can be used by the participants. On this there is a filter on the lookup column (which is a select list on this form) that filters out the courses where the number of participants is lower than the capacity. When then number equals capacity the course doesn’t show anymore and can’t be selected. A second filter also makes only future courses available, so past courses that weren’t filled up won’t show.

This works really good for us, although there are some drawbacks: if I get cancellations, I don’t have a reserve participant list (unlike the sample with the ‘to be confirmed’ option. And when there are no more courses available, the list to choose from is empty, which looks a bit funny, but Coda has no means (yet) to put some messages on the form canvas. I guess I could make an extra field on the form showing the courses that are filled up and let people make a choice there to be on the reserve list, but I haven’t done that yet.

A bit of topic: until recently I only allowed one course (single select) to be entered per submitted form. This for the reason that there is also a calendar type view of the response table, which doesn’t work when there are multiple courses selected. In more recent forms I allow for multi-select entries: when the form is submitted, I have an automation evaluate the new row and if it has more than one course selected, it will make as many new rows as necessary, each with only one course and of course the name of the participant. The last task of this automation is to delete the row with the multiple entries. The newly made rows are not processed (because this would create an endless loop) because only rows with more than one course are processed. This took a while to figure out, but at the end, it didn’t take all that much code to take care of things. Yes - I like Coda a lot!

I hope you understand what I am doing here - otherwise I have to make a sample doc (some day…).

Greetings, Joost

1 Like

It kind of does - I’ve implemented something a few times like this.

Essentially - you can have two columns

  1. Input column (which can be pre-filled via given link) or filled by user
  2. A second column that provides a conditional message based off the input column.

For example - I have students fill out a form every day with a happy-faced slider scale. If they pick 1 face, a message is next to it that says “I feel so horrible” whereas if they pick 5 faces it says “I am doing fantastic!!!”

It’s not ideal, but if you get creative with prefilled links via url or how users input info in certain columns you could put a somewhat conditional message into your form.


Hey @Scott_Collier-Weir ,

Wow, I wish I had thought of that myself, this is really smart. Just tested it and if you hide the label you can make interactive instructions based on some input or even static, as long as you use a formula to fill this field. I just put something together and even hyperlinks can be added (as long as you use concatenate) to produce the instruction.

When you tab through the questions you will end up on this field, but since you can’t do anything (since it is filled by a formula) our users will skip it and go to the next field. It’s not perfect, but it is very useful as a work around.

Thank you for this tip!

Greetings. Joost

1 Like

Ok wait a second - had a thought while washing dishes.

Coda formulas in rows that are inside an external form do not have access to parts of the doc, they can only read/have access to other cells directly in the same form/row (as I mentioned above to @joost_mineur with the somewhat conditional messages in forms)

BUT - they do have access to look-up columns.

So heres the idea. Have an input column in your form that is required and pulling from table (lookup) - then have automations in your document that automatically change what is in that lookup table.

For example, before there are 20 form responses, have a row in that table that says “You can register” - then users filling out the form will get that message and move forward accordingly.

Then the moment you get 20 form responses, have an automation trigger that deletes (or modifies) the row in the lookup column and replaces it with a new row that says “there are no more spots left, you can submit a form to be on the wait list”

Or something similar to that idea. Is it ideal? No - but it is a way to potentially add in conditional information in a form that is dependent on conditions elsewhere in your doc. . .

Haven’t tested it yet, so not sure how it might work. But its a thought!


You got it! Yeah - I always hide the label to make it more like a “message”

Not ideal but it works!

Almost like that - you don’t want (automations) to delete (or modify) rows in the lookup list, because they are referenced in the response table. But you can make them inactive with a checkbox and make another lookup active as a replacement. That’s not very complicated and if this runs your business, it’s worth the extra work.

1 Like

Yeah true. Good thought. As a workaround you could have another automation that modifies a second column to hold the static value of the lookup as text in the form response

But if the checkbox effectively filters the lookup that sounds simpler.

But then again - if the only point of the lookup is as a conditional message for the user filling the form, it wouldn’t be necessary to retain it in the form responses??

Lots of ideas - that’s what’s fun with Coda. So many ways to go. Just have to choose the one that works for your specific use case!

1 Like

For me, the lookup is the answer the user is sending me and it is what I see. It’s an object (reference) in Coda, so if you change the lookup, all previously sent replies will be changed to the new message. When that happens, you can’t distinguish between the before and after messages anymore. I’m to tired to try this out (it is almost 1 AM here), but that’s what I think.