如何根据当前星期及时间段拆分IVR呼叫流程
IVR 按时间拆分呼叫流程需求实现说明
这个需求完全可以实现,属于IVR系统的标准通用能力,无论是自研还是商用IVR平台都支持该场景的配置/开发。
核心实现逻辑
- 首先获取呼入时刻的服务器本地时间(注意对齐业务所在时区,避免跨时区误差),提取两个关键判断参数:星期值、当前时分
- 然后进行两层条件匹配:
- 匹配星期范围:是否为周一至周五
- 匹配时间区间:是否落在8:00-17:00范围内
- 两个条件同时满足时路由到工作时间业务流程,其余所有场景走非营业时间流程
代码实现示例(Python伪代码)
from datetime import datetime # 按需替换为业务对应时区的时间获取方法,避免时区偏差 def judge_ivr_route(): now = datetime.now() weekday = now.weekday() # 返回值0对应周一,4对应周五,5/6对应周六周日 current_total_min = now.hour * 60 + now.minute # 时间区间可自行调整边界,示例17:00整呼入算非工作时间 is_work_time = 8*60 <= current_total_min < 17*60 is_workday = 0 <= weekday <= 4 return "工作时间流程" if is_workday and is_work_time else "非营业时间流程"
商用IVR平台配置方法
如果用的是商用可视化IVR平台,不需要编码,直接在流程编辑页面拖拽「时间条件」节点,配置好对应时间区间和分支路由规则即可生效。
额外注意事项
- 如果需要把法定节假日也归为非工作时间,可额外维护一份法定节假日日期列表,在判断逻辑中加一层日期匹配即可
- 所有时间判断统一以服务器时间为基准,不要使用线路侧或客户端传递的时间,避免出现判断错误
- 上线前建议覆盖边界场景测试:7:59、8:00、16:59、17:00、周五17:01、周末全天这些用例全部验证通过后再上线
内容的提问来源于stack exchange,提问作者Hunter Lanier
相关产品推荐
相关产品推荐

