Three parts: connect WhatsApp through Meta, customise everything to your hotel's preferences, then run the front desk day to day. Follow the steps in order — each one takes minutes.
The AI receptionist and all guest messaging run on the official WhatsApp Business Cloud API. You'll create a free Meta developer app, copy four credentials into StayChat, and point Meta's webhook at your hotel.
From Meta's WhatsApp → Quickstart / API Setup page, gather:
| Credential | Where in Meta |
|---|---|
| Phone Number ID | API Setup → "From" — the number that will message guests. Click "Show" on the ID. |
| Access Token (permanent) | Business Settings → Users → System Users → generate token with whatsapp_business_messaging + whatsapp_business_management permissions. Temporary tokens expire in 24h — always use a permanent System User token. |
| App Secret | App Settings → Basic → "Show" in the App Secret field. |
| Webhook Verify Token | Anything you pick yourself — a random string you invent. StayChat will echo it back to Meta during verification. |
In StayChat, open Settings → WhatsApp and paste all four values. The page shows your exact webhook URL (/api/webhooks/whatsapp/<your-subdomain>) — copy it now.
messages field. Nothing arrives in your inbox until this subscription is on.In Settings → WhatsApp, click Test Connection. StayChat runs two real probes and tells you exactly which half is broken:
Both green → guests can start messaging your number right now.
In Settings → AI Receptionist: pick a tone (Professional, Friendly…), switch the AI on, and choose what it can answer — bookings by tender code, Wi-Fi, facilities, room service. Add your own API key (Anthropic / OpenAI / OpenRouter) or use the platform key if one is configured. Without any key it falls back to a built-in keyword assistant — the inbox never breaks.
BE-7K2M9QX4) on WhatsApp and the receptionist replies with live status, room and total — pulled from your database in real time, tied to the same conversation your desk sees in the shared inbox.Everything your guests and staff touch is configurable from Settings — no code, no developer.
Settings → Hotel: name, country, email, phone, timezone, check-in/check-out times, currency, POS tax & service percentages, pool capacity. The timezone drives every report and end-of-day boundary; the currency sets what the folio charges.
Rooms → Add: number, floor, type, view, capacity, nightly rate. Then Room Setup → Categories for tiered pricing — separate weekday / weekend / holiday rates per category, with discount percentages. Your rate card is what the public booking engine quotes — no manual pricing on the phone with guests.
Room Setup → Floors to mirror your building. Facilities: add halls (day or hourly rate) and pools (price per person per hour) — each appears automatically on your public booking page with a Facilities tab and live time-slot conflict rejection.
Settings → Payment Methods: tick what the hotel accepts (cash, card, transfer…). For online links, store your Paystack or Stripe keys — credentials are encrypted AES-256-GCM at rest, and both gateways' webhooks are signature-verified and idempotent (a repeated webhook never double-charges).
Users → Add: reception, cashier, barman, accountant, auditor, housekeeping. Every role lands with sensible defaults — front desk can check guests in but cannot alter prices, void ledgers or refund; that's manager territory. Fine-tune anyone with per-user capability toggles. Every sensitive action lands in the audit log with who-did-what.
Settings → Booking Engine: turn the engine on, drop a welcome notice (e.g. high-season policies), and the page at /book.html?hotel=your-subdomain goes live — priced from your real rate card, "reserve now, pay at the hotel". Guests pick rooms or facilities, leave name + phone, and receive a tender code like BE-7K2M9QX4 on WhatsApp. Your desk gets a WhatsApp within seconds of every submission.
Connect the internet line you already pay for to StayChat, and guest Wi-Fi runs itself for every stay.
/wifi.html.Settings → Integrations: door locks, IPTV, room automation, cameras — 49 services. Every service has docs links, encrypted credential storage, and a live Test Connection probe.
Guests from other countries visiting your booking page automatically see prices in their currency (detected by the edge server from the visitor's country), converted at today's live rate — while the folio still charges your hotel currency. Refresh rates any time in Settings → Exchange Rates (or let the daily auto-refresh handle it). Guests can also pick a currency manually from the selector on the booking page.
The rhythm of a normal day in StayChat — what each person does, in the order they do it.
Reception opens StayChat (install it from the browser: 📲 Install app, works from the home screen). The dashboard shows last night's occupancy, today's arrivals and departures, and any pending tasks. Housekeeping sees rooms left dirty by checkout and the day's ready-list with SLA timers.
The submission lands in Booking Engine → Submissions with the guest's tender code up top; a WhatsApp notification hits the team simultaneously. One click Confirm holds the room, bumps availability, and the guest instantly gets their printable QR confirmation slip. Ignore a submission and the spam cap re-frees the inventory — no arma-squatting.
Rooms → Check in: pick the guest from the booking (every check-in is tied to a real Guest record — walk-ins create one first: name, phone, ID type/number, next-of-kin), take any deposit as real money (it posts to the ledger, not "marked paid"), and confirm. Wi-Fi credentials pop on the same screen; the guest's WhatsApp gets a welcome with the details. Group bookings check in as one folio with one balance.
Rooms → Check out on a guest with a balance shows an Outstanding Balance dialog with the exact amount and a Go to Pay button that opens the Settle modal pre-filled. Type the cash collected — the input is a real amount field with change-due live (₦ all day, $ if you prefer) — confirm, and the settlement receipt pops with auto-print. Behind the receipt the room auto-checks-out, the balance zeroes, the double-entry ledger posts room-revenue vs. cash, and the room flips to dirty for housekeeping. Nothing is hand-waved: card and cash both clear to real ledger entries.
EOD: each department (POS, pool, halls, room service) closes its own day — totals snap to the ledger. The Accounting view is double-entry; the trial balance always balances because every posting on the system came through the same path. Print your (CSV or paper) transaction report — Payments → Export CSV hands you the exact file of everything that ran today.