Zorya APIZorya API
  • Go to the Portal
  • Sign Up
  • Documentation
  • API Reference
  • Tables
  • Copyright © 2026 Zorya Telecom, S.A. de C.V.

APPOINTMENT_BOOKING Category

APPOINTMENT_BOOKING Category

The APPOINTMENT_BOOKING category is designed for scheduling, booking, and reservation systems. Use this category when users need to select dates, times, or reserve services, appointments, or events.

Category Specification

Code
{ "flowCategories": ["APPOINTMENT_BOOKING"] }

Use Cases

Perfect for APPOINTMENT_BOOKING

  • Medical Appointments - Doctor visits, consultations, treatments
  • Service Bookings - Repair services, consultations, installations
  • Event Registration - Workshops, seminars, conferences
  • Reservation Systems - Restaurants, hotels, meeting rooms
  • Class Scheduling - Fitness classes, tutorials, training sessions

Not Suitable for APPOINTMENT_BOOKING

  • User registration - Use SIGN_UP instead
  • General inquiries - Use CONTACT_US instead
  • Feedback collection - Use SURVEY instead
  • Lead generation - Use LEAD_GENERATION instead

Recommended Components

Essential Components

  • DATE_PICKER - Single date selection for appointments
  • CALENDAR_PICKER - Advanced date selection with availability
  • DROPDOWN - Time slots, service types, duration options
  • RADIO_BUTTONS_GROUP - Service selection, appointment types
  • FOOTER - Booking confirmation and submission

Optional Components

  • TEXT_INPUT - Contact information, special requests
  • TEXT_AREA - Appointment notes, specific requirements
  • CHECKBOX_GROUP - Additional services, preferences
  • OPT_IN - Cancellation policies, reminders consent
  • PHOTO_PICKER - Reference images, condition documentation

Implementation Examples

Basic Medical Appointment

Code
{ "flowName": "medical_appointment_booking", "flowCategories": ["APPOINTMENT_BOOKING"], "flowJson": { "screens": [ { "id": "APPOINTMENT_BOOKING", "terminal": true, "success": true, "title": "Book Medical Appointment", "layout": { "children": [ { "type": "TEXT_HEADING", "text": "Schedule Your Appointment" }, { "type": "DROPDOWN", "label": "Appointment Type", "name": "appointment_type", "required": true, "dataSource": [ {"id": "consultation", "title": "General Consultation - 30 min"}, {"id": "followup", "title": "Follow-up Visit - 15 min"}, {"id": "checkup", "title": "Annual Check-up - 45 min"}, {"id": "specialist", "title": "Specialist Consultation - 60 min"} ] }, { "type": "DATE_PICKER", "label": "Preferred Date", "name": "appointment_date", "required": true, "minDate": "2024-04-01", "maxDate": "2024-08-31", "includeDays": [1, 2, 3, 4, 5], "helperText": "Available Monday through Friday" }, { "type": "DROPDOWN", "label": "Preferred Time", "name": "appointment_time", "required": true, "dataSource": [ {"id": "0900", "title": "9:00 AM"}, {"id": "1000", "title": "10:00 AM"}, {"id": "1100", "title": "11:00 AM"}, {"id": "1400", "title": "2:00 PM"}, {"id": "1500", "title": "3:00 PM"}, {"id": "1600", "title": "4:00 PM"} ] }, { "type": "TEXT_AREA", "label": "Reason for Visit (Optional)", "name": "visit_reason", "required": false, "maxLength": "300" }, { "type": "OPT_IN", "label": "Send me appointment reminders via WhatsApp", "name": "reminder_consent", "required": false }, { "type": "FOOTER", "label": "Book Appointment", "onClickAction": { "name": "COMPLETE" }, "centerCaption": "You'll receive confirmation within 2 hours" } ] } } ] } }

Multi-Step Service Booking

