One inbox instead of four channels
Every message lands in a single platform, where the AI either replies on its own or drafts an answer for a manager. The bot detects the guest's language and replies in it (8+ languages are supported), while incoming messages are translated into Spanish for the team in parallel.
How a reply is made
Message
Webhooks and polling collect conversations from every channel
Context
17 business services compute decisions in advance: cancellations, extra charges, early check-in
AI
Claude with tool calling; if it fails, a backup provider takes over automatically
Gate
Confidence ≥ 0.7 means an auto-reply with a "human" delay of 30–60 s
Escalation
Complex topics go to a manager in Telegram with a ready draft
Business rules live in code, not in the prompt
Money, cancellation policies, extra charges and check-in rules are calculated by deterministic TypeScript services covered by 224+ tests. The AI reads the finished decisions and is responsible only for tone and format, so the "bot forgot a rule" class of errors is ruled out by the architecture.
Smart locks
- An access link is generated automatically when a booking comes in
- Codes go out no earlier than two days before check-in
- Access expires after check-out
WhatsApp + calls
- Direct Meta Cloud API: text, photos, documents, audio
- Voice calls in the browser over WebRTC
- Respects the 24-hour window: outside it, templates only
Human in the loop
- 22 categories always go to a manager: complaints, cancellations, documents
- Telegram alerts for 11 apartment groups
- After 15 minutes of silence, the conversation returns to the AI on its own
Under the hood: Next.js 15 plus a separate worker running 8 background jobs on top of PostgreSQL 16; real-time updates through pg_notify and Server-Sent Events, with no polling from the browser. Deep integration with the PMS (property management system), a versioned system prompt you can roll back from the UI, and a full audit of every AI call: tokens, cost in dollars, latency.