在Zoho上创建响应时间KPI:调整工作时段内的响应时间计算规则
响应时间KPI计算逻辑优化(仅统计工作时段)
当前响应时间KPI计算包含非工作时段(18点后)的时长,需更新计算逻辑,使其仅基于周一至周日9:00-17:00的工作时段。例如:若咨询在17点后提交,响应时间应从次日9:00开始计算。
原实现代码
id = id[Response Time == null]; if (time(id.get("Received Time")) >= time("09:00:00") and time(id.get("Received Time")) <= time("17:00:00")) { id.put("Response Time", id.get("Received Time")); } else { next_day = dateAddDays(date(id.get("Received Time")), 1); response_time = dateAddHours(date(next_day), 9); id.put("Response Time", response_time + time("00:00:00")); }
原代码存在的问题
原代码只区分了“工作时段内”和“非工作时段”两种情况,所有非工作时段的提交都直接跳转到次日9点,但忽略了关键场景:如果提交时间是当天9点前,应该用当天9点作为响应计算起点,而非次日。
优化后的代码
id = id[Response Time == null]; var receivedTime = id.get("Received Time"); var receivedDate = date(receivedTime); var receivedTimeOfDay = time(receivedTime); // 定义工作时段起止时间,方便后续调整 var workStartTime = time("09:00:00"); var workEndTime = time("17:00:00"); if (receivedTimeOfDay >= workStartTime && receivedTimeOfDay <= workEndTime) { // 提交时间在工作时段内,直接用提交时间作为响应计算起点 id.put("Response Time", receivedTime); } else if (receivedTimeOfDay < workStartTime) { // 提交时间早于当天上班时间,用当天9点作为起点 var responseTime = dateAddHours(receivedDate, 9); id.put("Response Time", responseTime + time("00:00:00")); } else { // 提交时间晚于当天下班时间,用次日9点作为起点 var nextWorkDay = dateAddDays(receivedDate, 1); var responseTime = dateAddHours(nextWorkDay, 9); id.put("Response Time", responseTime + time("00:00:00")); }
优化说明
- 拆分三种时间场景的判断逻辑,覆盖所有非工作时段的正确处理方式
- 将工作时段起止时间抽为变量,后续调整上下班时间只需修改这两个值
- 新增变量存储接收时间的日期和时分部分,提升代码可读性
内容的提问来源于stack exchange,提问作者Quinn C
相关产品推荐
相关产品推荐

