Multi-step forms with multiple submissions per user

I’m not sure what would be the best way to do this.

I currently have a form that collects regular user feedback. It has userID, date, a rowID then all the form values. Users complete this every month or so. I need to (later) pull charts of how a particular user’s scores have changed over time.

The form is beginning to get long (20 numeric answer questions, plus some open text). I thought about making it multi-step. When I have done that before I have used the “user specific values” method. However, I’m thinking that probably won’t work as it will write over previous entries for that user each time.

What is the recommended method. I thought about using the user-specific method for in progress forms then copying the data over to a new table on final submission, but this feels messy overly redundant.

Thanks in advance.

That’s essentially how a custom form works.
Use a single row helper table to collect all inputs in user specific columns, then when the user submits, use an add row action to add a row to the “permanent” table.

The below thread includes a copyable template.

really helpful thanks. Sometimes I just need assurance that I am not going on in weird directions with Glide !

@NoCodeAndy - I think these topics (helper tables) and (custom forms) would make excellent entries into your technical Event series. Just going over the examples and why they work so well in a Glide environment are important today and in the long-term. Darren and others have published brief tutorials on usage for developers because they are that important - having a formal training on WHY and WHEN you should consider these techniques would be great for existing and especially new users.

My 2 cents worth…

Matt

1 Like

Agreed!

I’m having one of those days where, having worked on this for a while, I feel like I know less than when I started. I don’t think I ever quite grasped screens/tabs in glide sometimes.

It doesn’t help that I dip in and out of glide (i haven’t edited in months), so I constantly have to get my head around concepts again. I keep thinking I get it, then I switch back to my app and get lost trying to translate it (not the first time I wished you could have Glide open in two windows)

I might just not do this now. Maybe use a third party form and push date back to glide via the API. However, I’m now wondering - is there a potential issue with other (single step) forms on my app.

Quite a lot of the functionality I have is based around users submitting data. I don’t use user specific fields. Is this potentially an issue?

Only if you are using a Custom Form. By their very nature, Custom Forms must be built on top of User Specific columns in a multi-user App, otherwise you run the risk of users clobbering each others data.

If you are not sure whether you are using a Custom Form or a Native Form, look at your Submit button. If the Button was automatically added when you created the form, then it’s a native form. If you added the button yourself, then you have a custom form.

1 Like

That’s a huge relief. Looks like I am only using custom forms in admin view and only i have access to that. Thanks.

All sorted. Wow, that is a lot of work in Glide. I am stunned how long that takes.

20 question multiple choice + 6 comment fields split into 6 steps. There are so many steps doing this in glide and the funky UX when using hidden elements really slows it down (unless there is a secret “show all the hidden things” option that I missed).

Steps for me where:

  • Add all the choices into an options table. If I do this again I will definitely look for a way to import those, as that alone is surprisingly slow.
  • Create helper table. Again, I am wondering if there is a faster way to do this.
  • Create each step on the page (hindsight - deal with visibility later)
  • Create 2 workflows for each step (back and next)
  • Add validation to each forward workflow
  • Create final table (thought I would be able to copy and edit this, but user-specific seems to mean not)
  • Create “complete” worlkflow
  • Build new view to show results

From a user perspective I think the result is fairly good. First customers using it today, so I hope so! It bugs me that I have had to hardcode the questions in two different places, so they could technically end up different on the question and answer page though.

I’m relatively happy with the end result, but I’d definitely try to do this outside of glide if I did it again. Maybe try to embed something like Tally then send the result to a glide table at the end.

Thanks for the help though. We got there!

The flow does sound correct, normally I don’t have workflows for “back”, it would just be an action to decrement the “step count” for me. However, it’s good practice to store it/them as a workflow so you can re-use it when needed.

For forward validation, you can either do what you did there, or do it on the backend, having an if-then-else validation for each step, and a final if-then-else to get the validation for the current step.

For final table, you can try filling values for all columns in the helper table, export it, then import back to Glide as a new table.