My partner and I have been building an end-to-end booking system for a real client (Intervale Mountain Lodge), combining a custom website with a GHL-powered CRM backend. Wanted to share progress since it's been a solid case study in real-world automation. What my partner built ( @Malik Ahmed )(website side): - Real-time pricing engine — nightly rate, cleaning fee, pet fee, taxes, deposit, all calculated server-side - Two-way Airbnb calendar sync (live availability in both directions) - Multi-step guest qualification form, fully connected to the backend - Password-protected guest portal — door codes, WiFi, house rules, all served securely from the database - Full UI/UX redesign + performance optimization - CRM webhook connecting the site directly into GoHighLevel What I've been building (automation side, in n8n + GHL): ✅ Workflow 1 — New Inquiry → Owner Notification (done and live) Every time a guest submits an inquiry on the site, it automatically: - Creates/updates their contact in the CRM - Creates a new "booking opportunity" with all their stay details - Sends the property owner an SMS with a full summary — guest name, dates, group size, notes, email, and phone — so he can review inquiries the moment they come in Spent a good chunk of time debugging this one — token/location scoping issues, a hardcoded contact ID bug that was silently routing owner notifications to the wrong person, JSON parsing errors. Nothing glamorous, but the kind of stuff that actually breaks production automations if you don't catch it in testing. 🔄 What's next — Workflow 2: Approve/Reject Logic When the owner approves a booking: auto-generate an invoice, attach a Stripe payment link, send it to the guest, move the pipeline stage automatically. When he rejects it: send a polite decline message and mark it closed. 🔜 After that — Workflow 3: Payment Confirmation → Booking Locked Once payment clears: lock the dates on the calendar, confirm the booking with the guest, and it all syncs back to Airbnb automatically.