An OTP will be sent to your registered WhatsApp number.
📱
OTP Sent!
Overview
—
Loading stats...
Messages (Last 7 Days)
Loading...
🪙 Token Usage — This Month—
—limit: —
Recent Activity
Loading...
FromTo
Wayne · AIRS System Assistant 📌 Pinned
Ask me anything about your dashboard
Open →
Loading conversations...
Monthly API Cost (Claude + OpenAI)
—
—
of budget used this month
Remaining: —
—
🤖 ANTHROPIC (CLAUDE)
—
Input tokens
—
Output tokens
—
% of budget
🎙️ OPENAI (WHISPER + TTS)
—
Voice secs
—
TTS chars
—
% of budget
—
Tool calls
—
API requests
—
All-time requests
Daily Usage — Last 30 Days
Loading...
Top Users This Month
Loading...
Monthly Token LogHistory
Loading...
🎓 Train Your AI
Upload your property documents — brochures, sales kits, floor plans, FAQs — and your AI assistant learns to answer buyers and renters straight from them. You review and edit every entry before it's saved.
1
Upload a documentPDF or image · drag & drop
2
AI reads & suggestsYou review and edit
3
Saved to knowledgeYour AI uses it live
Step
0 entriesuntick any you don't want
📎 The uploaded image will be attached to these entries
Reads what your staff answered during handoffs and proposes entries — but only where
the same answer was given to 2 or more different customers. Nothing is added to
the Knowledge Bank until you approve it here.
🏷️ Fill in missing tags
Tags are the extra words a customer might search with that aren't in the entry itself
— the Malay word, the short form, the way people actually type it. An entry with no
tags is only found when someone happens to use your wording. This suggests tags for
entries that have none at all — entries you have already tagged are never
touched. Nothing is saved until you click "Apply selected". Suggesting uses a little
of your AI quota; entries that came back with nothing will be asked about again.
➕ Add Knowledge Entry
TITLE *
CATEGORY *
TAGS (comma-sep)
CONTENT *
📄 Review imported entries—
Knowledge Entries—
Loading...
📁 Upload File
Tenant storage
📎
Drag & drop a file here, or browse
Brochures, company profiles, images, price lists
💾 Storage Top-Up
Loading packages…
Files
⚡ Add Skill
Skills let the AI call external APIs on behalf of guests. Use {{guest_phone}} so a lookup returns only the chatting guest's own records, and don't share screenshots of saved skills (they contain API keys).
A scheduled task sends a WhatsApp message on a schedule, with nobody in the chat. New tasks start paused — switch one on when you're happy with it. Nothing sends outside your allowed hours (—).
NAME *
1. When should it send?
SCHEDULE
TIME (HH:MM)
EVERY (MINUTES, MIN 15)
DATE & TIME
STILL SEND IF LATE BY (MINUTES)
If the bot was offline at the scheduled moment, it may still send up to this late. After that the send is skipped.
DAYS
2. What should it say?
MESSAGE SOURCE
MESSAGE *
You can use {{tenant}}, {{date}}, {{time}} and {{name}}.
API URL * (must be https)
METHOD
HEADERS (JSON)
REQUEST BODY (POST only)
ONLY SEND IF (optional)
Written as path operator value. Operators: > >= < <= == !=, exists, not_empty. Leave blank to always send.
PROMPT *
3. Who receives it? (up to 5)
ADD A GROUP
ADD A PHONE NUMBER
4. Attachment (optional)
UPLOAD A FILE
OR A FILE URL FROM THE API RESPONSE
Your scheduled tasks—
Name
Schedule
Source
To
Last run
On
Actions
Loading…
Run history
When
Status
Message
Problem
🎭 Tone PresetQuick select
🎩
Professional
Polished 5-star hotel, formal & precise
😊
Friendly
Warm & natural, like a helpful friend
🇲🇾
Malaysian Casual
Friendly local style, light Malaysian English
🙋 Persona
Agent Name
Opening Greeting (shown on first contact)
✨ Extra Personality Notes
Additional personality traits (one per line)
⏱️ Reply Pace
Reply at a human pace
Waits a moment in case the customer is still typing, answers a burst of messages as one reply, and takes as long to answer as a person would take to type it. Turn this off to reply the instant an answer is ready.
📋 Custom Rules
Additional rules for the agent (one per line — added after the default rules)
✍️ Reply in my writing styleLearn your tone
Upload or paste your own past customer chats. We'll learn your tone so the bot replies like you. Nothing changes until you enable it.
Learn from your past human-takeover replies to customers.
Learned style profile (editable)
🛡️ Daily Token Limit per User
Max tokens per user per day
Bot stops replying to a user once they exceed this limit today. Set to 0 for unlimited.
Message when limit is reached
🚫 Bot Phone BlocklistLoop protection
Enter phone numbers of other bots or systems that should never trigger a reply (comma-separated, numbers only, e.g. 60123456789, 60198765432). Use this to prevent infinite loops when two AI agents message each other.
🕒 Bot Working HoursShared number
When ON, the bot only replies during the active windows below. Outside them it stays
completely silent — incoming messages are still saved here for your staff to answer on
the shared WhatsApp number. Reminders, follow-ups and notifications are unaffected.
Timezone
👁 Live Preview — How the agent introduces itself
Click "Generate preview" to see a sample response.
🚦 Department escalations
The bot routes customers to the right team. Add a department, a WhatsApp number or group chat, and when the bot should escalate to it.
📜 Escalation history
Every escalation the bot has raised. Click a row to open that conversation.
Loading…
📈 Revenue — Last 14 Days
Loading…
🏆 Top Rooms (Last 30 Days)
Loading…
🧾 Recent Bookings via Bot
Loading…
💰 Upsell Settings
Add-on Packages (one per line — name and price, e.g. "Breakfast Package — RM60/pax")
Custom Upsell Note (optional — extra context for the AI when crafting the upsell)
📣 Marketing Automations▼ Hide
Set-and-forget follow-ups the bot runs automatically: re-engage cold leads (Lead Nurture), chase unpaid in-chat orders (Order Recovery), remind retainer clients to renew (Retainer Renewal), and ask happy clients for a review & referral (Review & Referral). Tune each below, then save.
🔔 Abandoned Booking Recovery
First Reminder (minutes after payment link sent)
Second Reminder (minutes after payment link sent)
Auto-Cancel After (minutes, 0 = disabled)
Set higher than 2nd reminder. Guest is notified on cancellation.
Custom Follow-up Note (optional — appended to reminder message)
Nudges guests who asked about a room then went quiet — before any payment link exists. Once a link is sent, Abandoned Booking Recovery above takes over.
🎫 Voucher Purchase Recovery
First Reminder (minutes after payment link sent)
Second Reminder (minutes after payment link sent)
Custom Follow-up Note (optional — appended to first reminder)
Remind guests who started a voucher purchase but didn't pay.
🍽️ Table Reservations
First reminder after (minutes)
Second reminder after (minutes)
Custom note (optional — added to the first reminder)
Remind guests who started a table reservation with a deposit but didn't pay.
💇 Salon Deposit Recovery
First reminder after (minutes)
Second reminder after (minutes)
Custom note (optional — added to the first reminder)
Remind clients who started a salon appointment with a deposit but didn't pay.
Re-engage prospects who enquired (open leads) but haven't progressed.
📣 Marketing Order Recovery
First Reminder (minutes after payment link sent)
Second Reminder (minutes after payment link sent)
Custom Follow-up Note (optional — appended to first reminder)
Remind buyers who started a product/package purchase in chat but didn't pay — and nudge guests who showed clear interest in an item but didn't proceed to order. Uses the first-reminder delay above.
🔁 Retainer Renewal
Nudge after (days since the monthly package was paid)
Custom message (optional — {item} placeholder)
Nudges clients who bought a monthly (retainer) package in chat to continue for the next month. A renewal payment starts a fresh cycle.
⭐ Review & Referral Requests
Ask after (hours since first payment)
Review link (your Google review / form URL — included in the message)
Sent once per client, a set time after their first in-chat payment. Asks for a review (with your link) and a soft referral.
📋 Pending Recovery
Loading...
📩 Viewing Messages
Automated WhatsApp messages around property viewings. Leave a message blank to use the default.
Placeholders: {property}{date}{time}
⏰
Before viewing — reminder
Sent before the appointment
Send hours before the viewing
💬
After viewing — follow-up
Sent after you mark "Completed"
Send hours after Completed
☀️
Daily summary
A morning digest of today's viewings, sent to your Business Contact
Send at
⚙️ Smart Availability Settings
Smart Date Suggestions
When requested dates are fully booked, automatically suggest nearby available dates
Auto-decline calls & invite to chat
Automatically decline incoming voice/video calls and invite the guest to continue over chat
Reply in group chats when tagged
Add the bot to a WhatsApp group — it stays silent and only replies when someone @-mentions it
Restrict case lookups to whitelisted numbers
Only listed numbers can look up any case. Everyone else must verify by OTP first.
Let verified guests look up their own case
Off: a guest who passes OTP is told self-service isn't available yet. On: their number is sent to the provider's scoped lookup, which returns only that number's own records. Turn on only once the provider confirms that scoped lookup is live.
Availability Waitlist
Let guests register to be notified via WhatsApp when their preferred room becomes available
Table reservation waitlist
Notify guests when a table opens up
Check Interval
How often the bot polls the hotel API for room availability (takes effect after current cycle)
hour(s)
🔔 New-listing Alerts
Max alerts per buyer per day
Alert intro line (optional — {name} / {kind} placeholders)
When a listing is added or edited into a match, waiting buyers whose saved criteria fit are messaged automatically. The listing details and an opt-out line are added for you. Buyers can reply STOP to unsubscribe. Save changes with the button above.
📅 Appointment Messages
Reminder — hours before
Reminder message (optional — blank = default)
Follow-up — hours after
Follow-up message (optional — blank = default)
Send at
Automated WhatsApp messages around appointments. Save changes with the button above.
📋 Buyers Waiting
Loading…
⏳ Onboarding Waitlist
Prospects who joined while you were at capacity. When a slot opens, notify them — they get a WhatsApp message and move to "notified".
Loading…
📋 Guests Waiting
The bot checks every hour and messages guests automatically when a room opens up.
Loading...
🍽️ Table Waitlist
The bot messages guests automatically when a table opens up.
Loading...
💇 Salon Waitlist
The bot messages clients automatically when a slot opens up.
Loading...
RevPAR Optimization
Loading...
RevPAR — Last 30 Days
Loading...
RevPAR by Room Type — This Month
Loading...
Booking Analytics
Loading...
Occupancy — Last 6 Months
Loading...
Avg Occupancy by Day of Week
Loading...
Upcoming Peak Periods (≥70% Occupancy, Next 30 Days)
Loading...
Occupancy by Room — This Month
Loading...
Conversion
Loading...
📣 Compose Broadcast
Message
💬 Live preview (one guest sample)0 chars
Your message preview appears here…
Tip: use {Hi|Hello|Hey} to vary wording per guest and {name} to personalize — lowers spam risk. Plain text with no { } is sent as written.
See an example
Example you type:
{Hi|Hello} {name}! Our {weekend|holiday} promo is live 🎉
Guests may receive:
• Hi Sara! Our weekend promo is live 🎉
• Hello Wei! Our holiday promo is live 🎉
How spintax works
• {a|b|c} — each guest randomly gets a, b, or c.
• {name} — the guest's name (or "there" if unknown).
• Groups can nest, e.g. {good {morning|day}|hi}.
• Plain text with no { } is sent exactly as written.
Varying wording per guest lowers spam-block risk.
Attachment (optional — image or PDF, max 10 MB)
📎
Drag & drop an image or PDF, or browse
🎯 Target Recipients
Language
Phone Prefix
Active From
Active To
—
⚠️Bulk WhatsApp sending can trigger spam / block detection. To lower the risk we send gradually using a drip method — warmest contacts first, randomized delays, daily limits, quiet hours, and varied wording — and sending auto-pauses if failures spike. There is still some risk; send responsibly.
Set filters and click Preview to choose recipients.
Sending…
✅ You can safely close this page — sending continues on the server. Check the History tab anytime to see progress or to pause/resume.
👥 All Recipients
Loading…
📋 Broadcast History
Loading…
🚫 Unsubscribed Customers
Loading…
⚡ Dynamic Pricing Rules
Loading...
WhatsApp Account Linkchecking…
✅
WhatsApp Connected
The bot is linked and active. No QR scan needed.
⏳
Waiting for QR…
Make sure the bot is running: npm start
Checking…
Scan with WhatsApp
WhatsApp → Settings → Linked Devices → Link a Device
QR expires in ~60s — auto-refreshes
Session files stored in ./auth_info/
Handoff Requests—
Loading handoffs...
🏨 Business InformationShown in booking emails
Business Name *
Tagline
Address
Contact Phone
Contact Email
Business Contact *— WhatsApp alerts for new leads/bookings & handoffs, and renewal reminders
Send alerts to
⚠️ Everyone in this group will see guest names and phone numbers from every alert.
Handoffs must be resolved from the dashboard, or by messaging the bot from your Business Contact number — /resolve, /pause and /resume do not work inside a group.
Renewal and billing reminders always go to the Business Contact number.