Skip to main content

AI1 — Guest Concierge Chat Specification

Surface: Consumer Mobile + Guest Portal Web + Tenant Booking Web (pre-arrival) Phase: P2 / R2 (MVP) → R3 (full) Feature flag: guest-concierge-chat Competitive reference: Notion AI, Intercom Fin, Akia, Whistle, Mews Assistant


1. Overview

The guest concierge chat is a property-knowledgeable AI assistant available to guests during their booking research and stay. It is powered by ai-gateway-service with RAG (retrieval-augmented generation) over the property's knowledge base, and escalates to a human staff member when the AI cannot confidently answer.

Persona: "Your personal hotel concierge" — warm, helpful, professional. Not a generic chatbot; knowledge is scoped to the specific property the guest is viewing or booked at.


2. Surfaces and entry points

SurfaceEntry pointPhase
Tenant booking webChat icon in bottom-right corner (sticky)R2
Consumer mobile"Chat with us" in property detailR2
Guest portal /manage"Ask us anything" in home screenR2
Pre-arrival email"Message the hotel" link in EM-01R3

3. Knowledge base

The AI's knowledge is drawn from (RAG, not fine-tuned):

  • Property description and amenities (from theme-config-service)
  • Room types, bed configurations, inclusions
  • Check-in/out policies, pet policy, cancellation policy
  • F&B: restaurant hours, menu highlights, room service hours
  • Local recommendations (from AboutLocal block content)
  • FAQ (from FAQ block content)
  • Active promotions (from OfferStrip block content)

Out of scope for AI: Pricing (always defer to booking engine), availability (defer to search), reservation-specific questions for non-authenticated guests (defer to guest portal with login).


4. Conversation UX

4.1 Chat widget anatomy

┌─────────────────────────────────────────────┐
│ [Hotel Kabul Palace Concierge] [✕ Close] │
├─────────────────────────────────────────────┤
│ │
│ [AI bubble] │
│ "Welcome! I'm your Hotel Kabul Palace │
│ concierge. How can I help you today?" │
│ │
│ [Guest bubble] │
│ "Do you have a pool?" │
│ │
│ [AI bubble] │
│ "Yes! We have a rooftop pool open │
│ daily 07:00–22:00. Heated in winter. │
│ Towels provided." │
│ │
│ [Suggested replies:] │
│ [Is the pool included?] [Pool rules?] │
│ │
├─────────────────────────────────────────────┤
│ [Type your question...] [Send ↑] │
└─────────────────────────────────────────────┘

4.2 Message types

TypeDescription
TextStandard prose response
Rich cardProperty photo + name + key fact (e.g., room recommendation)
Action button"Book this room", "Request late checkout" (sends to booking funnel or service request)
Escalation"I'll connect you with a staff member. Typical response: 5 min."
Provenance card"Here's where I got this answer: [source citation]"

4.3 Suggested replies

The AI generates 2–3 quick-reply suggestions after each response. Displayed as pill buttons below the AI bubble. Tap → sent as guest message.


5. Language auto-detection

The guest types in any language; the AI detects the language and responds in the same language. If the language is Pashto or Dari, the AI responds in that language (RAG content may need translation at index time).

Fallback: If the AI cannot confidently respond in the detected language (e.g., a rare dialect), it responds in English and adds: "I can also connect you with a staff member who may speak your language."


6. Escalate-to-human

Triggered when:

  • AI confidence < threshold (configurable per tenant: 70% default)
  • Guest explicitly asks: "Talk to a person", "I want to speak to someone"
  • Topic is out of scope (reservation modifications, complaints, pricing disputes)

Escalation flow:

  1. AI: "I'd like to connect you to one of our team members. They'll reply within [X min]. Can I take your name?"
  2. Guest provides name (or auto-populated from auth)
  3. Conversation thread transferred to staff in operator desktop → Messaging module
  4. Staff sees full conversation history + AI's last confidence score
  5. Staff replies → message delivered to guest in same chat widget
  6. AI re-enters thread when staff marks issue as resolved (optional; tenant-configurable)

7. Message persistence

  • Authenticated guests (guest portal): conversation history stored in messaging-service; visible in guest portal "Messages" tab and in operator desktop
  • Unauthenticated guests (booking web): conversation stored in sessionStorage (cleared on tab close); if guest books and creates an account, session conversation is migrated to their account

8. AI provenance card

When the AI cites a specific policy or fact, a small provenance card is shown below the response:

Source: Hotel Kabul Palace — Policies & FAQ ↗

Tapping expands to show the full source section. This builds guest trust and allows easy correction if the source is outdated.


9. Security and content guardrails

  • No PII of other guests (AI has no access to reservation data of other guests)
  • No financial advice (pricing always deferred to booking engine)
  • No medical/legal advice
  • Profanity filter: auto-redacted in both directions
  • Rate limiting: 60 messages per guest per hour (prevents abuse)
  • Jailbreak detection: ai-gateway-service guardrail layer

10. Accessibility

  • Chat widget fully keyboard accessible (Tab to open, Tab through messages, Enter to send)
  • Screen reader: aria-live="polite" on message list; new messages announced
  • Messages have explicit role="log" on the conversation container
  • Suggested reply buttons have aria-label="Suggested reply: [text]"

References