创建外呼任务(CreateOutboundTask)
创建一个外呼任务。需关联已审核通过的外呼场景和已上传的客户名单,并配置任务执行的日期范围、每日呼叫时段和并发坐席数等参数。
前提条件
-
已安装SDK。
-
已获取并使用AccessKey的方式,请参考获取AccessKey并配置到环境变量。
-
已获取SceneId(场景ID)。调用CreateOutboundScene创建外呼场景时,从返回参数Data.SceneId获取;或调用QueryOutboundSceneList查询已有场景列表获取。场景需已审核通过。
-
已获取CustomerListId(客户名单ID)。调用QueryCustomerManagementList查询客户名单列表,从返回参数Records[].Id获取。
请求参数
|
名称 |
类型 |
必填 |
描述 |
示例值 |
|
Action |
String |
是 |
要执行的操作。取值:CreateOutboundTask。 |
CreateOutboundTask |
|
Version |
String |
是 |
API版本号。格式为:YYYY-MM-DD。取值:2025-11-27。 |
固定为2025-11-27 |
|
TaskName |
String |
是 |
任务名称 |
春节促销外呼任务 |
|
TaskDesc |
String |
否 |
任务描述 |
针对VIP客户的春节促销活动 |
|
TaskBasicConfig |
Object |
是 |
任务基础配置,参数说明见下表。 |
|
|
TaskBasicConfig.SceneId |
Number |
是 |
关联的外呼场景ID |
91 |
|
TaskBasicConfig.CustomerListId |
Number |
是 |
客户名单ID(需从控制台获取) |
1001 |
|
TaskBasicConfig.CustomerListName |
String |
否 |
客户名单名称 |
VIP客户名单 |
|
TaskBasicConfig.CustomerListCount |
Number |
否 |
客户名单数量 |
500 |
|
TaskBasicConfig.TtsVoiceCode |
String |
否 |
TTS语音编码 |
V23C0DDD0 |
|
TaskBasicConfig.TtsVoiceDesc |
String |
否 |
TTS语音描述 |
梦琪 |
|
TaskBasicConfig.SceneName |
String |
否 |
场景名称 |
售后回访场景 |
|
TaskExecuteConfig |
Object |
是 |
任务执行配置,参数说明见下表。 |
|
|
TaskExecuteConfig.BeginDate |
String |
是 |
任务开始日期(yyyy-MM-dd) |
2024-01-01 |
|
TaskExecuteConfig.EndDate |
String |
是 |
任务结束日期(yyyy-MM-dd) |
2024-01-31 |
|
TaskExecuteConfig.BeginTime |
String |
是 |
每日开始时间(HH:mm) |
09:00 |
|
TaskExecuteConfig.EndTime |
String |
是 |
每日结束时间(HH:mm) |
18:00 |
|
TaskExecuteConfig.SeatNum |
Number |
否 |
并发坐席数 |
10 |
|
TaskExecuteConfig.IsExcludeHoliday |
Boolean |
否 |
是否排除节假日 |
true |
|
TaskExecuteConfig.IsExcludeLunchBreak |
Boolean |
否 |
是否排除午休时间 |
true |
|
TaskExecuteConfig.RetryConfig.Count |
Number |
否 |
重试次数 |
3 |
|
TaskExecuteConfig.RetryConfig.Minute |
Number |
否 |
重试间隔(分钟) |
30 |
响应参数
|
名称 |
类型 |
描述 |
示例值 |
|
RequestId |
String |
请求ID。 |
xxxx-xxxx-xxxx |
|
Success |
Boolean |
请求是否成功。 |
True |
|
Code |
String |
错误码。请求成功时为空。 |
None |
|
Message |
String |
错误信息或成功提示。 |
操作成功 |
|
Data |
Object |
返回数据,包含TaskId, Success, Message等字段,具体说明请参见下方返回参数说明。 |
使用示例
Python
import json
import os
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_tea_openapi.client import Client as OpenApiClient
from alibabacloud_tea_util import models as util_models
from alibabacloud_openapi_util.client import Client as OpenApiUtilClient
def main():
config = open_api_models.Config(
access_key_id=os.getenv("ACCESS_KEY_ID"),
access_key_secret=os.getenv("ACCESS_KEY_SECRET"),
)
config.endpoint = "thirdswaicall.aliyuncs.com"
config.protocol = "HTTPS"
client = OpenApiClient(config)
params = open_api_models.Params(
style="RPC",
version="2025-11-27",
action="CreateOutboundTask",
method="POST",
pathname="/",
protocol="HTTPS",
auth_type="AK",
req_body_type="json",
body_type="json",
)
body = {
'TaskName': '春节促销外呼任务',
'TaskDesc': '针对VIP客户的春节促销活动',
'TaskBasicConfig': {
'SceneId': 1,
'CustomerListId': 1001,
'CustomerListName': 'VIP客户名单',
'TtsVoiceCode': 'V23C0DDD0',
'TtsVoiceDesc': '梦琪',
},
'TaskExecuteConfig': {
'BeginDate': '2024-01-01',
'EndDate': '2024-01-31',
'BeginTime': '09:00',
'EndTime': '18:00',
'SeatNum': 10,
},
}
request = open_api_models.OpenApiRequest(body=OpenApiUtilClient.parse_to_map(body))
runtime = util_models.RuntimeOptions(autoretry=True, max_attempts=3)
try:
resp = client.call_api(params, request, runtime)
print(json.dumps(resp.get("body", {}), ensure_ascii=False, indent=2))
except Exception as e:
print(f"调用失败: {e}")
if __name__ == "__main__":
main()
Java
import com.aliyun.teaopenapi.Client;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.teaopenapi.models.OpenApiRequest;
import com.aliyun.teaopenapi.models.Params;
import com.aliyun.teautil.models.RuntimeOptions;
import com.google.gson.Gson;
import java.util.HashMap;
import java.util.Map;
public class Demo {
public static void main(String[] args) throws Exception {
// 初始化配置
Config config = new Config()
.setAccessKeyId(System.getenv("ACCESS_KEY_ID"))
.setAccessKeySecret(System.getenv("ACCESS_KEY_SECRET"))
.setEndpoint("thirdswaicall.aliyuncs.com")
.setProtocol("HTTPS");
Client client = new Client(config);
// 设置 API 参数
Params params = new Params()
.setStyle("RPC")
.setVersion("2025-11-27")
.setAction("CreateOutboundTask")
.setMethod("POST")
.setPathname("/")
.setProtocol("HTTPS")
.setAuthType("AK")
.setReqBodyType("json")
.setBodyType("json");
// 构建请求参数
Map<String, Object> body = new HashMap<>();
body.put("TaskName", "\u793a\u4f8b\u503c");
body.put("TaskBasicConfig.CustomerListId", 1);
body.put("TaskExecuteConfig.EndDate", "\u793a\u4f8b\u503c");
body.put("TaskExecuteConfig.BeginTime", "\u793a\u4f8b\u503c");
body.put("TaskExecuteConfig.EndTime", "\u793a\u4f8b\u503c");
OpenApiRequest request = new OpenApiRequest()
.setQuery(com.aliyun.openapiutil.Client.query(body));
// 设置运行时选项(自动重试)
RuntimeOptions runtime = new RuntimeOptions()
.setAutoretry(true)
.setMaxAttempts(3);
try {
// 调用 API
Map<String, ?> response = client.callApi(params, request, runtime);
Gson gson = new Gson();
System.out.println(gson.toJson(response.get("body")));
} catch (Exception e) {
System.err.println("调用失败: " + e.getMessage());
}
}
}
返回示例
{
"Success": true,
"Code": null,
"Message": "操作成功",
"RequestId": "xxxx-xxxx-xxxx",
"Data": {
"TaskId": 2001,
"Success": true,
"Message": "任务创建成功"
}
}
具体的处理结果在Data节点中,以下为Data节点的参数说明。
|
名称 |
类型 |
描述 |
示例值 |
|
TaskId |
Number |
新创建的任务ID |
2001 |
|
Success |
Boolean |
操作结果 |
True |
|
Message |
String |
提示信息 |
任务创建成功 |
错误信息
如果执行报错,请参考错误信息进行解决。