电话机器人系统工作日外呼:接口配置与实现指南

一、工作日设置在自动外呼任务中的核心作用

在电话机器人系统中,自动外呼任务的执行时间控制直接影响业务效率与客户体验。工作日设置作为时间控制的核心维度,需解决以下关键问题:

  1. 业务合规性:避免在法定节假日或非营业日触发外呼,防止违反行业规范(如金融、教育行业)。
  2. 资源优化:集中工作日在高峰时段分配机器人资源,非工作日释放算力以降低运营成本。
  3. 客户体验:确保外呼时间与客户可接听时段匹配(如工作日白天而非周末清晨)。

典型场景包括:

  • 电商行业仅在工作日10:00-18:00外呼促销活动
  • 金融行业在交易日(非周末/节假日)推送理财通知
  • 教育机构在学期内的工作日傍晚进行课程回访

二、工作日配置的接口设计原理

主流电话机器人系统通过RESTful API实现工作日设置,其核心设计包含以下要素:

1. 数据模型设计

  1. {
  2. "schedule_id": "WS20230801",
  3. "workday_rule": {
  4. "type": "weekly", // "monthly""custom"
  5. "weekdays": [1, 2, 3, 4, 5], // 1=周一, 7=周日
  6. "exclude_holidays": true,
  7. "holiday_calendar_id": "CHN_2023"
  8. },
  9. "time_range": {
  10. "start_hour": 9,
  11. "end_hour": 18
  12. },
  13. "time_zone": "Asia/Shanghai"
  14. }
  • 规则类型:支持每周固定日、每月特定日或自定义日期列表
  • 节假日处理:通过日历ID关联法定节假日表(需系统提供或第三方接入)
  • 时区控制:确保多地域部署时的时区正确性

2. 接口调用流程

完整的工作日外呼任务配置需通过三个接口协同完成:

  1. 工作日规则创建:定义可外呼的日期范围
  2. 外呼任务配置:关联工作日规则与话术、线路等资源
  3. 任务状态监控:实时获取执行结果与异常告警

三、具体接口调用实现示例

以下以某主流云服务商的电话机器人API为例,展示完整实现过程:

1. 创建工作日规则

  1. POST /api/v1/workday_schedules HTTP/1.1
  2. Content-Type: application/json
  3. Authorization: Bearer {API_KEY}
  4. {
  5. "name": "Weekday_Business_Hours",
  6. "rule": {
  7. "type": "weekly",
  8. "weekdays": [1, 2, 3, 4, 5],
  9. "time_range": {
  10. "start": "09:00:00",
  11. "end": "18:00:00"
  12. },
  13. "holiday_config": {
  14. "use_system_calendar": true,
  15. "custom_holidays": []
  16. }
  17. }
  18. }

关键参数说明

  • weekdays数组中的数字对应ISO周几(1=周一)
  • holiday_config支持系统日历或自定义节假日列表
  • 返回的schedule_id需用于后续任务配置

2. 配置自动外呼任务

  1. POST /api/v1/outbound_tasks HTTP/1.1
  2. Content-Type: application/json
  3. {
  4. "name": "Promotion_Campaign",
  5. "schedule_id": "WS20230801",
  6. "call_list_id": "CL20230725",
  7. "script_id": "SC20230615",
  8. "max_concurrent": 50,
  9. "retry_policy": {
  10. "max_attempts": 3,
  11. "interval_minutes": 30
  12. }
  13. }

执行逻辑

  1. 系统每日0点检查次日是否符合schedule_id规则
  2. time_range指定时段内启动外呼
  3. 节假日自动跳过(当use_system_calendar为true时)

3. 查询任务执行日志

  1. GET /api/v1/outbound_tasks/{task_id}/logs?date=2023-08-15 HTTP/1.1

返回示例:

  1. {
  2. "date": "2023-08-15",
  3. "total_calls": 482,
  4. "success_rate": 82.3,
  5. "failed_reasons": {
  6. "NO_ANSWER": 120,
  7. "BUSY": 45,
  8. "HOLIDAY_SKIP": 0 // 因配置正确未触发
  9. }
  10. }

四、最佳实践与注意事项

1. 时区与夏令时处理

  • 服务器时区应与业务时区保持一致
  • 夏令时切换前需更新系统时区配置
  • 建议在接口中显式指定time_zone参数

2. 节假日数据管理

  • 定期更新节假日日历(建议每月检查)
  • 重要节假日前进行系统压力测试
  • 保留3年以上的节假日历史数据用于分析

3. 异常情况处理

  1. # 伪代码:工作日规则验证逻辑
  2. def validate_workday(schedule, target_date):
  3. if not is_weekday(schedule, target_date):
  4. return False
  5. if schedule.exclude_holidays and is_holiday(target_date):
  6. return False
  7. current_time = get_current_time(schedule.time_zone)
  8. return schedule.time_range.contains(current_time)

4. 性能优化建议

  • 批量创建工作日规则(单次API调用支持100条规则)
  • 使用缓存机制存储常用工作日配置
  • 对大规模外呼任务进行分片处理(按客户地域/行业分组)

五、常见问题解决方案

Q1:外呼任务在非工作日触发?

  • 检查exclude_holidays是否设为true
  • 验证节假日日历ID是否正确
  • 确认系统时间与业务时区同步

Q2:工作日规则变更后未立即生效?

  • 多数系统采用每日凌晨同步机制
  • 紧急变更时需调用/api/v1/schedules/{id}/refresh接口

Q3:跨时区业务如何处理?

  • 为每个时区创建独立工作日规则
  • 在客户数据中标注时区字段
  • 外呼任务配置时关联客户时区

通过系统化的工作日设置与接口调用,电话机器人系统可实现95%以上的定时任务准确率。建议每季度进行配置审计,结合业务数据优化外呼时段策略,持续提升客户触达效率。