🚀 LAUNCH MODE
Getting ThaiBike ready to go live
Starting with Koh Samui — complete these steps before your first booking
✅
Platform live
thaibike.netlify.app
✅
City pages live
CM · Phuket · Koh Samui
⏳
Onboard first vendor
Koh Samui recruitment
⏳
Configure Stripe / Omise
Payment keys not set
⏳
WhatsApp number live
Set vendor contact number
🌏 Platform Live Feed
Loading…
0
Active Rides
0
Today Booked
0
Active Vendors
฿0
Revenue Today
Live Activity
Analytics — Launch Phase
Click any KPI card to drill into detail
📈 Monthly GMV (฿)
📋 Bookings by City
🌍 Rider Nationalities
🏍️ Top Bike Types
💳 Payment Methods
🔻 Booking Conversion Funnel
Last 30 daysVendor Management
0 pending approval · 0 active vendors
⏳ Pending Approval 0
✅ Active Vendors (0)
| Vendor | City | Bikes | Bookings | Rating | GMV | Commission | Status | Actions |
|---|
Dispute Center
All dispute types — AI analyses evidence and recommends resolution. You make the final call.
0 Open
0 Under Review
0 Resolved
How disputes enter
📱
WhatsApp Bot
Customer texts "accident" → Kanya creates case, requests photos
🏪
Vendor Portal
Vendor marks bike "damaged on return" → auto-dispute created
👑
Admin Manual
You click "+ Report Dispute" and fill in the form below
🤖
AI Auto-flag
Kanya detects damage keywords in chat → escalates to admin
💬
Where do replies go? — When you click "Message Both Parties", a WhatsApp group message is sent to both customer and vendor via ThaiBike's WhatsApp Business number. Their replies route back here — they appear inline in each dispute card under "Message Thread". You can read and reply to both parties directly from this admin panel without switching to WhatsApp.
🤖
AI Dynamic Pricing Engine — Active
Adjusting prices in real-time · demand · weather · events · competitor data
Last fired: 4 min ago
Live
📈
฿0
Extra revenue this month
Awaiting first booking
⚡
0
Auto price changes today
Rules ready — none fired yet
🌧️
0
Weather triggers fired
Monitoring enabled
🏆
—
Avg uplift on peak days
No peak data yet
📋 Pricing Rules
| City | Bike Type | Trigger | Change | Duration | Impact | Active | Actions |
|---|
📜 Pricing Activity Log
Last 24 hours🤖 AI Recommendations
🔥 Live Demand
% capacity booked📅 Pricing Calendar
🔍 Competitor Snapshot
Chiang Mai · PCX 160📡 Scraped every 4 hours · Last update 14:32
Financials — Launch Phase
Click any card to drill into the detail
📋 P&L — Launch Phase
🏙️ Revenue by City
📈 12-Month Trajectory
Based on current growth rateCustomer Accounts
0 registered · awaiting first sign-up
| Customer | Nationality | Bookings | Total Spent | Joined | Deposit Pref | Status | Actions |
|---|
All Bookings
Auto-confirmed · manual review only for flagged bookings
⚠️ Needs Review 0
Auto-flagged by risk engine — review within 2 hours
| Ref | Customer | Bike | Amount | Deposit | Flag Reason | Actions |
|---|
📋 All Bookings
| Ref | Customer | Bike | Vendor | City | Dates | Amount | Deposit | Status | Actions |
|---|
City Manager
12 cities · 0 live · 1 recruiting · 11 planned
0
🟢 Live
None live yet
1
🎯 Recruiting
Koh Samui · 0/5 vendors
11
⚪ Planned
Ready to launch
฿0
Platform GMV MTD
Awaiting first booking
🏙️ All Cities
| City | Domain | Status | Vendors | Bikes | Bookings MTD | GMV MTD | SEO | Actions |
|---|
🤖
Kanya AI Concierge
OpenAI GPT-4o Realtime · Thai female voice · EN + TH · Live on thaibike.rentals
LIVE
Prompt v3.2 · saved today 08:14
✏️ Prompt Sections
Kanya's master prompt is built from these 5 sections. Edit each section then click Save. Changes go live in ~5 minutes.
🧠 Personality & Tone
▼
📋 Conversation Rules
▼
🏍️ Bike Inventory 12 bikes
▼
Auto-generated from fleet data. Click Re-inject Inventory to refresh after adding bikes.
🗺️ City Knowledge
▼
🆘 Escalation & Edge Cases
▼
Est. ~1,840 tokens · GPT-4o context: 128k max
⚡ Quick Stats
Open Performance tab to load stats
🕓 Prompt History
${[
{v:'v3.2',date:'Today 08:14',note:'Added ADV 350 upsell rule',active:true},
{v:'v3.1',date:'Jun 24 14:30',note:'Expanded Pai mountain tips',active:false},
{v:'v3.0',date:'Jun 22 10:00',note:'Added bikeFleet inventory section',active:false},
{v:'v2.8',date:'Jun 18 09:15',note:'Thai language code-switch rules',active:false},
].map(function(h){return''+(h.active?'LIVE':'')+'';}).join('')}
'+h.v+' · '+h.date+'
'+h.note+'
🔬 A/B Prompt Test
Split traffic between two prompts to test conversion impact. 50/50 split.
VARIANT B PROMPT SUMMARY
🗺️ City Knowledge Cards
These facts are injected into Kanya's context when a customer asks about a specific city.
❓ FAQ Answers
Kanya uses these exact answers when asked common questions. Keep them accurate and current.
🏍️ Bike Fleet Reference
Live metrics from sandbox tests and real customer chats. No demo data.
💬 Recent Conversation Samples
🔥 Top Questions Asked
📉 Where Kanya Struggles
🔊 Voice Configuration
Slow (0.7×)Normal (1.0×)Fast (1.3×)
0% = neutral English · 100% = strong Thai inflection
After this many seconds of silence, Kanya will prompt the customer
Voice-to-text fallback
Switch to text if voice fails
Auto-detect Thai speaker
Switch to Thai if customer speaks Thai first
End-of-session summary
Send booking summary SMS after voice session
▶ Voice Preview
Test how Kanya sounds with a sample greeting and booking scenario.
Greeting
"Sawasdee ka! Welcome to ThaiBike — I'm Kanya. Which city are you riding in, and when would you like to pick up?"
Bike recommendation
"For Chiang Mai loops ka, I recommend the Honda ADV 350 — it handles the mountain roads beautifully and you won't need IDP for the automatic gearbox."
Deposit explanation
"For the deposit, most customers choose our Damage Waiver — just ฿390 added to your booking. Covers up to ฿8,000 of damage, and no card hold needed. Shall I add that for you ka?"
Accident script
"Oh no, are you safe ka? Please move to a safe place first. I'm flagging our support team right now — they will call you within 3 minutes. Can you send me a quick photo of the damage?"
📞 Greeting Script
First message Kanya says when a voice session starts. Edit and Save — the ▶ Play button above will use the updated text immediately.
⚙️ Platform Config
● Unsaved changes
฿150 on ฿1,000
Applied to every booking · auto-split at payment capture
First-time customer bookings above this amount go to review queue
Time after booking end before late fee triggers
🚧 Maintenance mode is ON — customers see a maintenance page. Remember to turn off when done.
Maintenance Mode
Shows maintenance page to customers
New Vendor Auto-Approve
Skip manual review for verified docs
AI Dynamic Pricing
Auto-adjust rates based on demand signal
Guest Checkout
Allow booking without account signup
Email Booking Confirmations
Auto-send confirmation email to customer + vendor
SMS Reminders
24h before pickup reminder to customer
🔗 Integrations
💳
Stripe
✓ Connected · Test mode
Stripe Connect
▼
⚠️
Currently in Test Mode — no real payments are processed. Switch to Live when ready to accept customers.
Test Keys (current)
Live Keys (go-live)
💡 Use a Restricted Key for the secret key in production — limit it to
charges:write, payment_intents:write, connect:write only. Never use a full secret key on a server.
Paste this URL in your Stripe Dashboard → Developers → Webhooks → Add endpoint
payment_intent.succeeded✓ Activepayment_intent.payment_failed✓ Activecharge.dispute.created✓ Activeaccount.updated (Connect)✓ Activepayout.paid (vendors)✓ Activeradar.early_fraud_warning.created✓ Active🔗 Stripe Connect — Marketplace Model
ThaiBike uses Stripe Connect Express. When a customer pays ฿1,790:
→ ฿1,522 (85%) transferred directly to vendor's bank
→ ฿268 (15%) retained by ThaiBike automatically
No manual splitting. No holding vendor funds. Vendors onboard in ~5 minutes.
→ ฿1,522 (85%) transferred directly to vendor's bank
→ ฿268 (15%) retained by ThaiBike automatically
No manual splitting. No holding vendor funds. Vendors onboard in ~5 minutes.
Stripe deducts this from every charge before routing to vendor. Matches your Commission Rate above.
Recommend Weekly at launch — gives time to handle disputes before funds leave platform
Vendor Onboarding Link
Send this to each vendor to connect their Thai bank account via Stripe Express
Enable the payment methods you want to accept. Stripe charges different fees per method.
💳 Visa / Mastercard
2.9% + $0.30 · Global cards · Primary method
Apple Pay / Google Pay
Same as card rate · No extra setup · Mobile UX boost
🇹🇭 PromptPay (via Stripe)
0.5% flat · Thai customers · Instant QR code
🏦 Bank Transfer (Stripe)
0.8% · High value bookings · 1–2 day confirmation
🔒 3D Secure (auto)
Stripe Radar triggers for high-risk cards · Recommended ON
💡 PromptPay has 0.5% fee vs 2.9% for cards — push Thai customers toward QR checkout for better margins
📱
Omise · PromptPay QR
✓ Connected · Sandbox
⚠️ Sandbox mode — switch to Live keys when your Omise KYC is approved (typically 3–5 business days)
Your 13-digit tax ID registered with Bangkok Bank / SCB for PromptPay
Auto-generate QR code at checkout
Show PromptPay QR in booking confirmation page
📱
Twilio — SMS & Voice
⚠️ Not configured — SMS disabled
Setup Required
▼
📨
Free trial: 1,000 SMS included
Sign up at twilio.com → copy Account SID + Auth Token below
Buy a Thai (+66) or US (+1) number from Twilio Console. Thai numbers require business verification (~3 days).
Cost Estimate at 1,000 bookings/week
Booking confirmations (×1,000)฿1,250
Pickup reminders (×1,000)฿1,250
Vendor alerts (×1,000)฿1,250
Weekly total~฿3,750 / week
Switch to Thaibulksms at scale to cut this to ~฿900/week (฿0.30/SMS local rate)
📝 SMS Templates
Booking Confirmed
24h Pickup Reminder
Vendor — New Booking
Booking Cancelled
Dispute Opened
🧪 Send Test SMS
🤖
OpenAI (Kanya AI)
✓ GPT-4o · Realtime voice active
💬
WhatsApp Business API
✓ Connected · +66 88 000 0000
Meta Cloud API
▼
Notification Triggers
Booking confirmation to customer
New booking alert to vendor
24h pickup reminder to customer
Dispute opened — alert both parties
Payment received — vendor payout notice
🗺️
Longdo Map API
⚠️ Quota 82% used — 18,000 calls remaining
Near Limit
▼
⚠️ Usage: 82,000 / 100,000 calls this month
Resets on 1st of next month · At current rate, will hit limit in ~4 days
Upgrade Plan
100k
฿890/mo
Current
500k
฿2,990/mo
Recommended
Unlimited
฿7,500/mo
Enterprise