App for walk-in customers to self check-in

Hi all, I’m creating a simple app where walk-ins can see a list of available barbers from earliest to latest. Kiosks or tablets will be placed at the entrance of the barbershops showing this.

First thing walk-ins see is this home screen.

Here they select the barber who is available now, if there is one.

Now they select the type of haircut they’re getting.

They enter some basic info.

Barber is notified customer is waiting.

You can see the basic demo in action here: Bubble | No-code apps

What I need help with is create a functional database for it. How to display which barbers are available now, soon or later? If barber is available now: notify the barber, ask customer to sit and wait for barber to call him.

If barber is available soon or later, charge them 50% of haircut price - they can sit and wait or go do something else and come back.

They can also just see a list of time-slots each barber has available. Earliest first seeing as this app is for walk-ins and we assume they’re just looking for the quickest one.

This app is for barbershop owners, they will be admins and each barbershop will have its list of barbers.

That’s basically it! Any help will be immensely appreciated.


You can achieve this in different ways.

One way to do this would be to have an “Occupied until” field in your Barber Data Type. Every time an appointment is created it adds the number of minutes that specific appointment usually takes.

So let’s say the current time is 9:00 AM, shop just opened. Someone books a regular haircut. Whichever barber that person chose will now have Occupied until field of 9:30.

If someone else enters the shop at 9:15 and also wants a regular haircut from that same barber, you will add 30 minutes to the Barber’s “Occupied until” time. So now the barber is Occupied until 10:00 AM.

When they close shop, their occupied time will stay at like 6 PM until the next morning, so you have to reset it everyday. Choose your method:
-A button that every barber has to click, kind of like a “check-in”, which will reset the occupied time to Empty.
-A button that the Head barber clicks that will reset all the barbers’ “Occupied Time”
-Or a backend workflow that will reset each barber’s “Occupied Time” at like 12AM (recommended!)

Workflow for "Occupied Time"
you’ll need 2 workflows with different sets of conditionals to change the occupied time of the barber.
Workflow 1: When this barber’s “Occupied Time” is empty (Shop just opened), set their occupied time to current/date time + however many minutes the appointment takes
Workflow 2: When this barber’s “Occupied Time” is not empty, set their occupied time to the current “Occupied Time” + however many minutes the appointment takes.

Now to let the customers know the wait times:
-Available Now = When the current date/time is bigger than the barber’s “Occupied Until” time.
-Available Soon = When the current time minus 15 minutes is bigger than barber’s “Occupied Until” time
-Available Later = When the current time minus 15 minutes is smaller than barber’s “Occupied Until” time

Workflow to Notify the Barber
So I’m assuming you want to notify the Barber whenever a customer books a new appointment similar to an Uber driver’s notification right?
-To achieve this, you need to create a new data type called notification
-It will have a field called “Barber” to refer to who needs to get the notification
-It will have a field called “Seen” to remove the notification once the barber has seen it. Give it default value of “no”

So now, whenever the customer books the appointment, create a notification and send it to the barber they chose.

Display in Order
To display the Barbers in the repeating group in the order, available-soon-later, you’ll have to do this search:
-This Barbershop’s barbers sorted by “Occupied Time” descending = No

Hope this helps, let me know!

Cheers :slight_smile:

This is great! Thanks for taking the time. I believe there’s one thing I Forgot to mention tho, barbers usually use an appointments app but these apps lack walk-ins appointments; which is why we’re making this one.

With the method you described we assume they’re only unavailable when booked through our walk-in app, but they have booked appointments from their respective appointments apps.

Taking this into consideration, would it be better to create a system which allows them to manually enter their available time slots? Or maybe just connect our app to their appointments app or calendars through an API call?

Let me know your thoughts on this.

Thanks again!

Well, for a smoother experience, we have decided to add both functionalities, appointments and walk-ins. Will try my best with the method you provided and will let you know how it goes. Thanks!