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
- Date and party size → calendar and stepper.
- Time → grid of available slots. Each slot shows "1 table" / "2 covers free".
- Details: name, phone, email (optional depending on your config), notes.
- 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
.icsfor Apple Calendar / Google Calendar / Outlook). - Copy reference to clipboard.
- Share (native
navigator.sharebutton 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.