Custom field (CMS collection) change on submit form

Hi,

I have a CMS collection with events. Each event can host a certain number of people. I’ve created a custom field that displays the spots left.

I’m showing a form on the collection page where people can rsvp. Now I’m deduct the spots left (custom field) manually after someone rsvp’d.

Can I somehow automate this? So, after each form submit the spots left should be deducted with 1.

Thanks!

Hi Mischa,

I’ve seen this question a lot, in particular in regards to whether Webflow can achieve this with Logic + the CMS. Unfortunately there are still a few significant limitations remaining that make it unsuitable for this use case.

The best approach I’ve found so far is to pair Webflow with automation like Make.com and AirTable or Google Sheets to store your registrations.

All of the magic is in that Make automation.

  • Receive the event registration form submission
  • Store the details in AirTable or Google Sheets, so you have a centralized registrant list for all of your events, that can be accessed by your client
  • Count the number of registrants for event X ( X being the same event as whatever registrant you’ve just added )
  • Get the associated CMS Event Item, which will contain a “max registrants field”
  • Do the calc with your two values; max - current = remaining
  • Update the CMS Event item with remaining, so this can be displayed

This approach has a bunch of advantages including better PII data security, and ease of accessibility. It’s also much more internally-consistent than just trying to increment and decrement a number field.

It also opens the door to a more robust solution where your client can directly add/update/delete registrants directly from AirTable or Google Sheets. In that case you’ll want additional triggers and automations that will re-calculate and re-update your CMS-stored events when the central list is updated.

That’s simple enough :smile:

Here’s the best approach with a walk through…

Setup your CMS:

Setup a free Make (Integromat) account with these 3 modules:

You can get your Event item like this (2nd module):

You can deduct your total RSVPs like this and save to the CMS (3rd module):

The secret ingredient here are the “Make Functions” which is the subtraction and converting the rsvp value to a number (via parseNumber).

Give it a try!

Submit your form:

Your Make scenario runs:

Looking at the second module you find your current, total RSVPs:

Looking at the third module you find your RSVPs deducted:

Your RSVP count on the form updates:

And your CMS looks correct:


That may seem like a lot at first, if you’re not used to these workflows, but once you get the hang of it, it’s quick & easy.

My blog has a ton of screencasts and tutorials running through exactly this sort of thing:

Good luck!

1 Like

Thanks for this solution! Works fine!

I have one additional question: now I have to set up Make per event. As I have multiple events (and frequently add more) I wonder if I can set up this once for all events? Do you have a hack for this?

Yea, that’s totally doable, but will require a bit more effort on your part.

2nd Module

In your second module, under “enter item id” switch from “by selecting” to “manual”:

Now you can tell it any CMS item id you want. You’ll have to do this by passing that up in the form submission.

Unfortunately Webflow doesn’t expose that to you. The best way to overcome that is by adding a new field to your CMS, something like “item id” and adding that events auto-generated item id to it.

Now it’s available in an embed element and you may add it to your form:

That shows up in Make with your form submission and use you that for this Make module.

If adding your auto-generated item id by hand becomes a pain, I use lookup tables to automate it.

3rd Module

Do the same with the item id in the third module:


And that’s basically it. There will be some efforts to do that but it then becomes a scalable solution.

Hope that helps!