Impact of appointment booking configuration changes on existing appointment records


Description

Appointment Booking configuration is used to create an application level configuration, which includes several service level configurations.

Appointment Booking Service Configuration allows administrators to create configurations that defines the Appointment durations, windows, appointments per slot, daily schedule, break times, holidays, lead time, etc., for a particular location. This configuration is used to identify the available slots, capacity of a location for a given day and allows users to select appointment slots based on the parameters.

Once a configuration is finalized and appointments start getting booked with a given configuration, changing some of the configuration values can have undesired side effects on existing and future appointments.

This document provides some do's and don'ts on handling appointment booking configuration after appointments start getting scheduled. This list is not an exhaustive list of all the side effects. 


Appointment Booking configuration

  1. Name:
    1. Can change the name field. This will not cause any side effects

  2. Active:
    1. Do not deactivate the configuration when there are existing appointments. This makes the existing appointments invalid.
    2. Can activate the previously inactive configuration as this will not impact any appointments.

  3. Task Table:
    1. Do not change the value of this field. This task table is the source of truth for all the appointments.
    2. Modifying this makes the existing appointments invalid.
    3. Instead of changing the existing configuration, administrators can create new configuration.

  4. Auto Acceptance:
    1. Can change this field. This will not cause any side effects.

  5. Portal View:
    1. Can change the value of this field.
    2. This does not impact the slots/ invalidate appointments. This is UI configuration about how to display the slots – Day view / Week view.

  6. Availability Method:

    1. This field value is used to calculate the slots. Any modification to this will have side effect of invalid appointments.
    2. Availability Method – Number of appointments per slot :
      1. Do not change the value of this field.
    3. Availability Method – Scripted :


      1. Do not change the value of this field.
      2. Do not modify the existing script that is used to calculate available slot.

Appointment Booking Service Configuration

  1. Active:
    1. Do not deactivate the configuration when there are existing appointments. This makes the existing appointments invalid.
    2. Can activate the previously inactive configuration as this will not impact any appointments.

  2. Name:
    1. Can change the name field. This will not cause any side effects.

  3. Availability Table:
    1. Do not change the value of this field.
    2. Modifying this makes the existing appointments invalid.
    3. Instead of changing the existing configuration, administrators can create new configuration.

  4. Holiday Schedule:

    1. Do not add new holiday schedule. This makes existing appointments as invalid.
    2. Do not add more holidays for the existing holiday schedule. As the new holidays might already have the appointments.
    3. Can remove holidays.

  5. Catalog Item / Location / Timezone / User contact:

    1. Do not change any of these fields.
    2. This impacts the appointments as these fields are referenced from catalog item, which is the source of truth for tasks that have appointments.

  6. Appointment is mandatory:

    1. Can modify this value.

  7. Appointments per window:

    1. Can increase the number of appointments per window.
    2. Do not reduce the number of appointments per window for a service configuration when the appointments are already created.
    3. Impact: Reducing the total appointments per window, will result in overbooked appointments per slot. (For the appointments created before this change)
    4. Example:
      1. Old configuration: 4 Appointments per window; Total Windows = 2; Total Capacity = 2*4 = 8; Appointments already created per slot = 4; Total capacity used = 4 * 2 = 8
      2. New configuration: 2 Appointments per window; Total Windows = 2; New Total Capacity = 2 * 2 = 4; Appointments already created per slot (based off past config)= 4; Total capacity used = 4 * 2 = 8
      3. Due to modification, we can see that Total capacity used (8) surpassed the new total capacity (4). This is overbooked appointments.


  8. Lead time:

    1. Can change this value. This will not impact any existing appointments.

  9. Future bookable max days:

    1. Do not decrease this value as, there might have been at least one appointment booked in the last day. This modification makes the appointments invalid.
    2. Can increase this value. It will not impact any existing appointments.

  10. Reschedule/Cancel by time:

    1. Conditionally allowed to change this value.
    2. If there is any workflow that impacts existing appointments or users, it is safe not to change this value.

  11. Appointment window / Work duration /Travel duration (round trip):

    1. Do not modify the Appointment Window when the appointments are already created.
    2. Impact: Changing the total capacity of a location will result in overlapping slots which makes the appointments overbooked.
    3. Example:
      1. Old configuration: 5 minutes; Daily schedule:– 9.00 – 9.05, 9.05 – 9.10, 9.10 – 9.15, 9.15 – 9.20; Appointments booked:- 9.00 – 9.05, 9.05-9.10; Appointments Available:- 9.10 – 9.15 , 9.15 – 9.20.
      2. New configuration: 10 minutes; Daily schedule – 9.00 – 9.10, 9.10 – 9.20…; expected available slots:- 9.10 – 9.20 ; Actual slots displayed:– 9.00 – 9.10 , 9.10 – 9.20;
      3. Due to the modification, there will be an overbooking in 9.00 - 9.10 slot, which ideally should not be made available as this slot is already booked in the past as two appointments.

  12. Bookable days:

    1. Can add the days. It won’t impact existing appointments.
    2. Do not remove the bookable days when there are appointments created already.
    3. Impact: This makes the past appointments data as invalid.
    4. Example:
      1. Old configuration: Saturday is bookable; Appointments are booked for Saturday.
      2. New configuration: Saturday is not bookable; Whatever appointments booked for Saturday are no longer valid.

  13. Daily start time / Daily end time / Include daily break:


    1. Daily start time :
      1. Do not modify Daily start time when appointments are already present, as this leads to overbooked slots and invalidating previous appointments.
    2. Daily End time :
      1. Can increase the daily end time. (Only when the Appointment Window, Daily start are not changed)
      2. Do not squeeze end time when appointments are already present, as this also leads to overbooked slots and invalidating previous appointments.
    3. Include daily break :
      1. Do not flip the value of Include daily break field.
      2. Do not newly add the daily break time.
      3. Do not change the duration of break.
    4. Example :
      1. Old configuration : Daily start time – 9.00 AM ; Daily end time – 6.00 PM ; Appointments are created from 9 AM to 6 PM; window duration is 1 hour.
      2. New Configuration : Daily start time – 10.00 AM ; Daily end time – 5.00 PM ; Appointments between 9AM to 10AM and 5PM to 6PM are invalid now
      3. Even if we prepone the start time – start at 8.30 AM; new bookable slots will be created like 08:30-09:30, 09:30-10:30… and will result in overbooking for the configuration
System Properties
  1. sn_apptmnt_booking.max_appointments_returned : Can modify this value.
  2. sn_apptmnt_booking.user_max_new_appointments_daily : Can modify this value.

Steps to Reproduce

1. Create appointment booking configuration for window duration 1 hour.

2. Appointment slots will be created for 1 hour

3. Schedule few appoints for above slot

4. Change window duration to 30 minutes

5. Application will create new set of slots

6. Old appointments with old slots are invalid

7. In net effect, you will see slot overbooking due to appointments for old slots + appointments for new slots


Workaround

As explained, it is recommended not to modify any parameter of the appointment booking configuration


Related Problem: PRB1475288