Service Appointment
Service Appointments represent a confirmed commitment between a customer and a service provider for a specific service and time.
A service appointment is the only entity in Frappoint that:
- Consumes slots
- Locks service units
- Triggers notifications
- Can be cancelled or rescheduled
Everything else exists to make service appointments safe and predictable.
What is a Service Appointment?
A Service Appointment is a transactional record that links:
- A Customer
- A Service Type
- A Service Provider
- One or more Service Provider Slots
- Optional Service Unit
Once created, a service appointment becomes the source of truth for that appointment.
Why Service Appointments Are Central
They allow Frappoint to:
- Prevent double booking
- Enforce service duration and buffers
- Track status changes
- Integrate with ERPNext documents
- Maintain a clean audit trail
Slots are availability.
Bookings are commitments.
Core Service Appointment Fields
| Field | Description | Notes / Rules |
|---|---|---|
| Customer | The person receiving the service. | Can be a lead, customer, or standalone contact. |
| Service | The specific service being booked. | Determines required duration, buffer times, and service units. |
| Provider | The professional performing the service. | Must offer the service, have consecutive availability, and be on shift. |
| Start & End Time | The appointment window. | Derived from the first and last consumed slot; not directly editable. |
| Slots | List of time slots consumed by the booking. | Immutable after confirmation. |
Service Appointment Status Lifecycle
Service Appointments move through a controlled set of statuses.
| Status | Description | Notes & ERPNext Triggers |
|---|---|---|
| Open | Slots are temporarily reserved and validation is in progress. | Hidden from other customers during this phase. |
| Confirmed | Slots are permanently consumed and service units are locked. | Triggers: Sales Order; notifications may be sent. |
| Completed | Service has been delivered to the customer. | Triggers: Sales Invoice, stock consumption, and commissions. |
| Cancelled | The booking is void and the time is freed up. | Slots are released; specific cancellation rules apply. |
| No Show | (Optional) The customer failed to arrive. | Slots remain consumed; used for analytics and penalties. |
Service Appointment Creation Flow
- Customer selects service
- Available slots are fetched
- Provider and time are selected
- Required slots are reserved
- Service units are validated
- Appointment is confirmed
If any step fails, all reservations are rolled back.
Validation Rules
A service appointment is only valid if:
- Required consecutive slots exist
- Provider is on shift
- Service buffers fit within shift
- Required service units are available
- Appointment respects advance and lead-time rules
All validations occur server-side.
Cancellation & Rescheduling
Cancellation
- Allowed based on system rules
- Releases slots
- Can trigger notifications
Rescheduling
- Implemented as:
- Cancel existing appointment
- Create a new appointment
- Ensures slot integrity
Service Appointment and ERPNext Integration
Depending on settings, a service appointment may:
- Create or link a Sales Order
- Generate a Sales Invoice
- Consume stock items
- Sync to calendars
Service Appointments are ERPNext-aware but not ERPNext-dependent.