Code
{ "flowName": "home_service_booking", "flowCategories": ["APPOINTMENT_BOOKING"], "flowJson": { "screens": [ { "id": "SERVICE_SELECTION", "terminal": false, "success": false, "title": "Select Service", "layout": { "children": [ { "type": "TEXT_HEADING", "text": "What service do you need?" }, { "type": "RADIO_BUTTONS_GROUP", "name": "service_type", "label": "Service Type", "required": true, "dataSource": [ { "id": "plumbing", "title": "Plumbing Repair", "description": "Leaks, clogs, installations - 2-4 hours" }, { "id": "electrical", "title": "Electrical Work", "description": "Wiring, outlets, lighting - 1-3 hours" }, { "id": "hvac", "title": "HVAC Service", "description": "Heating, cooling, maintenance - 2-6 hours" }, { "id": "appliance", "title": "Appliance Repair", "description": "Washer, dryer, refrigerator - 1-2 hours" } ] }, { "type": "TEXT_AREA", "label": "Describe the Problem", "name": "problem_description", "required": true, "maxLength": "500", "helperText": "Please provide as much detail as possible" }, { "type": "FOOTER", "label": "Continue to Scheduling", "onClickAction": { "name": "NAVIGATE", "next": "SCHEDULING" } } ] } }, { "id": "SCHEDULING", "terminal": false, "success": false, "title": "Choose Date & Time", "layout": { "children": [ { "type": "TEXT_HEADING", "text": "When works best for you?" }, { "type": "CALENDAR_PICKER", "name": "service_dates", "label": "Available Dates", "description": "Select 2-3 dates you're available", "mode": "MULTIPLE", "required": true, "minDate": "2024-04-01", "maxDate": "2024-06-30", "minDays": 2, "maxDays": 3, "helperText": "More options = faster scheduling" }, { "type": "CHECKBOX_GROUP", "name": "time_preferences", "label": "Time Preferences", "required": true, "minSelectedItems": 1, "dataSource": [ {"id": "morning", "title": "Morning (8 AM - 12 PM)"}, {"id": "afternoon", "title": "Afternoon (12 PM - 5 PM)"}, {"id": "evening", "title": "Evening (5 PM - 8 PM)"} ] }, { "type": "FOOTER", "label": "Continue to Contact Info", "onClickAction": { "name": "NAVIGATE", "next": "CONTACT_INFO" } } ] } }, { "id": "CONTACT_INFO", "terminal": true, "success": true, "title": "Contact Information", "layout": { "children": [ { "type": "TEXT_HEADING", "text": "How can we reach you?" }, { "type": "TEXT_INPUT", "label": "Full Name", "name": "customer_name", "required": true }, { "type": "TEXT_INPUT", "label": "Phone Number", "name": "phone", "required": true, "inputType": "NUMBER" }, { "type": "TEXT_INPUT", "label": "Service Address", "name": "service_address", "required": true }, { "type": "DROPDOWN", "label": "Property Type", "name": "property_type", "required": true, "dataSource": [ {"id": "house", "title": "Single Family House"}, {"id": "apartment", "title": "Apartment/Condo"}, {"id": "commercial", "title": "Commercial Building"} ] }, { "type": "OPT_IN", "label": "I agree to the service terms and cancellation policy", "name": "terms_accepted", "required": true }, { "type": "FOOTER", "label": "Request Service Booking", "onClickAction": { "name": "COMPLETE" }, "centerCaption": "We'll call within 1 hour to confirm your appointment" } ] } } ] } }

Event Registration with Capacity

