Thank you Jake. Please reach out if you need anything. We're using this today in our digital bot, and we can apply the same approach in voice as well.
Original Message:
Sent: 10-28-2025 13:01
From: Jake Hofer
Subject: The Big, Bad Bot Bash is BACK!!!
This is an awesome bot, am passing the idea to our service desk team.
------------------------------
Jake Hofer
Network Voice Engineer Associate
------------------------------
Original Message:
Sent: 10-19-2025 21:35
From: Phaneendra Avatapalli
Subject: The Big, Bad Bot Bash is BACK!!!
The Holiday-Smart Callback Scheduler
Problem
Users who were locked out of their accounts, due to forgotten passwords, MFA failures. They had no way to request help once the Service Desk closed at 6 pm AEST/AEDT.
- IT support operates only Monday – Friday, 8 am – 6 pm (Melbourne time).
- Staff and students overseas were left waiting through the night or weekend.
- No automatic way existed to queue a callback for the next business day.
Solution
I built a Genesys chatbot-driven callback scheduler that lets users securely lodge a request at any hour even at 2 am on a Sunday.
The bot determines the next open business day, skips weekends and public holidays, and schedules an outbound callback in the correct one-hour slot (9am-5pm Melbourne time).
How it works
- Melbourne-aware scheduling: The bot computes the target business day and slot in local Melbourne time and then converts to UTC using the correct AEST ↔ AEDT offset based on the target date.
- Weekend + holiday loop: A lightweight loop checks the date against weekends and a Public Holiday Data Table (YYYY-MM-DD keys). It advances until it finds the first open day, guaranteeing callbacks always land on valid business days.
- Capacity and duplicate control: Before confirming a callback, the bot queries Genesys Analytics to:
- Count callbacks already scheduled for that target business day and queue.
- Prevent duplicate callbacks for the same phone number and date - ensuring fair load distribution and avoiding repeat bookings.
- Self-adjusting for DST: Because offsets are calculated from the target day rather than "now," transitions between AEST and AEDT are handled automatically no code change required.
- Data-table driven: Public holidays are maintained externally; month and year transitions work naturally with date math.
Results
- Around 45 callback requests per month are now auto-scheduled.
- Users save 12 – 48 hours of waiting per request, more than 90 hours of total wait time saved each month.
- Zero missed callbacks across DST changes, weekends, and holidays.
Impact
This bot closes the service-availability gap between "after hours" and "next business day," ensuring no user ever gets stranded outside support hours even on long weekends or during daylight-saving changeovers.
Example (11:00–12:00)
Build the Melbourne-local timestamp, then subtract the correct offset (11h in AEDT, 10h in AEST) to store the callback in UTC:
Note: We use Minute(Flow.LocalDateTime) when building the Melbourne-local timestamp so callbacks don't all land exactly at 11:00 each request keeps the user's current minute (e.g., 11:23), which distributes calls across the hour.
AddHours(
MakeDateTime(
Year(Flow.TargetBizDate11),
Month(Flow.TargetBizDate11),
Day(Flow.TargetBizDate11),
11,
Minute(Flow.LocalDateTime),
0
),
-If(
MakeDateTime(Year(Flow.TargetBizDate11),Month(Flow.TargetBizDate11),Day(Flow.TargetBizDate11),0,0,0)
< GetDayOfWeekOccurrence(1,1,Year(Flow.TargetBizDate11),4,3,0,0)
Or
MakeDateTime(Year(Flow.TargetBizDate11),Month(Flow.TargetBizDate11),Day(Flow.TargetBizDate11),0,0,0)
>= GetDayOfWeekOccurrence(1,1,Year(Flow.TargetBizDate11),10,2,0,0),
11,
10
)
)
Huge thanks to everyone in this community for the wealth of knowledge and support you share!
------------------------------
Phaneendra
Technical Solutions Consultant
Monash University
Australia