Overview
This document demonstrates how to replicate multi-step booking experience using the MaidCentral API. This uses dynamic forms with real-time pricing, and this mapping shows how to achieve similar functionality.
Booking Flow Analysis
Form Types:
Form 1: Variables (bedrooms/bathrooms)
Form 2: Items, packages, and add-ons
Form 3: Items and services
Form 4: Unit structure (square feet)
Form 5: Hourly rates
Typical Flow:
Service Selection → Service Category → Pricing Parameters
Location & Schedule → Zip code → Available dates/times
Customization → Extras → Frequency → Custom fields
Customer Details → Contact info → Address
Payment → Billing details → Confirmation
MaidCentral API Implementation
Step 1: Service Selection
Customer Experience:
Selects service category
Chooses variables (bedrooms, bathrooms)
Sees real-time pricing calculation
API Calls:
GET /api/Lead/ScopeGroups
GET /api/Lead/Scopes?scopeGroupId={id}
GET /api/Lead/Questions?scopeIds={ids}
POST /api/Lead/CalculatePrice
Step 2: Location & Availability
Customer Experience:
Enters zip code validation
Views available dates/times
Real-time availability checking
API Calls:
GET /api/Lead/PostalCodes
GET /api/Lead/Availability?scopeGroupId={id}&hours={hours}
Step 3: Service Customization
Customer Experience:
Selects add-ons/extras
Chooses service frequency
Customizes service details
API Calls:
GET /api/Lead/RateModifications?scopeId={id}
GET /api/Lead/Questions?scopeIds={ids}
POST /api/Lead/CalculatePrice (for updated pricing)
Step 4: Customer Information
Customer Experience:
Enters contact information
Provides service address
Reviews quote summary
API Calls:
POST /api/Lead/CreateOrUpdate
POST /api/Lead/CreateOrUpdateQuote
Step 5: Payment & Booking
Customer Experience:
Selects payment method
Enters payment details
Confirms final booking
API Calls:
GET /api/Lead/BillingTerms
POST /api/Lead/BookQuote
Key Implementation Features
Real-Time Pricing Updates
Use
CalculatePrice
endpoint after each selectionUpdate pricing display immediately
Show breakdown of costs (base + add-ons)
Dynamic Form Generation
Use
Questions
endpoint to build variable formsSupport different question types (text, select, number)
Show/hide questions based on service selections
Progressive Disclosure
Start with basic service selection
Add complexity progressively through multiple steps
Maintain customer context throughout entire flow
Availability Integration
Real-time availability checking using
Availability
endpointCalendar-style date selection interface
Time slot booking with provider scheduling
Features Mapping
Feature | MaidCentral API Endpoint | Implementation Notes |
Service Categories | GET /api/Lead/ScopeGroups | Industry-level service types |
Variables (bedrooms/bathrooms) | GET /api/Lead/Questions | Dynamic form questions |
Real-time pricing | POST /api/Lead/CalculatePrice | Calculate on each selection |
Add-ons/Extras | GET /api/Lead/RateModifications | Additional services |
Availability calendar | GET /api/Lead/Availability | Date/time selection |
Payment processing | POST /api/Lead/BookQuote | Final booking with payment |
Dynamic Question Handling
Filter questions by service selections
Support conditional logic in frontend
Handle different question types appropriately
Mobile Optimization
Multi-step form works seamlessly on mobile
Touch-friendly interface design
Responsive pricing display
Integration Best Practices
Performance Optimizations
Cache static data (ScopeGroups, PostalCodes, BillingTerms)
Debounce pricing calculations during user input
Progressive loading of form sections
Error Handling
Validate postal codes before allowing progression
Handle availability conflicts gracefully
Provide clear error messages at each step
User Experience
Save progress between steps
Allow easy navigation between completed steps
Provide clear pricing breakdowns
Show loading states during API calls
This mapping provides a complete blueprint for creating a one-page style booking experience using the MaidCentral API, delivering a professional, user-friendly booking flow with real-time pricing and availability.