Back to blogHelp

Bookings coming from your public page: how they show up, notifications and what to do next

When a customer books from your public link, BookHero does four things back-to-back: confirms the booking, creates (or reuses) the client record, drops it on your calendar in real-time, and pings you by email (plus WhatsApp on Pro+). This guide walks through what you see on the owner side, how to react to your first online booking, and how this differs from creating a booking manually.

Published on 17 May 2026 8 min read

Your public page is BookHero's acquisition engine: the link you share on Instagram, on Google Business, on the QR code in the shop window. The customer opens it, picks a service, picks a time, drops name and phone, gets the confirmation email. You, on the other side, watch the booking show up on the calendar without lifting a finger.

This guide shows you behind the scenes: what happens between the customer's click and the confirmed booking on your end, which notifications fire, what to do when you get your first online booking, and where the subtle differences sit between a booking you create by hand and one coming from the public page.

The customer flow: 5 steps from click to confirmation

When the customer opens your link, they see a storefront with your brand colour, logo, and the service list grouped the way you set it. From there to a confirmed booking, it's 5 short steps:

The customer sees your storefront with your colour, name, and service list. Tap a service and the booking flow kicks off.
  1. Pick a service (or several)

    The customer taps a service. They can stack more than one in the same booking (cut + beard in one sitting). The total duration and price sum live.

  2. Pick an employee (or 'No preference')

    List of employees eligible for that service (the Employees · Services matrix decides who shows up). 'No preference' triggers auto-assign on our side: random, round-robin, or least-loaded day, whichever you picked in Settings.

  3. Pick a date and time

    Strip of free slots on the calendar, within 60 days ahead. The customer only sees slots that respect business hours, employee hours, time blocks, time-off, conflicts, and the minimum-advance window (booking_min_hours).

  4. Drop details

    Name, phone in international format (+351...) and email are all required. Free-text note optional. The phone number is the key that identifies the client in your database.

  5. Confirm

    Final button. The booking is confirmed on the spot (no approval flow) and three effects fire: email to the customer, notifications to the owner, and the booking appears in your calendar in real-time.

What you get when someone books online

On your side, the booking isn't hidden and doesn't need approval. Three things happen in parallel the moment the customer clicks 'Confirm':

How the booking appears on the calendar

