Using Architect’s Evaluate Schedule Group Action for Complex Holiday Override Logic
Executive Summary & Architectural Context
Standard business hours are simple to manage. However, managing a global contact center requires a robust architecture for “Exception Handling”-holidays, staff training days, and regional early-closures. A Principal Architect knows that hard-coding holiday dates into an Architect flow is a recipe for maintenance disaster.
The Evaluate Schedule Group action in Architect is the engine that drives this logic. By decoupling the calendar (Schedules) from the routing logic (Call Flows), you can update an entire organization’s holiday behavior from a central Admin UI without ever touching a script. This masterclass focuses on building a hierarchical schedule structure that handles recurring holidays, one-off overrides, and “Cascading Closures.”
Prerequisites, Roles & Licensing
- Licensing Tier: Genesys Cloud CX 1, 2, or 3.
- Granular Permissions:
Architect > Flow > View, SearchTelephony > Schedule > View, Add, Edit
- Dependencies: Schedule Groups must be pre-configured in the Admin UI.
The Implementation Deep-Dive
1. The Hierarchical Schedule Group Strategy
To manage complex logic, do not put every event into a single schedule. Use a Hierarchy of Schedule Groups.
The Blueprint:
- Group A (Holidays): Contains all fixed and floating holidays (Christmas, Easter, Bank Holidays).
- Group B (Standard Hours): Contains the 9-to-5 weekly recurring schedules.
- Group C (Training/Ad-Hoc): Contains temporary early closures for company meetings.
2. The Cascading Evaluation Logic in Architect
In your call flow, the order of evaluation is critical.
Architect Logic Workflow:
- Evaluate Group A (Holidays):
- Open Path: This means it is currently a Holiday. Proceed to “Closed for Holiday” logic.
- Closed Path: It is NOT a holiday. Move to the next check.
- Evaluate Group C (Ad-Hoc):
- Open Path: This means an emergency or training closure is active. Proceed to “Temporary Closure” logic.
- Closed Path: No ad-hoc closure. Move to the final check.
- Evaluate Group B (Standard Hours):
- Open Path: We are in normal business hours. Proceed to the main IVR menu.
- Closed Path: We are after-hours. Proceed to the Voicemail/Night service logic.
[!WARNING]
The Trap: The “Closed” Confusion. In Architect, theOpenpath of a schedule evaluation means the current time matches an event in that group. If your “Holiday” group has an event for Dec 25th, the flow will follow theOpenpath on that day. Beginners often get this backward and route holiday callers to the live agents.
3. Implementing Dynamic Override Prompts
Instead of a generic “We are closed” message, use the Schedule Name to play a specific prompt.
Implementation Detail:
The Evaluate Schedule Group action provides an output variable: Flow.ScheduleName.
- If
Flow.ScheduleName == "Christmas Day", playprompt.holiday_christmas. - If
Flow.ScheduleName == "Staff Training", playprompt.general_training.
[!TIP]
Architectural Reasoning: This allows you to have a single “Holiday Flow” that feels personalized to the caller based on the specific calendar event currently active, reducing the need for multiple decision blocks.
Validation, Edge Cases & Troubleshooting
Edge Case 1: Time Zone Drift
The failure condition: The contact center closes 1 hour too early or stays open 1 hour too late.
The root cause: Discrepancy between the Schedule Group Time Zone and the Architect Flow Default Time Zone.
The solution: Always set your Schedule Groups to the Explicit Time Zone of the physical location (e.g., America/New_York), and verify that your Architect flow is not defaulting to UTC.
Edge Case 2: Floating Holidays (Easter/Lunar New Year)
The failure condition: The contact center is open on a holiday because the date changed this year.
The root cause: Schedules were created as “Yearly Recurring” on a fixed date.
The solution: Genesys Cloud allows for “Specific Dates.” A Principal Architect performs a “New Year Audit” every December to manually set the specific dates for floating holidays for the next 12 months, ensuring no gap in coverage.