Skip to main content

Your online reservations page

https://www.restapro.es/c/your-slug is where your customers reserve. No login, no downloads, mobile-first.

The URL

  • Slug = unique identifier of your restaurant (you picked it during onboarding).
  • Shareable on WhatsApp, Instagram bio, Stories, Google Business.
  • Also available as a QR and as an embeddable iframe.

Reservation flow

  1. Date and party size → calendar and stepper.
  2. Time → grid of available slots. Each slot shows "1 table" / "2 covers free".
  3. Details: name, phone, email (optional depending on your config), notes.
  4. Confirm → reservation created with reference code.

Validations

  • Phone: regex ^[+()\d\s-]{6,20}$. Accepts +34 600 123 456, 600123456, (+34) 600-123-456. Rejects letters.
  • Email: standard regex name@domain.tld. Optional if your config allows it, but recommended for sending the confirmation.
  • Name: 2-120 characters.
  • Party size: your configured min/max.

Client-side validations match server-side ones - no surprises when you click "Reserve".

Confirmation

Once the reservation is created, the customer sees:

  • Reservation confirmed - reference code (e.g. RP-2026-A4F2).
  • Add to calendar button (downloads .ics for Apple Calendar / Google Calendar / Outlook).
  • Copy reference to clipboard.
  • Share (native navigator.share button with clipboard fallback).

Customer confirmation email

If they left an email, they get automatically:

  • Subject: "Reservation confirmed at [restaurant]"
  • Details: date, time, party size, reference code.
  • Edit/cancel link (HMAC-signed, valid until shortly before the reservation).
  • Restaurant contact details (phone, address, map).

Email/notification to the restaurant owner

To the addresses configured in Settings → Email → Alert emails (provided you have Notify when someone reserves enabled):

  • An email with all reservation details lands in the inbox.
  • If the customer has >= 2 prior no-shows in 6 months, an additional special high_risk_customer alert email is sent.
  • In the backoffice, every team device gets a real-time toast with sound (configurable).

Edit or cancel

The customer gets a unique link in their email. When they open it:

  • They can change date/time if there's availability.
  • They can change party size (within the allowed range).
  • They can cancel.

The link expires automatically near the reservation time (configurable).

No availability

If there are no slots for the date:

  • Message: "No times available for that date."
  • Automatic suggestion of the next available date (RestaPro searches the next 7 days).

Service paused

If you have a service pause active for that day and every service is paused:

  • Specific message: "Fully booked for today. We'll see you without a reservation - drop in whenever."
  • Call the restaurant button (with your phone number).

If only one slot is paused (e.g. lunch), the others keep showing slots normally.

Theme and branding

The page respects your settings:

  • Restaurant logo and cover.
  • Visual theme picked in Menu → Theme.
  • Primary colors and typography.
  • Tagline.
  • Address, phone, Google rating if connected.
  • Buttons to open Google Maps, Instagram, TikTok if you've configured the links.

Tracking

Every visit to /c/:slug is recorded in page_views. The conversion to a reservation is recorded with source web_page (vs web_embed if it came from the iframe). You can see the funnel in analytics.

ESENCA