Long Form guidelines

Interesting question. I can think of at least 2 or 3 different ways to approach this, and each has pros and cons.

But first I would ask the question: do you need to allow users to review and/or edit their responses before final submission?

For now I’ll assume that the answer is probably yes, and if that’s the case I’d suggest it will be easier to do the lot on a single screen. But, with clever use of visibility conditions you can set it up to give the appearance of it being multiple screens.

Here are a few ideas:

  • Firstly, I’d create a seperate “working” Glide table for collecting responses. Fill that table with User Specific Columns - one for each question response.
  • Also add a User Specific (Number) column to this table. This can be used as a “counter” to drive component visibility in your form.
  • Don’t use the native Glide “show form” action. Instead, create a custom form on a details view. This will give you much greater flexibility if you need to tweak things.
  • At the start of the process, use a Show Details screen, linking to your working table
  • Build your form out on this screen, adding all the necessary input components and targeting them at the user specific columns
  • Arrange the components into logical groups, and set the visibility of each group according to the USC number column. The first group would be visible when it’s empty or equals 0, the second group when it equals 1, the third group when it equals 2, etc…
  • Add a button bar component. The right button should increment the counter by 1, the left button should increment the counter by -1. The idea here is that a user can use the button bar to step forwards and backwards between the different “sections” of your form.
  • Add a single button to act as a final “Submit” button. This one should only be visible when the final group of questions is visible. You might also have extra visibility conditions based on required fields (I usually have an if-then-else column that takes care of that, and then check that column either in the visibility conditions, or part of the action when the form is submitted).
  • Because this is a custom form, you need an action to add a new row. That action should be attached to the button mentioned in the previous dot point. It would take all the values in your User Specific Columns and feed them into an Add Row action.

Either way can work, but it’s generally easier to keep all related data in a single sheet. But at the same time, you want to avoid data redundancy as much as possible. It really depends on your data.

If you choose to split into multiple sheets, then you’ll need a common attribute to link them together. Using the approach I described above, you could set a Unique Identifier into a User Specific Column at the start of the process, and then use that with a multi-step action at the end that adds a row to each sheet.

The approach I described would give you that.

5 Likes