New to Glide here. I have a question on multi-step form and screens. So I have Customers table that I am displaying data from on a screen/tab. I noticed there’s a built-in action to add a new customer, but I wanted to make it more customized. However, I read somewhere that its tricky to have the built in form customized (for example, make it a two page form), and that multi-step form is recommended. So I added a multi-step form, which auto created a new tab. I figured I can just hide the tab from navigation, and then configure the “Add” action to point to the new tab I just created. It does the job, but its looks so disconnected from the Customers tab as the form screen would give an impression that the user is on the new tab since they can see the hamburger menu. So my question is how do I put the multi-step on a new screen, so that when a user click on Add action, it navigates to new screen but gives a go back button instead of hamburger. Like add a second detail screen sort of solution that contains multi-step form.
One foreseeable solution that I am yet to try is manipulate visibility of form or data on detail screen to show either form or customer data at a time (based on what action was performed). But my biggest question remain, how to add multi-step form without creating new tab/screen. For context, I have a dedicated customer registration table that has a relation with Customers table on Phone Number field. I am using this relation to check if the customer already exists as the user type in their phone or email. Also, my customer is different from the signed in user. Thanks!!
Can’t you have one table for customers? Instead of two (customer registration and customer table)
Then you could make a relation with phone numbers pointing to phone numbers on the customer table, then make a lookup pointing to the relation getting the phone numbers, and then use the duplicated items column pointing to the lookup. Finally, an if then else column that says if the duplicated item is not empty true.
So the Customer Registration table was a dummy table that is used as a staging area before finally writing data to Customers table. I did this because I still do not feel comfortable managing “edit” row and “add” row in Glide, so it is more of risk mitigation from me. I will experiment with your method, but my priority remains to have this workflow implemented in multi-step form:
User clicks on “add” action
I present input fields, while simultaneously check their input against existing data to check for duplicate
On the next page, I display back what they entered and ask for confirmation
Only after they confirm, I store it in the Customer table
So add a lookup field in User’s table to get existing customers’ phone number, save the new user inputs in users table as well, and check if both columns matches. Got it.
As long as you have a table for temporarily storing values for the check (you already have that in your “Customer Registration” table), then you can just do a relation to the existing list of phone numbers. If there’s a match, then it’s duplicated, and vice versa.
However you must also take into account the fact that phone numbers can be entered in various formats, and you must standardize them to only one format so it can be checked reliably. I would recommend using Twilio’s API to verify those numbers and standardizing them.
Actually, a normal add form can also use that relation method, but it’s not available on the edit form, so it’s best just have a helper table like you did.
I would use that table for both adding and editing records. Just create a single value column > whole row to that helper table and show the row’s details screen to serve as your custom form.
Thank you ! Yes, so I created a JavaScript column that enforces number only and format user input as (123) 456-7890. This solution works for me atm because my customers are from one geographical location and expected to have similar format. I will monitor the data to accommodate more.
I just wish Glide makes the Phone number field and entry component more functional like they did with emails