Manual Booking (Desk)
The front desk and customer support team need a fast way to create bookings during a phone call or a walk-in. This is the same booking model — just a different door in — optimised for someone who is typing while talking.
Target: a competent agent should close a manual booking in under 90 seconds end-to-end. Every field has a keyboard shortcut; the most common payment method is one click.
Who can create one
| Role | Can create manual booking? | Notes |
|---|---|---|
| Owner | ✅ | Across all owned properties |
| Manager | ✅ | Across assigned properties |
| Front-desk / Customer Support | ✅ | Only at their assigned property |
| Read-only | — | Can view but not create |
| Public user / Guest | — | Uses the public flow |
The manual booking form
Flow under the hood
Agent picks property + dates + room type
Availability + price quote rendered live as fields change.
Inventory hold
The form opens with a 10-min server-side hold on the room type / dates. Prevents two agents (or an OTA sync) from competing for the same inventory.
Guest match-or-create
As phone is typed, we search existing guest records. If matched, autofill name + email + notes. If not, create a new guest on save.
Payment captured (any method)
One click per common path: cash, UPI ref, card swipe receipt number, or generate a Razorpay link.
Booking confirmed
Status set to
confirmed(orpartialif not paid in full). Confirmation email + SMS fired. Inventory updated. Audit log entry written.
Special agent abilities
Manual price override
Agent can override the auto-calculated total ± 20 %. Above that, a manager has to approve. Always logs the original price + override.
AuditedWalk-in same-day
Skip guest email if not provided. Use phone as the only contact. Booking still gets a confirmation SMS.
Block dates for a guest
Create a "house use" or "complimentary" booking that consumes inventory but has zero amount. Tagged distinctly.
Manager+Group booking
One guest, multiple rooms, single bill. Each room can be a different type. Acts as a parent booking with children.
Add to existing stay
Extend a current guest's stay by N nights. Re-prices the extension, creates a child booking linked to the original.
Phone OTP capture
For first-time guest with email — optional "send OTP to guest's email to confirm reservation". Reduces no-show rate.
API contract
{
"property_id": "prp_…",
"room_type_id": "rt_…",
"rooms": 2,
"check_in": "2026-06-15",
"check_out": "2026-06-18",
"guests": { "adults": 2, "children": 2 },
"guest": {
"name": "Ramesh Kumar",
"phone": "+919911223344",
"email": "ramesh@example.com"
},
"source": { "channel": "phone", "agent_id": "usr_…" },
"price_override": null,
"initial_payment": {
"method": "cash",
"amount": 10000,
"reference": "Receipt #4421"
},
"due_by": "2026-06-14",
"notes": "Requested a high-floor room. Anniversary stay.",
"idempotency_key": "ux_local_4421"
}
// Response — 201 Created
{
"booking": { "id": "bk_…", "reference": "ABC-24806", "status": "partial" },
"emails_queued": ["booking_confirmed_guest"],
"sms_queued": ["booking_confirmed_sms"]
}
Best practices
- Always capture phone. Email is optional but phone is the lifeline for guest comms in India.
- Always tag the channel. "Phone vs walk-in vs WhatsApp" — owners want this for marketing attribution.
- Default to "send confirmation". The agent must explicitly opt out. Reduces "I never got my confirmation" complaints.
- Don't accept ₹1 bookings. The total must be ≥ a configured minimum, or the manager must approve.