2026 · Case Study

Villa Elena — Booking & Administration System

Every booking channel in one file — from first inquiry to final balance

Client file panel of the Villa Elena booking and administration system
01

Context

A historic villa near Rome takes bookings for stays, weddings and events. The same reservation lived in five places at once — an inbox, a spreadsheet, the website calendar, the rental portals and the owner's memory — and none of them knew about the others. Dates could read free in one place and taken in another, and a contract sent but never signed was nobody's alarm.

02

Objective

One place where a reservation is true. Every request, whatever channel it arrives from, becomes a single file carrying the contract, the charges, the guest records, the staff tasks and the whole conversation — the system holding everything that must not be forgotten, the decisions that cost money left to people.

03

Results

Requests from the website form, the online store, Airbnb, Vrbo and plain email land in one list with one workflow. Availability stays aligned with the website calendar and the external portals, so dates no longer contradict each other. Contracts are built from data already on file instead of retyped, and every charge sits on the reservation — deposit, balance, city tax, damage deposit, extras — each with its own open amount. Eleven automatic checks, running hourly or daily, raise stalled files, balances coming due, unsigned contracts and missing guest records before anyone has to remember them, and every change of state is recorded with its author.

Solution

Every inquiry — from the website form, the online store, a rental portal, the office entering it by hand, or plain email — becomes one client file that follows the reservation from first contact to final balance through a declared sequence of eleven states, each step recorded with its author and its reason.

Inside the file: the full conversation history, a contract built from the data already there and filed back once signed, charges tracked line by line — deposit, balance, city tax, damage deposit, extras — each with its own open amount and settled by bank transfer, the guest records Italian law requires before arrival, and a private area the client reaches through a personal link, with no password to remember, in Italian or English, readable on a phone.

Around the files, the system keeps the villa’s daily machine running: availability held in step with the website calendar and the external portals, automatic replies and follow-ups, a queue of outgoing messages that retries what fails, staff tasks with checklists and recurring rules, a wedding album and a dedicated mini-site for each couple, and a full-screen command centre that opens on what needs doing today.

The screens were never the hard part. The same stay can arrive from four channels at once, so the system keeps unique links and external identifiers and refuses to create a duplicate. External services resend the same notification, so every incoming event is checked for authenticity and executed exactly once. Deposits arrive in instalments and cannot be recorded twice. A guest double-clicking an extra never produces two orders. One malformed message can no longer block the mailbox reader for good. Guest document data is encrypted at rest and revealed only where it is needed. And a reservation cannot be closed while money is still open.

Roughly 90,000 lines of custom code across seven programs that behave as one: the public site, the booking system, the office command centre, operations and maintenance, the wedding album and direction room, the couples’ mini-sites, and the guest welcome guide. The booking system keeps a database of its own — 37 tables sitting alongside the website’s rather than rewriting them — versioned through fifty numbered migrations and refined over 542 recorded changes.

Interactive demo

Walk through a booking, from request to check-out

Ten guided steps through the real workflow — send the contract, record the deposit, block the dates, close the file. Sample data only: nothing you do is saved.

Start the guided demo →