WhatsApp AI booking agent
Budget: £250 – £750 GBP
Soloverseio is a WhatsApp-native, AI-powered booking system for local service providers (e.g., barbers, salons, therapists). It replaces messy DMs and booking platforms with a clean, automated flow controlled entirely by buttons, WhatsApp, and GPT-4 Turbo.
This brief defines everything required to build Model 1 – Starter Tier, the MVP product that:
• Automates bookings via WhatsApp
• Uses buttons for 100% of customer actions
• Includes approval flows, metrics summaries, and staff controls
• Is simple to onboard, easy to scale
The system should be lean, modular, and mobile-first.
⸻
Part 1: Onboarding Data Capture
Collected during business sign-up (via form or conversational flow):
Required Fields:
• Business Name: Text – Displayed in greeting (e.g., “Welcome to John’s Barbers”)
• WhatsApp Number: Phone – Connected number for automation
• Location(s): Text – Used in confirmations
• Time Zone: Dropdown – Used for scheduling logic
• Working Hours: Per day (e.g., Mon 10–6, Tue 12–8)
• Services: Table with Service Name, Price, Duration, Assigned Stylist, Optional Notes
• Staff Availability: Supports split scheduling (e.g., Sarah Mon–Wed, Liam Thurs–Sat)
• Max Bookings per Day: Number – Per stylist
• Buffer Time: Minutes – Gap between bookings
• Auto-Approve Toggle: Boolean – ON = auto-confirmation, OFF = manual approval
• Auto-Decline After 4h Toggle: Boolean – ON = booking expires if not approved in 4 hours
• Daily Digest Time: Time – Default 8 AM
• Start Paused: Boolean – Whether the bot starts live or inactive
⸻
Part 2: Customer Commands (via WhatsApp)
When the customer clicks the business’s WhatsApp link, the bot should immediately send:
“Welcome to [Business Name]! How can I help you today?”
Buttons:
• Book a Service
• Check Availability
• Change Booking
• Cancel Booking
• See Services
• See Prices
These buttons should reappear throughout the flow to anchor navigation and keep the user in a closed loop.
Command Logic:
• Book a Service: Starts the full booking flow
• Check Availability: Customer selects service → stylist → sees open slots
• Change Booking: Cancel existing booking → rebook
• Cancel Booking: Show active bookings → confirm cancellation
• See Services: List formatted services → offer to book
• See Prices: List services + prices → offer to book
⸻
Part 3: Client Commands (for Business Owner / Stylist)
These are handled via WhatsApp (or a future admin dashboard).
Available Commands:
• Add/Edit Services
• Add/Edit Availability
• Pause/Resume Bookings
• View Pending Approvals
• Approve/Decline Bookings
• Receive Daily Digest
• Request Metrics Summary
• Check System Status
These may be initiated with a typed command or a quick-reply button from a daily digest message.
⸻
Part 4: Customer Booking Flow (Button-First UX)
Step-by-Step Booking Flow:
1. User taps “Book a Service”
2. Bot replies:
“What would you like to book?”
Buttons: [Haircut], [Skin Fade], [Beard Trim], etc.
3. User selects service
4. Bot replies:
“Who would you like to book with?”
Buttons: [Sarah], [Liam]
(Skip this step if only one stylist)
5. User selects stylist
6. Bot replies:
“Here are the next available times with [Stylist] for a [Service]:”
Buttons: [Tue 10:00], [Tue 11:30], [Wed 2:00]
7. User selects slot
8. Bot replies:
“You’re about to book [Service] with [Stylist] at [Time]. Confirm?”
Buttons: [Yes], [No]
• If Yes → Booking is either confirmed (Auto-Approve ON) or added to pending queue (Auto-Approve OFF)
• If No → Bot loops back to time selection
9. If confirmed:
“You’re booked! We’ll send a reminder the day before.”
Then return to main menu buttons
⸻
Part 5: Approval Flow and Daily Digest
Approval Logic:
• If Auto-Approve is OFF, the booking enters a pending state
• Client receives message:
“New booking request: [Customer Name] – [Service] – [Time]. Approve or Decline?”
Buttons: [Approve], [Decline]
• If no response within 4 hours → auto-decline (if toggle is ON)
Daily Digest Message (8 AM default):
“Today’s Bookings:
• 10:00 – Jack (Haircut – Sarah)
• 11:30 – Jane (Beard Trim – Liam)
Pending Approvals: 1
Cancellations: 0”
⸻
Part 6: Post-Interaction Buttons and Rebooking Flow
After any user interaction (booking, service info, cancellation), the bot should return to:
“What would you like to do next?”
Buttons:
• Book a Service
• Check Availability
• Return to Menu
Rebooking Prompt:
• Sent automatically after appointment or based on time delay
• “Would you like to rebook with [Stylist]?”
Buttons: [Yes], [No]
• If Yes → restart full booking flow
• If No → “No worries! You can always rebook using this link: [Custom Booking Link]” + display main menu again
⸻
Part 7: System Architecture & Tech Stack
Recommended Tech Stack:
• Frontend: Next.js, plain React, or low-code onboarding form
• Backend: Node.js or Python (FastAPI or Flask)
• Hosting: Vercel (frontend) + Firebase or Supabase (backend)
• Database: Supabase (PostgreSQL) or Firebase
• Messaging Layer: WhatsApp Business API via 360Dialog (preferred)
• AI Engine: GPT-4 Turbo via OpenAI API
• Logic Routing: Prompt-managed, button-first flow engine
• Event Logging: Firestore or Supabase logs per session/event
• Unique Session IDs: One per customer interaction (used for tracking, rebooking, etc.)
⸻
Dev Notes & Implementation Guidelines
• Use WhatsApp Interactive Buttons for all possible interactions (quick reply or call-to-action)
• Avoid typed input unless absolutely necessary (names, special requests)
• Agent should control the narrative — no open-ended inputs for booking flow
• Auto-approve toggle should control booking behavior (instant vs manual approval)
• Auto-decline after 4h should be enforced if enabled
• Metrics system should log: total bookings, cancellations, pending approvals, source of booking
• All logic should be centralized and scalable across multiple business accounts
This brief defines everything required to build Model 1 – Starter Tier, the MVP product that:
• Automates bookings via WhatsApp
• Uses buttons for 100% of customer actions
• Includes approval flows, metrics summaries, and staff controls
• Is simple to onboard, easy to scale
The system should be lean, modular, and mobile-first.
⸻
Part 1: Onboarding Data Capture
Collected during business sign-up (via form or conversational flow):
Required Fields:
• Business Name: Text – Displayed in greeting (e.g., “Welcome to John’s Barbers”)
• WhatsApp Number: Phone – Connected number for automation
• Location(s): Text – Used in confirmations
• Time Zone: Dropdown – Used for scheduling logic
• Working Hours: Per day (e.g., Mon 10–6, Tue 12–8)
• Services: Table with Service Name, Price, Duration, Assigned Stylist, Optional Notes
• Staff Availability: Supports split scheduling (e.g., Sarah Mon–Wed, Liam Thurs–Sat)
• Max Bookings per Day: Number – Per stylist
• Buffer Time: Minutes – Gap between bookings
• Auto-Approve Toggle: Boolean – ON = auto-confirmation, OFF = manual approval
• Auto-Decline After 4h Toggle: Boolean – ON = booking expires if not approved in 4 hours
• Daily Digest Time: Time – Default 8 AM
• Start Paused: Boolean – Whether the bot starts live or inactive
⸻
Part 2: Customer Commands (via WhatsApp)
When the customer clicks the business’s WhatsApp link, the bot should immediately send:
“Welcome to [Business Name]! How can I help you today?”
Buttons:
• Book a Service
• Check Availability
• Change Booking
• Cancel Booking
• See Services
• See Prices
These buttons should reappear throughout the flow to anchor navigation and keep the user in a closed loop.
Command Logic:
• Book a Service: Starts the full booking flow
• Check Availability: Customer selects service → stylist → sees open slots
• Change Booking: Cancel existing booking → rebook
• Cancel Booking: Show active bookings → confirm cancellation
• See Services: List formatted services → offer to book
• See Prices: List services + prices → offer to book
⸻
Part 3: Client Commands (for Business Owner / Stylist)
These are handled via WhatsApp (or a future admin dashboard).
Available Commands:
• Add/Edit Services
• Add/Edit Availability
• Pause/Resume Bookings
• View Pending Approvals
• Approve/Decline Bookings
• Receive Daily Digest
• Request Metrics Summary
• Check System Status
These may be initiated with a typed command or a quick-reply button from a daily digest message.
⸻
Part 4: Customer Booking Flow (Button-First UX)
Step-by-Step Booking Flow:
1. User taps “Book a Service”
2. Bot replies:
“What would you like to book?”
Buttons: [Haircut], [Skin Fade], [Beard Trim], etc.
3. User selects service
4. Bot replies:
“Who would you like to book with?”
Buttons: [Sarah], [Liam]
(Skip this step if only one stylist)
5. User selects stylist
6. Bot replies:
“Here are the next available times with [Stylist] for a [Service]:”
Buttons: [Tue 10:00], [Tue 11:30], [Wed 2:00]
7. User selects slot
8. Bot replies:
“You’re about to book [Service] with [Stylist] at [Time]. Confirm?”
Buttons: [Yes], [No]
• If Yes → Booking is either confirmed (Auto-Approve ON) or added to pending queue (Auto-Approve OFF)
• If No → Bot loops back to time selection
9. If confirmed:
“You’re booked! We’ll send a reminder the day before.”
Then return to main menu buttons
⸻
Part 5: Approval Flow and Daily Digest
Approval Logic:
• If Auto-Approve is OFF, the booking enters a pending state
• Client receives message:
“New booking request: [Customer Name] – [Service] – [Time]. Approve or Decline?”
Buttons: [Approve], [Decline]
• If no response within 4 hours → auto-decline (if toggle is ON)
Daily Digest Message (8 AM default):
“Today’s Bookings:
• 10:00 – Jack (Haircut – Sarah)
• 11:30 – Jane (Beard Trim – Liam)
Pending Approvals: 1
Cancellations: 0”
⸻
Part 6: Post-Interaction Buttons and Rebooking Flow
After any user interaction (booking, service info, cancellation), the bot should return to:
“What would you like to do next?”
Buttons:
• Book a Service
• Check Availability
• Return to Menu
Rebooking Prompt:
• Sent automatically after appointment or based on time delay
• “Would you like to rebook with [Stylist]?”
Buttons: [Yes], [No]
• If Yes → restart full booking flow
• If No → “No worries! You can always rebook using this link: [Custom Booking Link]” + display main menu again
⸻
Part 7: System Architecture & Tech Stack
Recommended Tech Stack:
• Frontend: Next.js, plain React, or low-code onboarding form
• Backend: Node.js or Python (FastAPI or Flask)
• Hosting: Vercel (frontend) + Firebase or Supabase (backend)
• Database: Supabase (PostgreSQL) or Firebase
• Messaging Layer: WhatsApp Business API via 360Dialog (preferred)
• AI Engine: GPT-4 Turbo via OpenAI API
• Logic Routing: Prompt-managed, button-first flow engine
• Event Logging: Firestore or Supabase logs per session/event
• Unique Session IDs: One per customer interaction (used for tracking, rebooking, etc.)
⸻
Dev Notes & Implementation Guidelines
• Use WhatsApp Interactive Buttons for all possible interactions (quick reply or call-to-action)
• Avoid typed input unless absolutely necessary (names, special requests)
• Agent should control the narrative — no open-ended inputs for booking flow
• Auto-approve toggle should control booking behavior (instant vs manual approval)
• Auto-decline after 4h should be enforced if enabled
• Metrics system should log: total bookings, cancellations, pending approvals, source of booking
• All logic should be centralized and scalable across multiple business accounts