A booking from the public page is identical to one you create by hand: same status ('Confirmed'), same colour (the employee's), same edit options. There's no special tag marking it as 'online'. When you open the detail panel, you see exactly what you'd see for a manual booking.

Day view after two online bookings come in ('accent' highlights them for a few seconds). The 09:00 was manual; visually they're identical.

Tap the booking and the detail panel slides in from the right. Everything's there: client info, service list, total, note the customer left. From here, the actions are the same: reschedule, cancel, jump straight to checkout.

Detail panel for a booking coming from the public page. The customer's note shows on the 'Notes' tab and you can edit it.

When you get your first online booking: what to do

The first few days after publishing your public page tend to be noisy. You don't need to do anything special: the booking is confirmed and the customer already got the confirmation. But it pays to run through this checklist to avoid friction:

  1. Confirm the email landed

    Look for the 'New booking' email in your inbox. If it didn't come, go to Settings · Notifications and check that 'Internal booking confirmation by email' is on. Emails can take up to a minute to arrive.

  2. Open the calendar and double-check the slot

    Make sure the booking is on the right employee, at the right time, with the expected duration. If the customer chose 'No preference', the system assigned for you.

  3. Read the customer note

    If the customer left a note (allergy, preference, first visit), it's on the 'Notes' tab of the panel. Worth reading before they show up so you avoid surprises.

  4. Check the client record

    Go to Clients and search by phone. If it's a new client, BookHero created the record automatically. If they existed already (phone matches), it reused the record and added to their history.

  5. Decide whether to reach out

    Public-page bookings don't need extra confirmation (the email already confirms). But for a new client, a short WhatsApp saying 'we got your booking' works wonders as the first touchpoint of the relationship.

  6. If it's a wrong fit, cancel with notification

    Customer booked a service you don't do for them? A time you can't honour? Tap the booking, 'Cancel appointment', and BookHero sends an automatic email to the customer explaining.

Public booking vs manual booking: the differences

Functionally and technically, they're the same entity (same table, same status, same panel). But there are subtle differences in the creation flow and what each side is allowed to do:

Public booking vs manual booking
Public page (customer)Manual (you, in the calendar)
Who creates itThe customer, alone, via the public link.You (or manager/employee with permission).
Allowed windowRespects booking_min_hours (min lead) and the 60-day horizon.No limit: you can even book in the past to log past services.
Outside employee hoursSlot doesn't show. Customer can't book.Warns but you can proceed with confirmation. Internal override.
New clientAuto-created with name + phone + email, all required.Can create with just name + phone, or leave anonymous walk-in.
Customer notificationAutomatic confirmation email with cancel/reschedule link.Email only if the client has email on file and the setting is on.
Owner notificationInternal email + WhatsApp (on Pro+).None (you just created it).
Initial status'Confirmed' immediately. No approval.'Confirmed' immediately. No approval.
Free plan capBlocks at the 31st: public page shows 'Fully booked'.Blocks at the 31st: booking sits as 'Pending' until upgrade.

New or existing client: how the phone decides

Phone is the unique key for clients in BookHero. When someone books from the public page, before creating the booking the system asks the database: 'is there anyone with this +351 912 345 678?'. If yes, it reuses that record; if no, it creates a fresh one.

  • New client: BookHero creates a row in 'clients' with the name, phone, and email the customer typed. They show up in your client list immediately.
  • Existing client (phone matches): the booking links to the existing record. The name isn't always overwritten, but the latest email is kept so the confirmation reaches them.
  • History always accumulates: visit count, total billed, and 'last visit' refresh on the client panel after each booking.

Auto-assign: how the system picks an employee for 'No preference'

When the customer picks 'No preference', BookHero has to decide which employee gets the booking. The rule is configurable in Settings · Bookings · Auto-assign, and you have three options:

  • Random: picks one of the eligible employees at random. More balanced long-term, less predictable day-to-day.
  • Round-robin: cycles sequentially through the eligible employees. Keeps a pointer that advances on every booking. More predictable, fairer distribution.
  • Least loaded day: assigns to the employee with the fewest booked minutes on that day. Useful for balancing workloads.

Booking window: what the customer can (and can't) book

The public page respects three configurable windows on your business. These rules only apply to the public flow; when you create a booking yourself from the calendar, you can ignore them.

Windows the customer respects
SettingWhat it doesDefault
Minimum advance (booking_min_hours)How many hours before start is the cut-off. Slots inside that window aren't shown.0 (customer can book for right-after-now, if a slot is free)
Reschedule minimum advance (reschedule_min_hours)Same logic, applied to reschedules via the email link.1 hour
Cancellation minimum advance (cancel_min_hours)Window for the customer to cancel via the email link. Below it, they have to contact you.1 hour
Horizon (not configurable)How far ahead the customer can book.60 days

Free plan: a shared monthly cap

BookHero's Free plan gives you 30 confirmed bookings per month. That limit is shared between public-page bookings and manual bookings you create in the calendar. Both count toward the same bucket.

  • Under 30: everything works normally on both paths.
  • Exactly 30: the 30th booking still goes through. You get an email warning that you've hit the cap.
  • From the 31st (public page): the public page shows 'Fully booked'. The customer is invited to contact you directly.
  • From the 31st (manual): the booking is created but sits as 'Pending' until you upgrade. No data is lost.
  • Rescheduling (via the customer's email link) doesn't count as a new booking: the original slot is returned and the new one replaces it.

Frequently asked questions

I got a booking email but I don't see it on the calendar. What now?

You're probably looking at the wrong day. Check the toolbar's current date. If it's still missing, refresh the calendar (most of the time it's a real-time glitch). If it persists, open /dashboard/calendar?date=<date> to force a reload.

Can I block new clients (only accept existing ones)?

Not today. The public page accepts any client. What you can do is set a high minimum advance (e.g. 48 hours) to give yourself time to vet new bookings, or disable the public page in settings and go back to bookings-by-contact-only.

The customer booked a time I can't honour. Can I reschedule for them?

Yes. Open the booking on the calendar, tap 'Book again' and pick the new date/time. You have the option to notify the customer automatically by email (and WhatsApp on Pro+). There's no silent reschedule: the system always pushes you to notify.

The customer cancelled via the email link. How do I know?

The booking changes colour on the calendar (greyed with a strikethrough) and the status becomes 'Cancelled'. It's still visible in the List view, and the slot is freed up for other bookings. If you want to be notified, go to Settings · Notifications and enable 'Cancellation by email'.

I have two employees doing the same service. How do I control who gets the customer when they pick 'No preference'?

In Settings · Bookings · Auto-assign, you pick between random, round-robin (cycles sequentially), and least loaded day. For a fair short-term distribution, round-robin is what 80% of businesses pick. If you want to balance workload (e.g. João already has 6 bookings today, Rita only 2), 'Least loaded day' favours Rita automatically.

Can I see where the booking came from (direct link vs Instagram)?

BookHero doesn't track traffic source today. The booking doesn't distinguish whether the customer came from your Instagram, Google, or the direct link. For that level of analysis, add UTM tags to the link you share and read them in Google Analytics or equivalent.

Next steps

Public-page bookings are the heart of BookHero, and the better the page, the better the bookings. These guides cover the logical next steps: