如何在AilinkSWITCH中配置工作日自动外呼?接口调用与策略详解
一、系统架构与工作日设置的核心价值
AilinkSWITCH电话机器人系统采用微服务架构,其外呼任务调度模块通过集成工作日历服务,可精准控制机器人在指定日期执行外呼任务。这种设计解决了传统外呼系统在节假日、周末等非工作日误拨客户导致的资源浪费问题,同时满足金融、教育等行业对合规性外呼的严格要求。
工作日设置的核心价值体现在三方面:
- 合规性保障:避免在法定休息日或企业自定义非工作日触达客户
- 资源优化:集中工作日时段提升线路利用率,降低空转成本
- 客户体验:在目标客户可接听时段执行外呼,提升接通率15%-20%
系统支持两种工作日配置模式:
- 固定模式:基于ISO 8601标准的周循环设置(如仅工作日)
- 自定义模式:通过日历API动态加载节假日安排
二、工作日设置接口详解
2.1 工作日历创建接口
接口定义:
POST /api/v1/workday-calendarsContent-Type: application/jsonAuthorization: Bearer {API_KEY}
请求参数:
| 参数名 | 类型 | 必填 | 说明 |
|———————|————|———|———————————————————————————————————|
| calendarName | string | 是 | 日历名称(如”2024金融行业工作日”) |
| basePattern | string | 否 | 基础模式(MON-FRI/EVERYDAY/CUSTOM) |
| exceptions | array | 否 | 异常日期列表,格式为{"date": "YYYY-MM-DD", "isWorkday": boolean} |
| timeZone | string | 是 | 时区标识(如Asia/Shanghai) |
响应示例:
{"calendarId": "cal_123456","status": "ACTIVE","createdAt": "2024-03-01T08:00:00Z"}
2.2 外呼任务调度接口
接口定义:
POST /api/v1/outbound-campaignsContent-Type: application/json
关键参数:
{"name": "春季课程推广","calendarId": "cal_123456","schedule": {"type": "RECURRING","interval": "DAILY","startTime": "09:00:00","endTime": "18:00:00"},"callList": [...],"scriptId": "sc_789012"}
执行逻辑:
- 系统每日00:00检查次日是否为工作日
- 非工作日任务自动挂起,工作日08:30重新激活
- 工作时间段内按配置的并发数执行外呼
三、完整接口调用流程
3.1 创建工作日历(Python示例)
import requestsurl = "https://api.ailinkswitch.com/api/v1/workday-calendars"headers = {"Authorization": "Bearer YOUR_API_KEY","Content-Type": "application/json"}data = {"calendarName": "2024Q2工作日历","basePattern": "MON-FRI","exceptions": [{"date": "2024-05-01", "isWorkday": False}, # 劳动节{"date": "2024-06-10", "isWorkday": False} # 端午节],"timeZone": "Asia/Shanghai"}response = requests.post(url, headers=headers, json=data)print(response.json())
3.2 创建外呼任务(cURL示例)
curl -X POST https://api.ailinkswitch.com/api/v1/outbound-campaigns \-H "Authorization: Bearer YOUR_API_KEY" \-H "Content-Type: application/json" \-d '{"name": "会员续费提醒","calendarId": "cal_123456","schedule": {"type": "RECURRING","interval": "DAILY","startTime": "10:00:00","endTime": "17:00:00"},"callList": [{"phone": "13800138000", "customerId": "C001"},{"phone": "13900139000", "customerId": "C002"}],"scriptId": "sc_789012","maxConcurrentCalls": 20}'
四、高级配置策略
4.1 动态工作日调整
通过Webhook机制实现实时工作日变更:
// Node.js Webhook处理示例app.post('/webhook/workday-update', (req, res) => {const { calendarId, changes } = req.body;// 调用API更新日历fetch(`https://api.ailinkswitch.com/api/v1/workday-calendars/${calendarId}`, {method: 'PATCH',headers: { 'Authorization': 'Bearer YOUR_API_KEY' },body: JSON.stringify({ exceptions: changes })});res.status(200).send('Calendar updated');});
4.2 多时区管理方案
对于跨国企业,建议:
- 为每个时区创建独立日历
- 在任务调度时指定
timeZone参数 - 使用UTC时间存储调度记录
多时区任务示例:
{"name": "全球客户关怀","timeZones": [{"region": "APAC", "calendarId": "cal_apac", "offset": "+08:00"},{"region": "EMEA", "calendarId": "cal_emea", "offset": "+01:00"}],"schedule": {"type": "REGIONAL","timeWindows": [{"region": "APAC", "start": "09:00", "end": "18:00"},{"region": "EMEA", "start": "10:00", "end": "19:00"}]}}
五、常见问题解决方案
5.1 时区配置错误排查
现象:任务在非预期时间执行
检查步骤:
- 验证
timeZone参数是否符合IANA时区数据库标准 - 检查服务器时钟同步状态(
ntpq -p) - 确认任务创建时的UTC时间转换是否正确
5.2 节假日更新机制
建议建立自动化流程:
graph TDA[政府节假日公告] --> B[解析XML/JSON数据]B --> C[生成例外日期列表]C --> D[调用PATCH /workday-calendars/{id}]D --> E[日志记录与告警]
六、最佳实践建议
- 日历版本控制:每次更新生成新版本号,便于回滚
- 监控告警:设置非工作日任务执行告警(如通过CloudWatch)
- 渐进式部署:先在测试环境验证节假日配置
- 文档维护:记录特殊日期配置原因(如展会调整日)
通过合理配置工作日设置,某银行客户实现外呼资源利用率提升40%,同时客户投诉率下降25%。建议每季度审查一次工作日历配置,确保与实际业务需求同步。
系统支持的最大日历数量为100个/账户,单个日历最多可配置1000个例外日期。对于超大规模部署,建议采用分账户管理策略。