AI Hotel Receptionist

Real Estate & Travel · React + Node (Express) · 8 @molecule/* packages

Multilingual AI voice receptionist + PMS: the phone agent answers in the caller's own language and books available rooms — plus rooms, rates, reservations, and guest management

Open in Molecule

Try it

Opens instantly. Runs on sample data, so changes reset on reload.

Open preview in a new tab ↗View workspace ↗

What is inside

Screens (17)

  • Landing /
  • Login /login
  • Signup /signup
  • ForgotPassword /forgot-password
  • ResetPassword /reset-password
  • Dashboard /dashboard (signed in)
  • Reservations /reservations (signed in)
  • ReservationDetail /reservations/:id (signed in)
  • NewReservation /reservations/new (signed in)
  • RoomsRates /rooms (signed in)
  • Guests /guests (signed in)
  • GuestDetail /guests/:id (signed in)
  • VoiceAgents /voice-agents (signed in)
  • Calls /calls (signed in)
  • CallDetail /calls/:id (signed in)
  • CallSimulator /simulator (signed in)
  • Account /account (signed in)

Data model (11 tables)

  • room_types — id, name, description, occupancy, base_rate_cents, amenities, created_at, updated_at
  • rooms — id, number, floor, room_type_id, status, notes, created_at, updated_at
  • rate_plans — id, name, room_type_id, weekday_adjustment_percent, weekend_adjustment_percent, seasonal_override_cents, seasonal_start, seasonal_end, …
  • guests — id, name, email, phone, preferred_language, notes, stay_count, created_at, …
  • reservations — id, guest_id, guest_name, guest_contact, room_type_id, room_id, check_in, check_out, …
  • voice_agents — id, name, phone_number, languages, voice_by_language, upsell_enabled, max_discount_percent, transfer_to_human_on, …
  • calls — id, voice_agent_id, user_id, direction, detected_language, started_at, ended_at, duration_seconds, …
  • call_messages — id, call_id, role, text, language, created_at
  • call_actions — id, call_id, tool, arguments, result, created_at
  • devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
  • payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …

API (12 handlers)

  • \_seed api/src/handlers/_seed.ts
  • availability api/src/handlers/availability.ts
  • calls api/src/handlers/calls.ts
  • dashboard api/src/handlers/dashboard.ts
  • guests api/src/handlers/guests.ts
  • rate-plans api/src/handlers/rate-plans.ts
  • reservations api/src/handlers/reservations.ts
  • room-types api/src/handlers/room-types.ts
  • rooms api/src/handlers/rooms.ts
  • speech api/src/handlers/speech.ts
  • voice api/src/handlers/voice.ts
  • voice-agents api/src/handlers/voice-agents.ts

Built from 8 @molecule/* packages

Browse all @molecule/* packages →

Required secrets

  • DATABASE_URL PostgreSQL connection string

The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing