Booking requests are how existing clients request additional service from within their portal. Instead of calling or texting, they fill a short form; you approve or decline; approved requests auto-schedule.
Client side: requesting a visit
- Client logs into the portal and clicks "+ Request a visit."
- Picks a request kind: one-time, recurring, or issue report.
- Picks a service (from your catalog) and a preferred date window.
- Optional notes and photo attachment.
- Submits. Request is queued as
pending.
Owner side: the queue
The nav shows a Requests link with a badge showing the number of pending requests. Click to see the queue:
- Each request shows the client, kind, requested service, preferred window, and any notes.
- Two action buttons: Approve and Decline.
Approving a request
Click Approve. The system:
- Looks for an existing active ClientService matching the request's service.
- If found, schedules a new Visit against that ClientService on the preferred date.
- If not found, creates a one-time ClientService (so the visit has a parent) and a scheduled Visit.
- Fires the
booking.approvedtemplate to the client in their preferred language.
Declining a request
Click Decline. An optional reason textarea opens. Submit to dismiss the request. The booking.declined template fires to the client with the reason visible.
Decline with a reason even if the reason feels awkward. "We don't have capacity that week — can we do the following week?" reads better than silence. Clients appreciate specificity.
Approval of a booking request does not go through quoting. The price comes from the ClientService. If the client is requesting something non-standard (a one-time big cleanup), consider sending a quote instead of auto-approving — the quote gives you price flexibility.