Skip to content
All work

1 min read

Shaza: an AI agent that answers hotel guests and books rooms

  • ClientOwn product, sold to hotels
  • RoleSolo, end to end
  • When2026
  • 20+

    confirmed reservations

  • 81%

    conversation-to-booking rate

  • 3

    hotels using it

Hotels in Morocco get booking questions everywhere, and staff answer by hand. Shaza answers on WhatsApp, Booking.com, Airbnb and email. It checks live availability with the hotel's channel manager and books the room.

What I built

  • Agent workflow

    Self-hosted n8n: messages in from every channel, tool calls to the channel manager, reply and reservation out.

  • Hotel rules

    A system prompt per hotel: rooms, prices, policies, what to confirm, when to hand off to staff.

  • Model split

    Claude Sonnet reasons and calls tools. Claude Haiku writes the replies. Cheaper, still natural.

  • Staff dashboard

    Next.js admin on Drizzle and Neon Postgres.

How it's built

Every message goes through one n8n workflow. Sonnet decides and checks availability, Haiku writes the reply. The model only repeats what the channel manager returned.

Booking flow
  1. Guest messageWhatsApp, Booking.com, Airbnb or email
  2. n8n workflowSelf-hosted
  3. Claude SonnetReasoning and tool calls
  4. Channel managerLive availability
  5. Claude HaikuWrites the reply
  6. Reservation confirmedReply in the same thread
Hotel staff
  1. Next.js dashboard
  2. Drizzle
  3. Neon Postgres
  4. Staff take overWhen the prompt says hand off

Hard parts

  • Never promising a room that isn't free.

    CallAvailability comes from the channel manager, never from the model.

  • Replies that are natural and cheap at once.

    CallSonnet for reasoning and tools, Haiku for the guest-facing text.

What's next

Real guest conversations as a regression set for prompt and model changes.

Stackn8n (self-hosted)ClaudeWhatsAppBooking.comAirbnbEmailNext.jsDrizzleNeon Postgres