Abrar Ahmed
All selected work

Hospitality AI

AI guest assistant: resolving property context before the first reply

Client
Confidential short-term rental operator
My role
AI and backend engineer

I worked on a multilingual WhatsApp assistant for more than 60 properties, where reliable guest and property identification mattered more than generating a fluent response.

Architecture and interface for a multilingual AI guest assistant.
60+properties supported
83%autonomous resolution
<3sp90 first response

The system I joined

Routine guest questions were documented in Airtable, but every answer depended on identifying the correct booking, property, and unit from an incoming phone number that was not always reliable.

The system had to serve English, Spanish, and French conversations around the clock, protect access information, stay within Airtable and WhatsApp limits, and hand sensitive or uncertain conversations to a person.

Where I contributed

I worked on the session-routing logic, property-context pipeline, multilingual conversation flow, caching strategy, and escalation controls.

The central engineering problem was the 45-millisecond decision before generation: deciding which operational context could safely be attached to a new conversation.

Decision trail

Constraints became architecture.

Each decision below connects a concrete limitation to the engineering response and its practical effect.

  1. 01

    Constraint

    The sender's phone number could be masked, formatted differently, or belong to another person in the booking.

    Decision

    Use a three-pass resolver: normalised exact match, active-booking-window match with confirmation, then a minimal open-conversation fallback.

    Impact

    Most sessions receive the correct context immediately, while ambiguous sessions reveal no property-specific information until identity is confirmed.

  2. 02

    Constraint

    Reading property records from Airtable on every message created latency and exceeded the five-request-per-second base limit at peak check-in times.

    Decision

    Normalise and batch the Airtable read at session start, then cache non-sensitive property context in Redis with short expiry windows.

    Impact

    p95 session initialisation fell from about 1.2 seconds on a cold read to about 180 milliseconds on a cache hit.

  3. 03

    Constraint

    A single low-confidence score produced too many unnecessary human escalations.

    Decision

    Separate missing context from stylistic uncertainty and retry against verified session data before escalating.

    Impact

    Unnecessary escalations fell from 34% to 8% while complaints and safety concerns still transferred immediately.

Outcome

What the work produced

  • Autonomous resolution reached 83% in the second month.
  • Average first-response time stayed below three seconds at p90.
  • Routine guest-communication hours fell by approximately 70%.
  • The WhatsApp account scaled from 250 to 10,000 conversations per day while maintaining quality thresholds.

Technology

LangChainGPT-4oAirtable APIWhatsApp Business APINode.jsFastAPIRedisPostgreSQL

Conversation quality starts before the model receives a prompt. Identity resolution, context boundaries, and escalation rules determine whether an assistant is merely fluent or operationally safe.

Abrar Ahmed