Booking Services
Booking Service Documentation
Table of Contents
- 1 Booking Service Documentation
- 1.1 Table of Contents
- 1.2 Overview
- 1.3 Key Features
- 1.3.1 1. Booking Services
- 1.3.2 2. Automated Reminders
- 1.3.3 3. Automated Follow-ups
- 1.3.4 4. Booking Status Management
- 1.3.5 5. Booking Information
- 1.4 Getting Started
- 1.4.1 Prerequisites
- 1.4.2 Initial Setup Steps
- 1.5 How It Works
- 1.5.1 System Architecture
- 1.6 Setting Up Booking Services
- 1.7 Managing Bookings
- 1.7.1 Creating a Booking
- 1.7.2 Booking Actions
- 1.7.2.1 1. Confirm Booking
- 1.7.2.2 2. Reschedule Booking
- 1.7.2.3 3. Cancel Booking
- 1.7.2.4 4. Mark as Completed
- 1.7.2.5 5. Mark as No Show
- 1.7.2.6 6. Update Rating
- 1.7.2.7 7. Update Booking Details
- 1.7.2.8 8. Delete Booking
- 1.8 Reminders and Followups
- 1.8.1 Reminder Behavior
- 1.8.2 Follow-up Behavior
- 1.9 Booking Lifecycle
- 1.9.1 State Transitions
- 1.9.2 Event Flow
- 1.9.3 Automatic Status Changes
- 1.10 API Actions
- 1.10.1 Service Management
- 1.10.2 Booking Management
- 1.10.3 Parameters
- 1.11 Sequence Diagrams
- 1.11.1 Booking Creation Flow
- 1.11.2 Reminder Processing Flow
- 1.11.3 Booking Completion Flow
- 1.11.4 Meeting Start/End Automation
- 1.11.5 Reschedule Flow
- 1.12 Best Practices
- 1.12.1 1. Service Configuration
- 1.12.2 2. Reminder Strategy
- 1.12.3 3. Follow-up Strategy
- 1.12.4 4. Booking Management
- 1.12.5 5. Testing
- 1.13 Troubleshooting
- 1.13.1 Common Issues
- 1.14 Limits and Constraints
Overview
The Booking Service is a comprehensive appointment management system that allows you to:
Create and manage booking services for your business
Schedule appointments with automated reminders
Track booking status through the entire lifecycle
Send automated follow-ups after appointments
Integrate with your chatbot workflows
Important: Booking services are shared across all bots in your workspace, with a maximum limit of 20 booking services.
Key Features
1. Booking Services
Define different types of appointments (consultations, meetings, services, etc.)
Set default duration for each service type
Configure custom service identifiers (Service UID)
Enable/disable services as needed
2. Automated Reminders
Set up to 5 reminder sequences per service
Configure reminder timing (days, hours, minutes before appointment)
Customize reminder messages
Automatic reminder triggering based on scheduled time
3. Automated Follow-ups
Set up to 5 follow-up sequences per service
Send follow-ups after completed or no-show appointments
Configure follow-up timing (days, hours, minutes after appointment)
Customize follow-up messages
4. Booking Status Management
Track bookings through their complete lifecycle:
Pending: Initial booking state
Confirmed: Booking has been confirmed
In Progress: Meeting/appointment has started
Completed: Successfully completed
Cancelled: Booking was cancelled
No Show: Customer didn't attend
Inactive: Service is no longer active
5. Booking Information
Start and end times
Duration (in minutes)
Location details
Source tracking
Custom metadata
Rating system (0-5 stars)
Cancellation/reschedule reasons
Complete audit logs
Getting Started
Prerequisites
workspace account with Ticket/Lists/Bookings addon enabled
Access to booking service management
Basic understanding of your workspace timezone
Initial Setup Steps
Navigate to Booking Services
Go to your workspace settings
Select "Booking Services" from the menu
Create Your First Booking Service
Click the "+ Booking Service" button
Fill in the required information
Configure reminders and follow-ups
Save your service
Integrate with Chatbot
Use the Service UID to reference the service in your bot flows
Configure triggers for booking events
Set up automated responses
How It Works
System Architecture
The booking system operates on a scheduled job basis:
Booking Creation: When a booking is created, the system automatically generates reminder and follow-up schedules based on your configuration.
Reminder Processing:
Runs every minute
Checks for pending reminders within a 2-hour window
Sends reminders and updates status to "sent"
Meeting Events:
Meeting Start: Automatically triggered when the start time is reached
Meeting End: Automatically triggered when the end time is reached
Follow-up Processing:
Scheduled after booking completion or no-show
Runs on the same schedule as reminders
Only sends for completed or no-show bookings
Setting Up Booking Services
Step 1: Create a Booking Service
Required Fields:
Name: Display name for your service (max 100 characters)
Service UID: Unique identifier using alphanumeric characters (max 50 characters)
Cannot be changed after creation
Example:
consultation_30min,demo_call,support_session
Description: Detailed description (max 1,000 characters)
Default Duration: Duration in minutes (0-1000)
Status: Active or Inactive
Step 2: Configure Reminders
For each reminder:
Sequence Number: Automatically assigned (1-5)
Title: Short description (max 50 characters)
Description: Detailed message (max 500 characters)
Timing: Set when to send the reminder
Days before start time
Hours before start time
Minutes before start time
Status: Active or Inactive
Example Reminder Configuration:
Reminder 1:
- Title: "Appointment Tomorrow"
- Days: 1, Hours: 0, Minutes: 0
- Description: "Your appointment is tomorrow at [TIME]"
Reminder 2:
- Title: "Appointment in 1 Hour"
- Days: 0, Hours: 1, Minutes: 0
- Description: "Your appointment starts in 1 hour"
Step 3: Configure Follow-ups
For each follow-up:
Sequence Number: Automatically assigned (1-5)
Title: Short description (max 50 characters)
Description: Detailed message (max 500 characters)
Timing: Set when to send the follow-up
Days after end time
Hours after end time
Minutes after end time
Status: Active or Inactive
Example Follow-up Configuration:
Follow-up 1:
- Title: "How was your appointment?"
- Days: 0, Hours: 2, Minutes: 0
- Description: "We'd love to hear about your experience"
Follow-up 2:
- Title: "Follow-up Survey"
- Days: 1, Hours: 0, Minutes: 0
- Description: "Please take a moment to complete our survey"
Managing Bookings
Creating a Booking
Required Information:
Service UID or Booking Service ID
Start time (in workspace timezone)
Initial status (Pending or Confirmed)
Optional Information:
Custom duration (overrides default)
Location (max 1,000 characters)
Source (max 100 characters)
Metadata (max 5,000 characters)
Notes (max 1,000 characters)
Important Notes:
Start time must be in the future
Reminders are automatically scheduled
Booking Actions
1. Confirm Booking
Changes status from Pending to Confirmed
Only available for pending bookings
Dispatches BOOKING_CONFIRMED event
2. Reschedule Booking
Updates start time, end time, and duration
Can change status to Pending or Confirmed
Preserves already-sent reminders
Reschedules remaining reminders
Requires reschedule reason (max 500 characters)
Restrictions:
Cannot reschedule in-progress bookings
Cannot reschedule final state bookings (cancelled, completed, no-show)
3. Cancel Booking
Changes status to Cancelled
Cancels all pending reminders and follow-ups
Requires cancellation reason (max 500 characters)
Cannot cancel final state bookings
4. Mark as Completed
Changes status to Completed
Skips any unsent reminders
Schedules follow-up messages
Cannot complete final state bookings
5. Mark as No Show
Changes status to No Show
Skips any unsent reminders
Schedules follow-up messages (same as completed)
Cannot mark final state bookings as no-show
6. Update Rating
Set rating from 0-5 stars
Can be updated at any time
Logs the rating change
7. Update Booking Details
Modify location, source, or metadata
Does not affect status or schedule
8. Delete Booking
Permanently removes the booking
Deletes all associated reminders, follow-ups, and logs
Cannot be undone
Reminders and Followups
Reminder Behavior
Scheduling:
Created when booking is created
Calculated as: start_time - (days + hours + minutes)
Status set to "pending" if in future, "skipped" if in past
Sending:
Reminders are sent when scheduled time is reached
Status changes to "sent"
Records sent timestamp
Triggers REMINDER_SENDING event
Statuses:
Pending: Waiting to be sent
Sent: Successfully delivered
Skipped: Not sent (time passed or booking cancelled)
Cancelled: Booking was cancelled
Rescheduling:
Only unsent reminders are rescheduled
Sent reminders are preserved
New scheduled times are calculated
Follow-up Behavior
Scheduling:
Only created when booking is marked as Completed or No Show
Calculated as: end_time + (days + hours + minutes)
Status set to "pending" if in future, "skipped" if in past
Sending:
Follow-ups are sent when scheduled time is reached
Status changes to "sent"
Records sent timestamp
Triggers FOLLOWUP_SENDING event
Important:
Follow-ups are NOT created at booking time
They are only scheduled after completion or no-show
Cancelled bookings do not receive follow-ups
Booking Lifecycle
State Transitions
Created → Pending → Confirmed → In Progress → Completed
↓ ↓
Cancelled No Show
Event Flow
BOOKING_CREATED: Initial booking creation
BOOKING_CONFIRMED: Booking confirmed by user or system
REMINDER_SENDING: Each reminder as it's sent
MEETING_STARTED: Start time reached
MEETING_ENDED: End time reached (auto-completes booking)
BOOKING_COMPLETED: Manually or automatically completed
BOOKING_NO_SHOW: Marked as no-show
FOLLOWUP_SENDING: Each follow-up as it's sent
UPDATE_RATING: Rating updated
BOOKING_RESCHEDULED: Booking time changed
BOOKING_CANCELLED: Booking cancelled
Automatic Status Changes
Pending/Confirmed → In Progress: When start_time is reached
In Progress → Completed: When end_time is reached (via automatic process)
API Actions
Service Management
list_booking_services: Get all booking servicesget_booking_service: Get specific service detailslist_booking_service_reminders: Get reminders for a servicelist_booking_service_followups: Get follow-ups for a service
Booking Management
list_bookings: Get bookings (filtered by user, service, status)get_booking: Get specific booking detailscreate_booking: Create new bookingconfirm_booking: Confirm pending bookingreschedule_booking: Change booking timecancel_booking: Cancel bookingmark_booking_completed: Mark as completedmark_booking_no_show: Mark as no-showupdate_booking_rating: Update rating
Parameters
Common Parameters:
bot_user_ns: Bot user identifier (for testing)service_uid: Unique service identifierbooking_id: Specific booking ID
Booking Creation:
start_time: ISO 8601 format UTC (e.g., "2020-01-02T12:30:00Z")duration: Minutes (optional, uses default if not specified)pending_or_confirmed: Initial statuslocation: Appointment locationsource: Booking sourcemetadata: Custom data (JSON string)notes: Additional notes
Status Updates:
reschedule_reason: Reason for rescheduling (max 500 chars)cancel_reason: Reason for cancellation (max 500 chars)rating: Number between 0-5
Sequence Diagrams
Booking Creation Flow
User → System: Create Booking Request
System → Database: Create booking record
System → Database: Generate reminder schedules
System → Database: Save reminder records
System → EventDispatcher: Dispatch BOOKING_CREATED
EventDispatcher → Triggers: Process configured triggers
System → User: Return booking confirmation
Reminder Processing Flow
CronJob → System: Run reminder processor (every minute)
System → Database: Query pending reminders (2-hour window)
Database → System: Return pending reminders
System → Validator: Check booking status
Validator → System: Validate service is active
System → BotUser: Retrieve bot user details
System → EventDispatcher: Dispatch REMINDER_SENDING event
EventDispatcher → Triggers: Execute reminder flow
System → Database: Update reminder status to 'sent'
System → Database: Record sent timestamp
Booking Completion Flow
User/System → System: Mark booking complete
System → Database: Update booking status to 'completed'
System → Database: Skip unsent reminders
System → Database: Calculate follow-up schedules
System → Database: Create follow-up records
System → EventDispatcher: Dispatch BOOKING_COMPLETED
EventDispatcher → Triggers: Process completion triggers
System → User: Return success response
Meeting Start/End Automation
CronJob → System: Run booking processor (every minute)
System → Database: Query bookings with start_time reached
Database → System: Return matching bookings
System → EventDispatcher: Dispatch MEETING_STARTED event
System → Database: Update status to 'in_progress'
[Later...]
System → Database: Query bookings with end_time reached
Database → System: Return matching bookings
System → EventDispatcher: Dispatch MEETING_ENDED event
System → Database: Update status to 'completed'
System → Database: Schedule follow-ups
Reschedule Flow
User → System: Reschedule request
System → Validator: Check booking status
Validator → System: Validate can reschedule
System → Database: Get sent reminder sequences
System → Database: Delete unsent reminders
System → Database: Update booking times
System → Database: Increment reschedule_count
System → Database: Calculate new reminder schedules
System → Database: Create new reminder records
System → EventDispatcher: Dispatch BOOKING_RESCHEDULED
System → User: Return updated booking
Best Practices
1. Service Configuration
Use clear, descriptive service names
Create unique Service UIDs that are easy to reference
Set realistic default durations
Test reminder and follow-up timing before going live
2. Reminder Strategy
Don't over-remind (2-3 reminders is typically sufficient)
Space reminders appropriately (e.g., 1 day before, 1 hour before)
Make reminder messages clear and actionable
Include relevant booking details in reminders
3. Follow-up Strategy
Send immediate follow-up for feedback (2-4 hours after)
Send survey request 24 hours after appointment
Keep follow-up messages brief and focused
Always include opt-out options
4. Booking Management
Always provide cancellation reasons for analytics
Use the notes field to capture important context
Update ratings to track service quality
Review booking logs regularly
5. Testing
Test the complete booking lifecycle before launch
Verify reminder timing in your timezone
Test rescheduling scenarios
Validate event triggers fire correctly
Troubleshooting
Common Issues
Reminders Not Sending:
Check reminder is set to "Active"
Verify scheduled time is in the future
Confirm booking service is active
Check booking status is not in final state
Follow-ups Not Sending:
Follow-ups only send after completion or no-show
Check follow-up is set to "Active"
Verify booking was completed/no-show (not cancelled)
Confirm scheduled time is correct
Cannot Reschedule:
Ensure booking is not in final state
Verify booking is not currently in progress
Check service is still active
Timezone Issues: