# How do I create a custom form?

**URL:** <https://community.glideapps.com/t/how-do-i-create-a-custom-form/25014>\
**Category:** Community Resources\
**Created:** [April 1, 2021, 11:46am UTC](https://community.glideapps.com/t/how-do-i-create-a-custom-form/25014 "2021-04-01T11:46:14Z")\
**Posts on this page:** 20\
**Page:** 5

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [April 22, 2022, 12:26am UTC](https://community.glideapps.com/t/how-do-i-create-a-custom-form/25014/84 "2022-04-22T00:26:30Z")

</div>

> [@MattLB](#):
>
> One issue is the back button at the top of the screen. If the user clicks on it; no clean-up.
> 
> Can an action be attached to this navigation item at the top of the screen?

One approach is to hide the back button, as Thinh described.  
Another approach (and one I normally use instead) is to do your clean up on the way into the form. So if there are user specific columns that need to be cleared or set, do this as part of the action that opens the custom form screen. I like this approach better, as then you can leave the back button as it is.

---

<div class="post-metadata">

**Author:** ![Mohit\_Baid](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/mohit_baid/32/42910_2.png) [@Mohit\_Baid](https://community.glideapps.com/u/Mohit_Baid)\
**Post date:** [May 20, 2022, 7:52am UTC](https://community.glideapps.com/t/how-do-i-create-a-custom-form/25014/85 "2022-05-20T07:52:03Z")

</div>

I have created a custom form but on filling up the form, the tables (GlideTable) is not getting updated. Please help

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [May 20, 2022, 7:57am UTC](https://community.glideapps.com/t/how-do-i-create-a-custom-form/25014/86 "2022-05-20T07:57:08Z")

</div>

Two questions:

1. Are you using User Specific Columns to hold the values from your input components?
2. Do you have an Add Row action attached to your submit button?

---

<div class="post-metadata">

**Author:** ![Mohit\_Baid](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/mohit_baid/32/42910_2.png) [@Mohit\_Baid](https://community.glideapps.com/u/Mohit_Baid)\
**Post date:** [May 20, 2022, 6:36pm UTC](https://community.glideapps.com/t/how-do-i-create-a-custom-form/25014/87 "2022-05-20T18:36:00Z")

</div>

While there are no user specific columns, there is an add row action attached to the submit button of the form.

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [May 21, 2022, 3:32am UTC](https://community.glideapps.com/t/how-do-i-create-a-custom-form/25014/88 "2022-05-21T03:32:14Z")

</div>

Can you record the problem in a video? Thank you.

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [May 21, 2022, 3:38am UTC](https://community.glideapps.com/t/how-do-i-create-a-custom-form/25014/89 "2022-05-21T03:38:52Z")

</div>

> [@Mohit\_Baid](#):
>
> While there are no user specific columns,

Present issue aside, if you have more than one user of your app then this will cause you problems.

---

<div class="post-metadata">

**Author:** ![Mohit\_Baid](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/mohit_baid/32/42910_2.png) [@Mohit\_Baid](https://community.glideapps.com/u/Mohit_Baid)\
**Post date:** [May 21, 2022, 9:03am UTC](https://community.glideapps.com/t/how-do-i-create-a-custom-form/25014/90 "2022-05-21T09:03:44Z")

</div>

How do I avoid that? I intend to have several user groups / users. Is Glideapps not suitable for this functionality?

---

<div class="post-metadata">

**Author:** ![Robert\_Petitto](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/robert_petitto/32/25193_2.png) [@Robert\_Petitto](https://community.glideapps.com/u/Robert_Petitto)\
**Post date:** [May 21, 2022, 9:46am UTC](https://community.glideapps.com/t/how-do-i-create-a-custom-form/25014/91 "2022-05-21T09:46:15Z")

</div>

Glide is suitable for multiple users, but to build out a custom form, you’ll want to use user specific columns…otherwise, as one user fills out the form, other users will see their entries. You want each user to have unique inputs.

> **[User-specific columns](https://docs.glideapps.com/all/product/data-editor/user-specific-columns)**

---

<div class="post-metadata">

**Author:** ![Mohit\_Baid](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/mohit_baid/32/42910_2.png) [@Mohit\_Baid](https://community.glideapps.com/u/Mohit_Baid)\
**Post date:** [May 23, 2022, 8:25am UTC](https://community.glideapps.com/t/how-do-i-create-a-custom-form/25014/92 "2022-05-23T08:25:23Z")

</div>

I want each users inputs to be visible to the others. Since the workflow involves sequential activities and not parallel activities, simultaneous editing would be unlikely.

The problem seems to be fixed right now - I did nothing. Did the GlideTeam do something at the backend?

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [May 23, 2022, 8:46am UTC](https://community.glideapps.com/t/how-do-i-create-a-custom-form/25014/93 "2022-05-23T08:46:18Z")

</div>

> [@Mohit\_Baid](#):
>
> I want each users inputs to be visible to the others. Since the workflow involves sequential activities and not parallel activities, simultaneous editing would be unlikely.

I suspect you will still be better off with user specific columns. Once the form is submitted and a new row is added, the data in that row should be visible to all users, unless you’re deliberately filtering it or applying row owners.

The only reason to not use user specific columns would be if you have multiple sequential users working on the same form without actually submitting. But I think that’s unlikely? (And could get horribly messy if that’s truly what is intended).

---

<div class="post-metadata">

**Author:** ![Mohit\_Baid](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/mohit_baid/32/42910_2.png) [@Mohit\_Baid](https://community.glideapps.com/u/Mohit_Baid)\
**Post date:** [May 23, 2022, 10:29am UTC](https://community.glideapps.com/t/how-do-i-create-a-custom-form/25014/94 "2022-05-23T10:29:30Z")

</div>

Hi Darren

The requirement is that the input from a particular user should be visible to the user group to which that user belongs. I am using the Filter option to make that happen and am thus not using User specific columns.

However, I am not using the application such that multiple users are filing in a form simultaneously without submitting the form. The flow is a user fills and submits the form with the first set of details. Another user EDITs that same entry when a sequential activity completes and submits. I have used conditions on visibility to ensure that the sequence of activities are adhered to.

---

<div class="post-metadata">

**Author:** ![Test\_Test](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/test_test/32/30930_2.png) [@Test\_Test](https://community.glideapps.com/u/Test_Test)\
**Post date:** [June 9, 2022, 6:52pm UTC](https://community.glideapps.com/t/how-do-i-create-a-custom-form/25014/95 "2022-06-09T18:52:10Z")

</div>

> [@Darren\_Murphy](#):
>
> - Building custom forms for adding and editing list items (as an alternative to the native forms provided by Glide)
> - Preventing duplicate new entries using [User Specific Columns](https://docs.glideapps.com/all/reference/data-editor/user-specific-columns) and [Relations](https://docs.glideapps.com/all/reference/data-editor/computed-columns/relation-column)
> - Enforcing mandatory input items
> - The use of visibility conditions and user specific Booleans to control user flow

Hi @Darren_Murphy,  
It’s me again 👋  
I always find myself coming back to this post, or others based on this.  
On one hand, the concept of a Custom Form is so deeply imbedded in many of my apps. They allow the benefits/advantages you mentioned above, and so much more.  
On the other hand, relying on these “New Screens” is creating a huge challenge: how to allow users to edit?  
If we enable the native Edit function by Glide, we lose all the a.m. benefits. To retain these benefits, we basically need to create another New Screen. It is true that this newer New Screen will inherit fields from the data inputted based on the older (original?) New Screen, but how do we validate the new inputs/edits?  
Not sure if I have explained myself well enough and also not sure if this isn’t a topic that has already been addressed. I couldn’t find anything on other posts. At least not anything directly solving this edit issue.  
Would be grateful to hear your thoughts.  
Thanks

PS - Indirectly connected is the issue of logging these changes. I’ve addressed it in [this post](https://community.glideapps.com/t/one-log-for-all-app-changes/42734).

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [June 10, 2022, 12:27am UTC](https://community.glideapps.com/t/how-do-i-create-a-custom-form/25014/96 "2022-06-10T00:27:30Z")

</div>

> [@Test\_Test](#):
>
> On the other hand, relying on these “New Screens” is creating a huge challenge: how to allow users to edit?

I thought you’d never ask 😉

You may have missed this, but a while back I updated the concept app to include a custom edit screen, including an example of data validation on edit.

> [@Darren\_Murphy](#):
>
> Update 2021-12-26: Concept app has been updated, to take advantage of some newer features and techniques. Changes include:
> 
> - A working table has been added, and is used to prevent duplicates being created on edit (this makes use of the Remove Element from Array plugin)
> - Names are trimmed to remove extra white space
> - Actions have been “modernised” to keep Save buttons disabled while all required criteria are not met.

---

<div class="post-metadata">

**Author:** ![Test\_Test](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/test_test/32/30930_2.png) [@Test\_Test](https://community.glideapps.com/u/Test_Test)\
**Post date:** [June 10, 2022, 11:25am UTC](https://community.glideapps.com/t/how-do-i-create-a-custom-form/25014/97 "2022-06-10T11:25:08Z")

</div>

> [@Darren\_Murphy](#):
>
> I thought you’d never ask 😉

I live to serve 🙂

> [@Darren\_Murphy](#):
>
> I updated the concept app to include a custom edit screen

Indeed missed it, apologies…  
It looks brilliant, as always.  
I’m not sure I understand the interaction between the “working” and “animals” tables, while in edit status.  
I’m also not sure I fully understand the need for “expired” and “all other animals”,

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [June 10, 2022, 11:45am UTC](https://community.glideapps.com/t/how-do-i-create-a-custom-form/25014/98 "2022-06-10T11:45:10Z")

</div>



---

<div class="post-metadata">

**Author:** ![Test\_Test](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/test_test/32/30930_2.png) [@Test\_Test](https://community.glideapps.com/u/Test_Test)\
**Post date:** [June 10, 2022, 3:42pm UTC](https://community.glideapps.com/t/how-do-i-create-a-custom-form/25014/99 "2022-06-10T15:42:56Z")

</div>

Thanks, much clearer now.  
I just realized that this still doesn’t answer my concern. What I mean is that we still need to build two different set of (New) screen, as well as all the logic they entail. In the demo app, the logic is quite straightforward, i.e. prevent duplicate name.  
The challenge is on two time points: 1. When building the screen, 2. when changing the screens, we’ll need to make sure we change on two (or more) screens.  
How do we avoid this duplication? I believe we spoke about this in the past, in the sense of finding a way to “force” the app to point towards the same “New Screen” from multiple directions. That’s my idea to unify both “add” and “edit”, albeit not feasible due to inability to control the screen to which we point.  
Perhaps we can use a hidden tab?

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [June 10, 2022, 3:47pm UTC](https://community.glideapps.com/t/how-do-i-create-a-custom-form/25014/100 "2022-06-10T15:47:44Z")

</div>

I’m not sure there is a simple solution to this. You could try and do both add/edit on a single details screen, and use visibility to hide/show things as appropriate. But I’ve never attempted that, and I can imagine it would get awfully messy. So much cleaner to keep them separate, I think. Yeah there is a bit of duplication of effort involved, but copy/paste is your friend 🙂

Hidden tabs isn’t an option. Once you hide a tab, it can’t be used - it effectively doesn’t exist.

---

<div class="post-metadata">

**Author:** ![Test\_Test](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/test_test/32/30930_2.png) [@Test\_Test](https://community.glideapps.com/u/Test_Test)\
**Post date:** [June 10, 2022, 4:17pm UTC](https://community.glideapps.com/t/how-do-i-create-a-custom-form/25014/101 "2022-06-10T16:17:49Z")

</div>

> [@Darren\_Murphy](#):
>
> Hidden tabs isn’t an option. Once you hide a tab, it can’t be used - it effectively doesn’t exist.

I thought so to, so I went on putting it to the test.  
As you can see in the video, we can still point towards a tab even if it’s hidden, as long as the original setting of the “go to tab” was before we hid that tab. It doesn’t show the tab name after you hide it, but it still points to it. Any ideas how can this go wrong? What are the risks?

---

<div class="post-metadata">

**Author:** ![Darren\_Murphy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/darren_murphy/32/47326_2.png) [@Darren\_Murphy](https://community.glideapps.com/u/Darren_Murphy)\
**Post date:** [June 10, 2022, 4:20pm UTC](https://community.glideapps.com/t/how-do-i-create-a-custom-form/25014/102 "2022-06-10T16:20:18Z")

</div>

Okay, that’s new to me. Does it work the same way in a published version of the app?  
I’ll be surprised if it does.

---

<div class="post-metadata">

**Author:** ![Test\_Test](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/test_test/32/30930_2.png) [@Test\_Test](https://community.glideapps.com/u/Test_Test)\
**Post date:** [June 10, 2022, 4:24pm UTC](https://community.glideapps.com/t/how-do-i-create-a-custom-form/25014/103 "2022-06-10T16:24:51Z")

</div>

> [@Darren\_Murphy](#):
>
> Does it work the same way in a published version of the app?

You’re right, dead on published

> **[Custom FormsJune22](https://end-vegetable-2309.glideapp.io/)**

[Previous page](https://community.glideapps.com/t/how-do-i-create-a-custom-form/25014.md?page=4)

[Next page](https://community.glideapps.com/t/how-do-i-create-a-custom-form/25014.md?page=6)
