An in-house booking and contract system
Clients book their own intake call and accept contracts digitally. Built in Laravel, without third-party plugins, trackers or subscriptions.
- 5 steps
- from choosing a service to a confirmed booking
- 0
- third-party scripts or trackers on the site
- 70+
- automated tests that run on every change
The goal
Two things had to improve. Scheduling an intake call by email quickly takes several messages back and forth. And a quote that gets an "agreed" by email is hard to verify afterwards: which version was accepted exactly, and by whom?
The solution had to live inside the website itself, in the same visual style, without an external scheduling platform or signing service with a monthly subscription.
Booking appointments
- A five-step wizard: service, type of call, date, time and details. From the homepage you can start straight away with a service.
- Only genuinely free slots can be picked, based on working hours, at least 24 hours ahead and days blocked in the dashboard.
- The database allows only one confirmed appointment per time slot, even when two people book at the same moment.
- The confirmation includes a calendar invite. Cancelling takes two steps, so an email scanner that opens links never cancels anything by accident.
Accepting contracts digitally
- When sent, a contract version is frozen and recorded with a SHA-256 hash. Any later change always creates a new version.
- The client opens a personal link and accepts with a verification code. Name, role, time and the hash of the version are recorded.
- Every version gets a PDF, and a log tracks when the contract was sent, viewed and accepted.
- After delivery, a review request and a maintenance offer follow automatically.
The admin side
Everything comes together in one overview: today's and upcoming appointments, new questions, website check requests and a funnel that shows where visitors drop off. That measuring happens without cookies and without data that could identify a visitor.
Try it yourself
This system runs on this website. When you book an intake call, you are using it.