Consider a bank with Operating hours 9AM to 5PM and a wealth manager Sam who works flexible hours 8AM to 6PM. During regular operating hours Sam is available to take any type of appointments, however for “Privileged” customers he doesn’t mind talking to them as early as 8AM and as late as up to 6PM (additional 2 hours – beyond the operating hours).
How do we let Privileged customers book appointments that ignore operating hours?
The answer might look simple – we do NOT want to use the Operating hours when it comes to privileged customers – instead use the service resources shifts.
But at the same time we should let normal customers to book appointments during regular hours, which means we need to use the Scheduler features of Shifts & Operating hours at the same time.
That’s exactly the reason for this blog – to explain how to achieve this by understanding the basics of scheduling policies, which are like the rules used by the Scheduling engine.
For every standard Scheduling Flow that does help with Appointment scheduling it is mandatory to use a scheduling policy (if ignored, the default one that is shipped with the product out of the box is used) – which is a way to define the rules we want to run the scheduling flow with. In certain business use cases it is necessary to use different combinations of these rules within a scheduling flow.
Lets try to understand some commonly used rules of scheduling policies before we solution the problem
What are Scheduling Policies?
Scheduling policies enforce one or more rules that help you find the best service resources for appointments. Rules that are used by the Scheduling Engine while calculating Time Slots are explained in detail in our help here. Combinations of these Rules define the policy that can be used for a specific appointment booking experience.
Here are 3 rules on the scheduling policy we will try to understand
- Use ONLY Operating Hours and Do NOT use Shifts
- Use Service Territory Member’s Shifts
- Use Service Territory Operating hours with Shifts
OPTION 1 – Consider ONLY Operating Hours and Do NOT consider Shifts
Operating Hours represent the time slots during which appointments can be scheduled. Administrators can define these timeslots specific to a timezone. Scheduler provides the flexibility to specify the Operating hours at a Service Territory or at a Service Territory Member level. Administrators have to mention either or both of them to let the Scheduler Engine calculate the precise availability of resources and timeslots.
Rules to use when we want to consider Service Territory Operating Hours as setup in the Scheduling Policy
If we use these rules on the Scheduling policy – every customer will ONLY see time slots from 9AM to 5PM. Even our advisor Sam will be ONLY available 9AM to 5PM.
OPTION 2 – Use Service Territory Member’s Shifts
Rules to use when we want to consider Service Territory Member’s Shifts INSTEAD of the Operating Hours
When the “Use service territory member’s shift” is checked alone on a scheduling policy – the scheduling engine will totally SKIP considering the Operating Hours set for the Service Territory Member (either at the service territory or the service territory member record level).
If we use these rules on the Scheduling policy – our advisor Sam will be available to take appointments from 8AM to 6PM. This is the rule we should be using for privileged customers.
OPTION 3 – Use service territory’s operating hours with shifts
Rules to use when we want to consider Service Territory’s Operating Hours ALONG with the Member’s Shifts.
When the “Use service territory member’s shift” is checked along with “Use service territory’s operating hours with shifts” on a scheduling policy – the scheduling engine will totally consider the intersection of shifts and service territory operating hours when determining the availability of service resources.
If we use these rules on the Scheduling policy – our advisor Sam will be available to ALL Customers from 9AM to 5PM. We can use this scheduling policy as default.
Using multiple scheduling policies in the same flow
Standard Scheduler Flow templates come with a global flow variables which can be customized as per our business use case and needs.
SchedulingPolicyName flow variable lets you specify the scheduling policy we intend to invoke from the flow.
Since in our example we want to use 2 different scheduling policies we can validate the customer tier (a custom field on the account object that maintains the customer tier information) and based on the tier information, we can specify the scheduling policy name in the flow.
Extending availability for Privileged Customers
This is how a customized scheduling flow (outbound new appointment in this example here) looks like