Building a Salon Booking Chatbot with LUIS and Bot Framework
Overview
Built a conversational AI chatbot for Jawed Habib salon services. The bot handles appointment bookings, pricing inquiries, and customer service through natural language conversations.
Architecture
Bot Framework Integration
C# ASP.NET MVC application with Bot Framework SDK 3.2. MessagesController handles incoming messages and routes them to appropriate dialog flows.
LUIS Natural Language Understanding
Trained LUIS model with intents for:
- Booking management (make, check, cancel)
- Price inquiries (services, products)
- Payment information
- General help and greetings
Entity Extraction
LUIS extracts entities from user messages:
- Date/time for appointments
- Service names
- Product names
- Customer information
Implementation
Conversation Flow
Multi-turn dialogs for complex interactions. Example booking flow:
- User expresses intent to book
- Bot prompts for service type
- Bot prompts for date/time
- Bot confirms details
- Booking created
Data Models
Core entities:
- Booking: Appointment details, customer info, status
- Service: Service name, description, price, duration
- Product: Product name, description, price
- PaymentMethod: Accepted payment types
Helper Classes
Business logic separated into helper classes:
- BookingHelper: Booking CRUD operations
- ServiceHelper: Service information queries
- ProductHelper: Product information queries
LUIS Model
Trained with intents and sample utterances:
MakeBooking Intent:
- “I want to book an appointment”
- “Schedule a haircut for tomorrow”
- “Can I get a spa treatment next week”
CheckServicePrice Intent:
- “How much is a haircut”
- “What’s the price for hair coloring”
- “Cost of spa treatment”
Entity recognition for services, dates, and times.
Technical Challenges
Context Management: Maintaining conversation state across multiple turns. Used Bot Framework state service for session management.
Entity Validation: Ensuring extracted entities are valid (e.g., date is in future, service exists). Added validation helpers.
Fallback Handling: Graceful handling of unrecognized intents. Implemented fallback to suggest valid options.
Results
Production-ready chatbot with:
- 90%+ intent recognition accuracy
- Support for multiple conversation flows
- Robust error handling
- Extensible architecture
Technology Stack
Language: C#
Framework: ASP.NET MVC 5, Microsoft Bot Framework 3.2
NLU: LUIS
Database: SQL Server
Deployment: Azure
Source Code
GitHub: github.com/tanchunsiong/gamurai-chatbot
Contact
- Website: www.tanchunsiong.com
- LinkedIn: linkedin.com/in/tanchunsiong
- X/Twitter: @tanchunsiong
Project created March 2019