Booking Concierge
A multilingual chat concierge that books tastings and workshops on a real calendar and cannot double-book.
Open the evaluation boardProblem
Small businesses lose bookings to slow replies. Naive booking bots confirm slots that are already taken.
Try it live
Book a cupping session in the phone frame, in English or a second language. Watch the slot move from held to booked on the live calendar. Open a second tab and try to take the same slot.
Proves
Tool calling under strict schemas, real-time systems, and concurrency handled by the database.
Signal chain
- detect language
- collect details
- check availability
- hold slot, 5 min
- confirm
- send confirmation
Stack
Django Channels · WebSockets · Postgres range types · Redis · Vue · installable PWA
Engineering highlights
- A Postgres exclusion constraint on booking time ranges makes a double booking impossible, even if the model calls the tool twice.
- A state machine decides which tools the model may call at each step, so it cannot confirm a slot it never held.
- Idempotency keys on confirm, automatic hold expiry, and a handoff to a person with the full transcript.
| Operating limit | Value |
|---|---|
| Messages per session | 30 |
| Slot hold | 5 min |
| Demo calendar reset | Nightly |
| Model calls per booking (est.) | 6–10 |
| Conversations per visitor per day | 10 |
| Visitor data kept | 24 h |
Status The evaluation board for this part is open. It starts on curated samples, and your own text runs live within your daily allowance. Open the evaluation board