Code
{ "flowName": "workshop_registration", "flowCategories": ["APPOINTMENT_BOOKING"], "flowJson": { "screens": [ { "id": "WORKSHOP_REGISTRATION", "terminal": true, "success": true, "title": "Workshop Registration", "layout": { "children": [ { "type": "TEXT_HEADING", "text": "Register for Workshop" }, { "type": "BODY", "text": "Join our hands-on digital marketing workshop. Limited to 20 participants for personalized attention." }, { "type": "IMAGE", "src": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/...", "width": 400, "height": 200, "scaleType": "FIT", "altText": "Digital marketing workshop classroom setup" }, { "type": "DROPDOWN", "label": "Workshop Date", "name": "workshop_date", "required": true, "dataSource": [ {"id": "apr15", "title": "April 15, 2024 - 9:00 AM (8 spots left)"}, {"id": "apr22", "title": "April 22, 2024 - 9:00 AM (12 spots left)"}, {"id": "apr29", "title": "April 29, 2024 - 2:00 PM (15 spots left)"}, {"id": "may06", "title": "May 6, 2024 - 9:00 AM (20 spots left)"} ] }, { "type": "TEXT_INPUT", "label": "Full Name", "name": "attendee_name", "required": true }, { "type": "TEXT_INPUT", "label": "Company (Optional)", "name": "company_name", "required": false }, { "type": "DROPDOWN", "label": "Experience Level", "name": "experience_level", "required": true, "dataSource": [ {"id": "beginner", "title": "Beginner - New to digital marketing"}, {"id": "intermediate", "title": "Intermediate - Some experience"}, {"id": "advanced", "title": "Advanced - Experienced marketer"} ] }, { "type": "CHIPS_SELECTOR", "name": "topics_interest", "label": "Topics of Interest", "required": false, "maxSelectedItems": 3, "description": "What aspects interest you most?", "dataSource": [ {"id": "social", "title": "Social Media"}, {"id": "seo", "title": "SEO"}, {"id": "ppc", "title": "Paid Advertising"}, {"id": "email", "title": "Email Marketing"}, {"id": "content", "title": "Content Marketing"}, {"id": "analytics", "title": "Analytics"} ] }, { "type": "OPT_IN", "label": "Send me information about future workshops", "name": "future_workshops", "required": false }, { "type": "FOOTER", "label": "Register for Workshop - $99", "onClickAction": { "name": "COMPLETE" }, "centerCaption": "Registration includes materials, lunch, and certificate" } ] } } ] } }

Scheduling Best Practices

Date and Time Management

  • Business hours - Use includeDays to limit to operating days
  • Advance booking - Set appropriate minDate for preparation time
  • Booking horizon - Set realistic maxDate based on planning capacity
  • Holiday blocking - Use unavailableDates for holidays and closures

Availability Optimization

Code
{ "type": "DATE_PICKER", "minDate": "2024-04-01", // Tomorrow or next business day "maxDate": "2024-07-31", // 3-month booking window "includeDays": [1, 2, 3, 4, 5], // Business days only "unavailableDates": [ // Block holidays and closures "2024-04-15", "2024-05-27", "2024-07-04" ] }

Time Slot Management

Offer realistic time windows:

Code
{ "type": "DROPDOWN", "label": "Preferred Time", "name": "time_slot", "dataSource": [ {"id": "0900", "title": "9:00 AM - 10:00 AM"}, {"id": "1030", "title": "10:30 AM - 11:30 AM"}, {"id": "1400", "title": "2:00 PM - 3:00 PM"} ] }

Confirmation and Communication

Booking Confirmation

Code
{ "type": "CAPTION", "text": "**Confirmation:** You'll receive booking details via email within 15 minutes" }

Reminder Consent

Code
{ "type": "OPT_IN", "label": "Send me appointment reminders 24 hours before", "name": "reminder_consent", "required": false }

Cancellation Policy

Code
{ "type": "CAPTION", "text": "**Cancellation Policy:** Free cancellation up to 24 hours before appointment. Late cancellations may incur fees." }

Common Booking Patterns

Flexible Scheduling

Allow multiple date options:

Code
{ "type": "CALENDAR_PICKER", "mode": "MULTIPLE", "minDays": 2, "maxDays": 3, "description": "Select 2-3 dates you're available for faster scheduling" }

Service Duration Display

Show time estimates:

Code
{ "dataSource": [ {"id": "basic", "title": "Basic Service - 1 hour"}, {"id": "standard", "title": "Standard Service - 2-3 hours"}, {"id": "comprehensive", "title": "Comprehensive Service - 4-6 hours"} ] }

Pricing Information

Include cost transparency:

Code
{ "type": "FOOTER", "label": "Book Consultation - $150", "centerCaption": "Final pricing discussed during consultation" }

Integration Considerations

Calendar Systems

  • Availability checking - Real-time slot availability
  • Conflict prevention - Avoid double booking
  • Buffer time - Account for setup/cleanup between appointments
  • Provider schedules - Consider staff availability

Notification Systems

  • Confirmation emails - Immediate booking confirmation
  • Reminder messages - 24-hour advance reminders
  • Cancellation handling - Automated cancellation processing
  • Rescheduling options - Allow easy date changes

Common Error Scenarios

Date Selection Errors

Code
{ "errorCode": "DATE_OUT_OF_RANGE", "message": "Selected date is outside available booking window" }

Time Slot Conflicts

Code
{ "errorCode": "TIME_SLOT_UNAVAILABLE", "message": "Selected time slot is no longer available. Please choose another time." }

Booking Limits

Code
{ "errorCode": "BOOKING_LIMIT_EXCEEDED", "message": "Maximum bookings per customer reached. Please contact support." }

Success Metrics

Booking Performance

  • Conversion Rate - Percentage completing booking
  • Abandonment Points - Where users drop off
  • Booking Lead Time - Average days between booking and appointment
  • No-show Rate - Percentage of missed appointments

Optimization Opportunities

  • Flexible scheduling - Multiple date options
  • Clear expectations - Duration, pricing, preparation
  • Easy rescheduling - Reduce no-shows with flexibility
  • Confirmation clarity - Clear next steps after booking

Related Categories

  • LEAD_GENERATION Category - For capturing interested prospects
  • CUSTOMER_SUPPORT Category - For service-related support
  • CONTACT_US Category - For general inquiries

APPOINTMENT_BOOKING flows should prioritize clear availability, flexible scheduling options, and transparent communication about next steps

Last modified on October 7, 2026
On this page
  • Category Specification
  • Use Cases
    • Perfect for APPOINTMENT_BOOKING
    • Not Suitable for APPOINTMENT_BOOKING
  • Recommended Components
    • Essential Components
    • Optional Components
  • Implementation Examples
    • Basic Medical Appointment
    • Multi-Step Service Booking
    • Event Registration with Capacity
  • Scheduling Best Practices
    • Date and Time Management
    • Availability Optimization
    • Time Slot Management
  • Confirmation and Communication
    • Booking Confirmation
    • Reminder Consent
    • Cancellation Policy
  • Common Booking Patterns
    • Flexible Scheduling
    • Service Duration Display
    • Pricing Information
  • Integration Considerations
    • Calendar Systems
    • Notification Systems
  • Common Error Scenarios
    • Date Selection Errors
    • Time Slot Conflicts
    • Booking Limits
  • Success Metrics
    • Booking Performance
    • Optimization Opportunities
  • Related Categories
JSON
JSON
JSON
JSON
JSON
JSON
JSON
JSON
JSON
JSON
JSON
JSON
JSON
JSON
JSON