Solutions to prevent duplicate item entries by users unknowingly?

@JasonFrederick So what I would do, although it would add a couple clicks, would allow a user to enter the food once and then validate and submit as an addition without having to type it in again.

If the below workflow sounds workable, let me know and I’ll tell you what I did behind the scenes to make it work.

A user types in their food and as they type the list filters as shown above, at any point if their entered text is not found, an add item button shows up and they can click it. Upon clicking a form opens to a page where the food as typed in the last screen is displayed (but not editable). Other fields may be available on this page if required. The user then clicks confirm addition and the food is added, and the user is returned to the previous screen. Caveat being you cannot use the built in search bar for this but will have to use a text entry field.

Let me know if the above will work for you functionally.

@Cmstewart42 Could the item button be show as soon as the user begins to type, regardless of whether the text entered is or is not found? Otherwise, this sounds extremely close to what I envisioned. Ideally the food text would be editable on the form upon clicking the add button. However, that’s NOT a deal breaker as long as the text could be edited by the user at a later point. The only benefit I saw to using the built-in search bar was the dynamic filtering. But, it sounds like that can still happen if I’m interpreting what you said correctly: “as they type the list filters”.

I’m super excited to see what you came up with!

The issue I see with the editable field in the second page (and yes it could easily be made editable) is they could arguably change what they were typing (say fix a typo they didnt notice on the first screen) and then the duplicate would not be noticed.

I suppose the question is how stringent you want to be with the duplicate detection. Do you want it impossible or simply, uncommon. They only way to guarantee there will no duplicates is to validate the entered text and then feed that exact text into your sheet. If the user can change it after validation and before submission, then there really isn’t a reason validate it in the first place.

Just take this case.

User starts typing lettuce (which you already have) and types “letuce” (only 1 t) the button appears and they click add. Then before they hit confirm they notice the missing t so they adjust it, but the validation is no longer happening so they add the missing t and hit submit. Now you have 2 lettuces in your list.

Only way of avoiding this is to “lock in” the validated text and submit.

Does that make sense?

It is totally okay if the user chooses to add multiple items with the same name. In fact, the user should be able to do that. The problem arises when the user is adding an item with the same name as a previously added item AND the user is not aware that an item with that same name exists. So really the challenge is trying to keep the user aware of what’s already happened, but still give them the freedom to name items as they choose, even if they want to name an item the same as an existing item.

I realize now I could have been more clear. Sorry for any confusion.

So just have the form button with no visibility condition under an inline list that you can allow a search function? Of course there are tradeoffs:

  • With the setup above you won’t be able to push the name of the item into the form and the user has to enter that again.

  • With the setup that has a user-specific field that can be pushed to the form, you can’t search.

Yep so currently those tradeoffs are being made. I was hoping a solution existed that could enhance what’s currently in place, while not having to make those tradeoffs.

Obviously, my initial proposed solution does not seems obvious to implement and has been pretty challenging to communicate with words and a low-fidelity sketch.

Lessons learned:
(1) Maybe explore other potential solutions to this problem.
(2) 2-3 low-fidelity prototypes in a tool like Balsamiq illustrating scenarios would probably communicate quicker and more clearly.

1 Like

Sorry I couldnt access your app yesterday due to a bug we have now fixed…Bug not at your end but rather my end.

I now see what your require. Your using the cards display add property to ask subscribers to add item information. My Q…is it just the “name” entry under Basic Info that you need help with? and, second Q…are any of these ppl at any stage signing up?

https://qelhj.glideapp.io/

Jason, I have done the trickiest part for you, and it was really a joy because it was dead easy! It’s much simpler than you have lead yourself to believe it to be.

Anyone can copy the template.

I have not done the case sensitive part for you but I am giving you the formulae. I want to see how you get along. If you need some expert assistance on this, then ThinH DinH or Jeff I always recommend when it comes to formuale. I have already done these for some of my other apps. that’s why it was easy (lol). I just wanted to see your app. When I noticed you were using the inline list property to add, you kind of made my task easy.

It should not be difficult for you now.

=ArrayFormula(IF(X2:X=Z2:Z,“Match”,“duplicate”))

=ArrayFormula(IF(EXACT(X2:X,Z2:Z),“Match”,“Differ”))

=ArrayFormula(ISERROR(VLOOKUP(X2:X,?:?,1,0)))

Thank you!

@Wiz.Wazeer thanks so much for putting this together! I might end up going in this direction. But, here’s a prototype in Adobe XD showing what I hoped was possible. You should be able to click through and see the comments on each screen.

1 Like

Thank you. Hmmm I wish the Adobe XD diagram could be brought to life in Glide…The difficulty we face is the search bar. We are not there yet in terms of adding search bar as a component like date picker etc. But, there is a way. You would have to create your tab which you use to collect the information in G form. Then set the form to web view. It would still work and I very much doubt, with your grasp of design, if subscribers would be able to tell the difference.

1 Like

Very cool, I’ll have to explore using forms.

1 Like