The guest portal
Updated on 2026-04-22
Every guest receives a personal portal link that covers three phases of their stay — on a single URL. Pre-arrival, during the stay, and post-stay.
How does the guest get the link?
Automatically. As soon as the booking moves to CONFIRMED (first payment), booking.booking_url is generated via temporarySignedRoute. This link is then included in:
- The booking-confirmed email (CTA block "Open my portal")
- The booking-fully-paid email (same CTA)
The link works until 1 day after departure. After that, 403.
When can the guest open the portal?
At the earliest 2 days before arrival (configurable via the bw_prearrival_portal_days setting). Before then → 403 with an explanation of when it does open.
What does the guest see in each phase?
📅 Pre-arrival (2 days before arrival)
- Payment status — total / paid / outstanding, with a button to pay the remaining balance online
- Filling in details:
- Required: first name, last name, mobile (for WhatsApp), address, postcode, city, country
- Optional: company name, VAT number, emergency contact
- Data is saved on the Debtor
- Request a check-in time — with a time picker + optional note. On submit, you receive a Telegram with Approve / Decline buttons. Click → the booking is updated, a badge appears in the Room overview
- Breakfast choice per morning — always visible, not only from check-in
- General information (WiFi, parking, check-in hours, check-out)
🏠 During the stay
Everything from pre-arrival stays visible, plus:
- 🔐 Door unlock via Home Assistant webhooks (front door + individual rooms)
- 🍺 Honesty bar — guest taps products, they appear live on their invoice
- 💳 Live invoice with the current balance
👋 Post-stay (until departure + 1 day)
- ⭐ Google Reviews CTA (link from the
google_reviews_urlsetting) - Final invoice + any remaining payment
- Honesty bar + wellness upsells are hidden (they have left anyway)
Privacy
- Signed URL — not guessable
- Expires automatically
- Can be invalidated per booking by admin (set
booking_url = null) - The housekeeper has a separate portal that does NOT show guest details (see the Housekeeping section)