| 开放平台 版本6.5.0

 

一鸣外呼API

产品介绍

一鸣开放平台提供的API是一组简单的HTTP接口,以接口对接方式为客户提供强大的智能外呼能力和多种类型的触达工具(短信、企业微信、人工坐席跟进),以灵活多样的方式触达用户,精准、高效率地搭建用户标签体系,轻松实现以用户为中心的全生命周期精细化运营。

适用场景

AI外呼主要用于会员推广服务、智能催收等场景。我方运营人员使用客户提供的产品资料设计出紧贴用户需求、精准高效的话术,通过外呼任务的方式对导入的线索进行外呼,识别和收集外呼的反馈数据到客户侧。

AI外呼能力均可以配合短信进行使用,可以在挂机后给用户触发短信以增强触达效果。

同时上述短信能力均可支持变量,短信形式举例如下:

尊敬的[变量1]先生,我行最近推出金花花信用贷款,您的额度为[变量2]元,您可以登录我行APP申请办理。

 

使用说明

第一步,客户侧注册企业管理员账号、绑定企业,向一鸣的运营小伙伴申请密钥,一鸣的运营伙伴根据客户业务需求对客户账户功能进行配置管理,包括功能列表、API接口权限、回执管理、话术管理、线路资源等配置;

第二步,客户侧提供产品资料、话术文本给一鸣侧运营人员,由运营人员完成话术设计、行业意图库配置,按业务需求分配机器人坐席数等。我方运营人员根据产品、外呼规模进行线路的报备和申请(测试对接阶段可使用测试线路),如有使用短信功能,客户侧需跟运营人员沟通,我方运营人员将协调接入短信通道、进行内容审核和短信签名申请,完成短信功能准备;

第三步,客户侧技术工程师和一鸣的项目经理、工程师进行API接口对接和联调;

第四步,客户侧工程师测试无误后可投入使用,如有任何新需求或问题,请联系对接的运营人员;

为帮助客户快速对接,我们提供了对接的demo代码,该工程地址:https://gitee.com/aiym_outbound/outbound-api-demo

备注:

  1. 如无特殊声明,接口的输入参数和输出数据编码统一为UTF-8格式;

  2. 如无特殊说明,接口文档陈述的任务特指AI外呼任务;

  3. API响应消息的统一封装格式请见如下表格说明,在API接口说明中不再赘述;

    参数名 描述 长度 类型
    code 请求的处理结果响应码 255 String
    message 请求的处理结果描述 255 String
    resp 响应对象 无限制 Object

     

鉴权介绍

开放平台所有对外能力必须通过鉴权密钥授权方可使用,鉴权方式是在调用API时请求头部携带如下两个参数:

参数名 类型 是否必须 描述
Authorization String token
sigParameter String 授权参数

 

获取token接口

请求地址:https://{开放平台服务地址}/v2/api/common/oauth/token

请求方法:POST

请求参数:

参数名 是否必须 类型 描述 示例
tenantId String 租户id 2020
sid String 租户sid 101key

返回参数:

参数名 描述 长度 类型
Authorization 授权租户信息 100 String
sigParameter 签名加密的token 100 String

请求示例:

返回示例

 

API调用流程

AI外呼接口流程

avatar

坐席外呼接口流程

image

API接口说明

AI外呼

创建任务

创建外呼任务,可同时上传线索数据。数据加密方式是企业级配置,如有变更请联系一鸣的运营小伙伴。

请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/pushClue

请求方法:POST

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

clueList注意事项:

  1. 请留意syncType参数,同步指线索导入完成再返回HTTP响应,异步指收到数据后(导入未完成)立即返回HTTP响应;
  2. 默认(syncType为0)单次请求的线索数量最大为5万,超过的可请求任务导入线索接口
  3. syncType为1时,单次请求的线索数量最大为1万,超过的可请求任务导入线索接口
  4. 单任务线索总量上限100万。

请求体入参:

参数名 是否必须 类型 描述
dialogTemplateId Number 话术模板ID(内容见:查询话术模板列表
robotType String AI呼叫类型 (1:AI外呼,2:放音;默认:2)
taskName String 任务名称,默认以话术模板名称加时间戳命名
taskWorkTime String 任务工作时间,时间段之前逗号隔开(示例: 09:00-12:00,13:00-20:00)
默认:企业的工作时间。
callLineId Number 线路ID,不传则使用系统默认配置线路(内容见:查询外呼线路列表)
smsTouchTypes Array 短信触发方式,发短信时必填。类型:
1:意向分类触发
2:话术节点触发
3:话术问答触发
4:放音时长短信
可以组合发送,例:
"smsTouchTypes": [1,2,3]
autoSendSmsType Number 节点触发、问答触发的类型,选择发送方式( 0:挂机发送 1:通话中发送)
smsTemplateId Number 短信模板ID,当smsTouchTypes中包含“意向分类触发”时需要此参数(内容见:查询短信模板列表
callDuration Number 放音场景通话时长触发短信(秒数,通话时长超过此参数配置的秒数则发短信),如果放音完毕不需要触发短信,则此参数不需要
clueCategoryCode Array 意向分类Code(smsTouchTypes选择意向分类触发时必填)
意向分类Code见:意向分类表

例如:"clueCategoryCode":[1, 2, 4, 7]
phoneEncryptFlag Number 线索加密
0:明文,1:AES加密,2:MD5加密;默认:0
clueCheckType Number 线索校验类型,0手机号,1非手机号,默认0
clueList Array 线索数组
openRepeatCall Boolean 自动重拨功能,默认不开启
repeatCallRule Object 自动重拨规则,openRepeatCall为true时,repeatCallRule为必填参数
interceptStrategySwitch Number 拦截策略开关
interceptStrategyId Number 拦截策略id
customerBlacklistSwitch Number 企业黑名单开关(0:关闭, 1:开启; 默认值:0)
customerBlacklistId Array 企业黑名单Id的集合(如: [10,13,19] )
concurrencyCount Number 任务分配的AI座席数
addWechatWhenHangUp Number 挂机添加微信(0:不添加,1:添加;默认值:0)
wechatClueCategoryCode Array 添加微信使用的意向分类Code。选择挂机添加微信时必填
意向分类Code见:意向分类表
例:"wechatClueCategoryCode":[1,2,3]
syncType Number 是否采用同步处理(0:异步处理, 1:同步处理;默认:0)
virtualNumber Number 标识任务是否支持虚拟号,虚拟号指主机号+分机号形式,
如:1391234 + 56781
(0: 不支持, 1:支持;默认:0; 注:企业配置MD5加密时不支持)
autoStopCallPassCount Number 按接通数自动停止任务,举例:任务接通100通自动暂停
autoStopCalledCount Number 按拨打数自动停止任务,举例:任务拨打100通自动暂停
autoStopCalledRate String 按任务拨打进度自动停止任务,举例:任务进度52.12%,自动暂停
salesclueReplayMaxLimit Number 线索重拨上限,不限-1,限制1~5,默认不限。

clueList参数说明:

参数名 是否必须 类型 描述
phone String 手机号
unikey String 数据标识(由客户侧提供,回执使用)
customerName String 用户姓名
remark String 备注信息(请注意:有128字节最大长度限制)
variables Map 话术自定义变量,例如:
{"客户名称":"张三丰","性别":"男"}

repeatCallRule参数说明:

参数名 是否必须 类型 描述
type Number 呼损类型,0:任务拨打完成后呼损,1:线索拨打后呼损。默认:0
interval Number 重拨间隔时长,单位:分钟(取值范围:1~720;默认值:5)
times Number 重拨次数(取值范围:1~5;默认值:1)
hangUpCauseCode Array 未接通原因Code,例:"hangUpCauseCode":[7]

 

请求参数示例:

返回结果:

字段名 含义 长度 类型
taskId 任务ID 20 Number
clueFailNum 上传失败数 20 Number

 

编辑任务

对非拨打中状态的任务修改任务配置信息。

请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/modify

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

请求方法:POST

请求体入参:

参数名 是否必须 类型 描述
taskId Number 任务ID
taskName String 任务名称
callLineId Number 线路ID
concurrencyCount Number 默认并发数
taskWorkTime String 拨打时间
openRepeatCall Boolean 是否开启未接通重拨功能,默认不开启
repeatCallRule Object 自动重拨规则,openRepeatCall为true时,repeatCallRule为必填参数
interceptStrategySwitch Number 拦截策略开关
interceptStrategyId Number 拦截策略id
customerBlacklistSwitch Number 企业黑名单开关(0:关闭, 1:开启; 默认值:0)
customerBlacklistId Array 企业黑名单Id的集合(如: [10,13,19] )

repeatCallRule参数说明:

参数名 是否必须 类型 描述
type Number 呼损类型,0:任务拨打完成后呼损,1:线索拨打后呼损。默认:0
interval Number 重拨间隔时长,单位:分钟(取值范围:1~720;默认值:5)
times Number 重拨次数,(取值范围:1~5;默认值:1)
hangUpCauseCode Array 未接通原因Code
例如:"hangUpCauseCode":[7]

请求参数示例:

返回结果:

 

任务导入线索

对已存在的外呼任务增量导入线索。

请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/clueComplement

请求方法:POST

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

clueList注意事项:

  1. 请留意syncType参数,同步指线索导入完成再返回HTTP响应,异步指收到数据后(导入未完成)立即返回HTTP响应;
  2. 默认(syncType为0)单次请求的线索数量最大为5万
  3. 当syncType为1时,单次请求的线索数量最大为1万;
  4. 单任务线索总量上限100万;
  5. 同任务不支持并行调用提交数据

请求体入参:

参数名 是否必须 类型 描述
taskId Number 需要导入数据的任务ID
phoneEncryptFlag Number 线索加密标识
0:明文,1:AES加密,2:MD5加密;默认值:0
clueList Array 线索数组
syncType Number 是否采用同步处理(0:异步处理, 1:同步处理;默认值:0)
inTaskRepeatCheck Boolean 是否检查重复线索并去重(默认值:true)

 

clueList参数说明:

参数名 是否必须 类型 描述
phone String 手机号
unikey String 数据标识(由客户侧提供,用于回执数据等),可用uuid来生成
customerName String 用户姓名
remark String 备注信息(请注意:有128字节最大长度限制)
variables Map 话术自定义变量,例如:
{"客户名称":"张三丰","性别":"男"}

 

请求示例:

返回结果:

字段名 含义 长度 类型
taskId 任务ID 20 Number
clueFailNum 上传失败数 20 Number

 

启动任务 / 拨打剩余

启动"未拨打"、"已停止"状态的AI外呼任务。

请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/startTask

请求方法:POST

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

请求体入参:

参数名 是否必须 类型 描述
taskId Number 任务ID
callLineId Number 线路ID
concurrencyCount Number 并发数(AI坐席数)

请求示例:

请求体示例:

返回结果:

字段名 含义 长度 类型
messageCode 业务校验Code(发生业务校验异常时才返回值) 20 Number

 

停止任务

对拨打中的外呼任务进行暂停。

请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/stopTask

请求方法:POST

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

请求体入参:

参数名 是否必须 类型 描述
taskId Number 任务ID

请求示例:

请求体示例:

返回结果:

字段名 含义 长度 类型
messageCode 业务校验Code(发生业务校验异常时才返回值) 20 Number

 

删除任务

删除指定任务ID对应的外呼任务。

请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/deleteTask

请求方法:POST

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

请求体入参:

参数名 是否必须 类型 描述
taskId Number 任务id

请求示例:

返回结果:

字段名 含义 长度 类型
messageCode 业务校验Code(发生业务校验异常时的返回值) 20 Number

拨打呼损

启动外呼任务,对任务中未接通的线索再次拨打。

请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/callfailure

请求方法:POST

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

请求体入参:

参数名 是否必须 类型 描述
taskId Number 任务ID
callLineId Number 线路ID
concurrencyCount Number 并发数(AI坐席数)

请求示例:

请求体示例:

返回结果:

字段名 含义 长度 类型
messageCode 业务校验code(发生业务校验异常时才返回值) 20 Number

 

查询外呼任务信息

查询租户下创建的外呼任务的相关信息,如任务ID号、任务名称、模板ID号等。

请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/queryTask

请求方法:POST

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

请求体(RequestBody)入参:

参数名 是否必须 类型 描述
startDate String 开始时间
endDate String 结束时间
taskName String 任务名称,支持模糊查询
pageNum String 分页每页显示条数,默认50条,最多1000条
pageNo String 当前页码,默认为1

请求示例:

 

返回结果:

字段名 含义 长度 类型
taskId 任务ID 20 Number
taskName 任务名称 255 String
dialogTemplateId 模板ID 20 Number

pagination对象的字段说明:

字段名 含义 长度 类型
total 总记录条数 10 Number
page 当前页码 10 Number
rows 当前返回记录数 10 Number

 

查询外呼任务运行详情

获取AI外呼任务执行情况和统计数据,可根据任务名、任务状态、任务创建时间(或任务拨打时间)查询任务的执行信息。

具体包含哪些信息,请查看返回结果字段说明。

说明:

  1. 时间跨度最多支持7天,startTime和endTime需要结对传入或不传,当startTime和endTime都不传,默认为当日00:00~23:59。
  2. 意向分类统计(categoryCount)视任务执行情况而定,若没有拨打,则为null值;若任务已启动,则只显示有统计数量的分类数。

请求地址:https://{开放平台服务地址}/v2/api/tenants/{tenantId}/queryTaskList

请求方法:POST

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

请求体入参:

字段名 含义 是否必填 类型
startTime 开始时间 String
endTime 结束时间 String
taskName 任务名称 String
taskStatus 任务状态( 0:不可拨打,1:未拨打,2:拨打中,3:已停止,4:已完成) Number
taskId 任务ID Number
queryType 开始时间、结束时间的参数类型(1:任务创建时间,2:任务拨打时间;默认值:1) Number

参数格式:

返回结果:

(常见问题说明:如果查询传入参数taskId对应的任务非当日创建或当日拨打,查询结果为空。)

字段名 含义 类型
calledAmount 拨打总量 Number
calledThroughAmount 接通总量 Number
calledThroughPercent 接通率 String
aiCalledTotal 已拨打线索数 Number
createTime 创建时间 String
taskId 任务ID Number
lineName 资源名称 String
minute 计费时长(分钟) Number
callTimeAvg 平均通话时长(秒) Number
taskName 任务名称 String
taskStatus 任务状态
( 0:不可拨打,1:未拨打,2:拨打中,3:已停止,4:已完成)
String
totalClue 线索总数 Number
categoryCount 意向分类计数 Object
messageSendSuccess 短信发送成功数 Number
messageSendFailed 短信发送失败数 Number
messageSendUnknown 短信发送状态未知数 Number

 

外呼报表按日查询

请求地址:https://{开放平台地址}/v2/api/tenants/{tenantId}/queryAiStatisticsByDate

请求方法:GET

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

请求参数:

字段名 含义 是否必填 类型
startDate 开始日期 String
endDate 结束日期 String

请求示例:

返回结果:

响应的数据字段说明:

字段名 含义 类型
date 统计日期 String
calledAmount 拨打总量 Number
calledThroughAmount 接通总量 Number
calledThroughPercent 接通率 String
categoryCount 线索数量(返回A类和B类) Object
humanCategoryCount 人工线索数量(返回A类和B类) Object
minute 计费时长(分钟) Number
callTimeAvg 平均通话时长(秒) Number
messageSendCount 短信触发量 Number
messageSendPercent 短信触发率 String
messageSendSuccess 短信发送成功量 Number
messageSendSuccessPercent 短信发送成功率 String
updateTime 数据更新时间,格式:yyyy-MM-dd hh:mm:ss String

外呼报表按拨打时间查询

筛选拨打时间内的话单报表。

请求地址:https://{开放平台地址}/v2/api/tenants/{tenantId}/queryAiStatisticsByTaskAndDate

请求方法:GET

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

请求参数:

字段名 含义 是否必填 类型
taskId 任务ID String
taskName 任务名称 String
taskStatus 任务状态( 1未拨打、2拨打中、3已停止、4已完成) String
startDate 拨打开始日期 String
endDate 拨打结束日期 String

请求示例:

返回结果:

响应的数据字段说明:

字段名 含义 类型
taskId 任务ID Number
taskName 任务名称 String
date 统计日期 String
minute 计费时长(分钟) Number
callTimeAvg 平均通话时长(秒) Number
calledThroughAmount 接通总量 Number
calledThroughPercent 接通率 String
messageSendCount 短信触发量 Number
messageSendSuccess 短信发送成功量 Number
calledAmount 外呼总量 Number
categoryCount AI线索数量(只返回A、B类) Object
humanCategoryCount 人工线索数量(只返回A、B类) Object
createTime 任务创建时间 String

人工外呼

创建坐席外呼任务

创建人工坐席任务并推送线索数据。

请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/humanCallTask/create

请求方法:POST

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

注意:一次推送的线索数量最大为5万

请求体入参:

参数名 是否必须 类型 描述
taskName String 坐席任务名称、如果不传将取yyyyMMddhhmmssSSS(年月日时分秒毫秒)加五位随机数来拼接组成一个任务名称
dialogTemplateId Number 辅助话术模板ID(当天任务合并标识)
callLineId Number 线路ID,不传则使用系统默认配置线路(内容见:查询外呼线路列表)
phoneEncryptFlag Number 线索加密
0:明文,1:AES加密,2:MD5加密;默认值:0
clueList Array 线索列表
checkUser Number 线索分配方式(1:按坐席分配,2:按坐席组分配)
userId Array 按坐席分配时的员工ID数组(仅checkUser=1) 示例: [1,2,3,4]
userGroupId Number 按坐席组分配时的坐席组ID(仅checkUser=2)
agentMsgType Number 坐席发送短信开关 (0:关闭, 1:统一模板, 2:按坐席配置模板;默认:0)
smsTemplateId Number agentMsgType=1时,统一使用的短信模板Id (内容见:查询短信模板列表)
msgTaskAgentList Array agentMsgType=2时,为坐席配置专属短信模板Id

 

clueList参数说明:

参数名 是否必须 类型 描述
phone String 手机号
customerName String 客户姓名
source String 来源
remark String 客户备注(请注意:有128字节最大长度限制)
unikey String 数据标识(由客户侧提供,用于回执数据),可用uuid来生成
variables Object 线索变量,最多支持48个,键的固定格式是【var】+【变量下标】,如:
{"var1": "张三", "var2": "汽车"}

 

msgTaskAgentList参数说明:

参数名 是否必须 类型 描述
userId Number 绑定坐席的用户Id,即userId,必须是线索分配方式按坐席分配时传入的userId
msgTemplateId Number 短信模板ID(内容见:查询短信模板列表)

 

请求参数示例:

返回结果:

字段名 含义 长度 类型
taskId 坐席任务ID 20 Number
clueFailNum 上传失败数 20 Number

 

坐席外呼任务导入线索

对已存在的坐席外呼任务导入客户线索。

请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/humanCallTask/importClue

请求方法:POST

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

注意:一次推送的线索数量最大为5万

请求体入参:

参数名 是否必须 类型 描述
taskId Number 坐席任务ID
clueList Array 线索数组
phoneEncryptFlag Number 线索加密
0:明文,1:AES加密,2:MD5加密;默认值:0

clueList参数说明:

参数名 是否必须 类型 描述
phone String 手机号
customerName String 客户姓名
source String 来源
remark String 客户备注(请注意:有128字节最大长度限制)
unikey String 数据标识(由客户侧提供,用于回执数据),可用uuid来生成
variables Object 线索变量,最多支持48个,键的固定格式是【var】+【变量下标】,如:
{"var1": "张三", "var2": "汽车"}

请求参数示例:

返回结果:

字段名 含义 长度 类型
taskId 任务ID 20 Number
clueFailNum 上传失败数 20 Number

 

通话记录(接通)

查询当日接通

实时查询当日已接通的通话记录。

请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/querySalesclueCall

请求方法:POST

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

请求体(RequestBody)入参:

参数名 是否必须 类型 描述
taskId Number 任务ID
pageNum Number 分页每页显示条数(默认50条)
pageNo Number 当前页数(默认为1)
callTimeStart String 拨打时间(起始)
callTimeEnd String 拨打时间(结束)
callId String 通话记录ID
isCollection Number 是否已收藏(0:未收藏; 1:已收藏)

请求示例:

返回结果:

 

list是一个话单组成的数组,下面是其字段说明(部分数据需要开启功能才会产生,如性别检测,详细咨询运营):

字段名 含义 长度 类型
aiCallStatus 拨打状态
1:未拨打
2:正在拨打中
3:正在排队
4:未接通
5:有意向
6:无意向
7:已接通
100:已拦截
10 Number
clueCategoryCode 意向分类Code 5 Number
clueCategoryName 意向分类名称 255 String
callDuration 通话时长,单位:秒 10 Number
callTime 拨打时间(格式 yyyy-MM-dd HH:mm:ss) 50 String
hungUpTime 挂机时间(格式 yyyy-MM-dd HH:mm:ss) 50 String
callType 通话类型 (2:AI外呼,4:人工坐席) 10 Number
callerNumber 主叫号码 50 String
chargeDuration 计费分钟数 10 Number
customerName 客户姓名 255 String
callId 通话唯一ID 255 String
callDetailText 对话文本 无限制 Object
isCollection 是否被收藏(0:否,1:是) 10 Number
recordFile 通话完整录音地址 255 String
salesclueId 线索ID 20 Number
taskId 任务ID 20 Number
taskName 任务名称 255 String
tenantId 租户ID(企业ID) 20 Number
dialogTemplateId 话术模板ID 20 Number
callLineId 线路ID 20 Number
phone 被叫号码 100 String
unikey 数据标识 255 String
phoneArea 号码归属地 100 String
phoneIsp 运营商
中国电信/中国联通/中国移动/其他
20 String
isSendMsg 挂机发送短信标识 (0:未发送, 1:发送) 20 Number
gender 性别检测结果(0:女, 1:男, 2:未知) 20 Number
dialogueRound 对话轮次 10 Number
hangupTypeName 挂断方(主叫挂断、被叫挂断) 255 String

callDetailText对象的字段说明:

字段名 含义 长度 类型
role 说话者角色(robot:机器人,customer:用户) 255 String
saying 说话者的⽂本内容 500 String

pagination对象的字段的说明:

字段名 含义 长度 类型
total 总记录条数 10 Number
page 当前页码 10 Number
rows 当前返回记录数 10 Number

 

查询历史接通

查询非当日的接通话单通话记录

当天实时通话记录请通过“查询通话记录”API进行查询和获取。

请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/queryHistorySalesclueCall

请求方法:POST

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

请求体(RequestBody)入参、参数格式、返回结果,与”查询当日数据“接口相同,请参考。

 

通话记录(未接通)

查询当日未接通

实时查询当日未接通的通话记录。

请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/querySalesclueCallFail

请求方法:POST

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

请求体(RequestBody)入参:

参数名 是否必须 类型 描述
taskId Number 任务ID
pageNum Number 分页每页显示条数(默认50条)
pageNo Number 当前页数(默认为1)
callTimeStart String 拨打时间(起始)
callTimeEnd String 拨打时间(结束)
callId String 通话记录ID
isCollection Number 是否已收藏(0:未收藏; 1:已收藏)

请求示例:

返回结果:

list是一个话单组成的数组,下面是其字段说明(部分数据需要开启功能才会产生,如性别检测,详细咨询运营):

字段名 含义 长度 类型
callId 通话ID 255 String
callTime 拨打时间(格式 yyyy-MM-dd HH:mm:ss) 50 String
callerNumber 主叫号码 50 String
clueCategoryCode 意向分类Code 20 Number
clueCategoryName 意向分类名称 255 String
hangUpCause 挂机原因 100 String
hangUpCauseCode 挂机原因Code 10 Number
isSendMsg 是否发送短信标识 20 Number
callLineId 线路Id 20 Number
phone 线索号码 255 String
unikey 数据标识 255 String
phoneArea 号码归属地 100 String
phoneIsp 运营商
中国电信/中国联通/中国移动/其他
20 String
taskId 任务ID 10 Number
taskName 任务名称 255 String

pagination对象的字段的说明:

字段名 含义 长度 类型
total 总记录条数 10 Number
page 当前页码 10 Number
rows 当前返回记录数 10 Number

 

查询历史未接通

查询非当日的接通话单通话记录。

当天实时通话记录请通过“查询通话记录”API进行查询和获取。

请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/queryHistorySalesclueCallFail

请求方法:POST

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

请求体(RequestBody)入参、参数格式、返回结果,与查询当日数据接口相同,请参考。

 

线索重复查询

查询企业在指定时间周期内是否已存在该线索数据。

线索数据支持明文和密钥,取决于企业配置,如MD5密钥、AES加密等,默认明文。

查询的周期默认是近3天。每次请求携带线索数上限是2000条。

请求地址:https://{开放平台地址}/v2/api/salesclue/call/tenants/{tenantId}/checkPhoneExist

请求方法:POST

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

请求体(RequestBody)入参:

参数名 是否必须 类型 描述
phoneList Array 线索数据列表,上限2000条。

请求示例:

 

返回结果示例:

字段说明:

字段名 含义 长度 类型
phone 手机号 255 String
type 查询结果类型(0:不存在 1:已存在) 10 Number
tenantId 企业Id 10 Number

 

企业配置管理

配置话单回执地址

配置数据回调地址。

请求地址:https://{开放平台服务地址}/v2/api/common/tenants/{tenantId}/save/callBackUrl

请求方法:POST

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

请求体(RequestBody)入参:

参数名 是否必须 类型 描述
callbackUrl String 接收话单回执的地址

返回结果:

 

查询话单回执地址

查询配置的话单回执接收地址。

请求地址:https://{开放平台服务地址}/v2/api/common/tenants/{tenantId}/query/callBackUrl

请求方法:GET

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

返回结果:

返回结果字段说明

字段名 含义 长度 类型
abbreviation 平台标识 255 String
callBackUrl 话单回执接收地址 50 String
createTime 地址首次配置时间 255 String
id 序列号 10 Number
tenantId 企业Id(租户Id) 10 Number

 

企业黑名单管理

创建自定义黑名单组

请求地址:https://{开放平台服务地址}/v2/api/tenants/{tenantId}/createBlackGroup

请求方法:POST

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

请求体(RequestBody)入参:

参数名 是否必须 类型 描述
name String 黑名单组的名字
clueCheckType Number 是否为手机号, 0: 是,1:非手机号,默认0,是手机号
validityPeriod Number 过期天数,-1:永久,1~1000为过期天数,默认-1:永久
remark String 备注

返回结果:

返回结果字段说明

字段名 含义 长度 类型
groupId 黑名单组的编号 10 String

 

查询自定义黑名单组

请求地址:https://{开放平台服务地址}/v2/api/tenants/{tenantId}/getBlackGroupCountById

请求方法:GET

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

请求头(Header)入参:

参数名 是否必须 类型 描述
groupId Number 黑名单库的编号

响应结果示例:

返回结果字段说明

字段名 含义 长度 类型
groupId 黑名单组的编号 10 String
name 黑名单组的名称 255 String
numbers 黑名单组的号码数量 10 Number
validityPeriod 剩余有效天数(-1:永久,大于0的返回值代表天数) 10 Number
remark 备注 255 String
updateTime 黑名单组的更新时间 255 String
status 激活状态(1:活跃;0:未激活) 10 Number

 

导入企业黑名单号码

向企业黑名单库中导入号码。需要注意的是,每个黑名单组仅支持串行导入,不同黑名单组支持并行导入。接口每次调用支持导入4万号码。

请求地址:https://{开放平台地址}/v2/api/tenants/{tenantId}/importBlackList

请求方法:POST

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

请求体参数:

参数名 是否必须 类型 描述
groupId Number 黑名单库的编号
blackShardingList Object 黑名单号码数据对象,上限是4万个号码

blackShardingList对象结构说明:

参数名 是否必须 类型 描述
phone Number 黑名单号码。数据格式跟随企业配置:默认明文,可选有MD5、AES格式
userName String 用户名称
expiredAtStr String 号码过期时间,默认永久,格式:yyyy-MM-dd
remark String 号码备注信息

请求体示例:

导入成功响应结果示例:

导入失败响应结果示例:

返回结果字段说明

字段名 含义 长度 类型
failCount 黑名单组的编号 10 String
leftCount 黑名单组剩余导入数 10 Number
successCount 导入成功数 10 Number

删除企业黑名单组内数据

删除企业黑名单组中全部的数据。

请求地址:https://{开放平台服务地址}/v2/api/tenants/{tenantId}/deleteBlackListByGid

请求方法:POST

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

请求体入参:

参数名 是否必须 类型 描述
groupId Number 组id

请求示例:

返回结果:

字段名 含义 长度 类型
messageCode 业务校验Code(发生业务校验异常时的返回值) 20 Number

 

按企业主体导入黑名单号码

向企业主体黑名单库中导入号码。需要注意的是,每个黑名单组仅支持串行导入,不同黑名单组支持并行导入。接口每次调用支持导入4万号码。

请求地址:https://{开放平台地址}/v2/api/tenants/{tenantId}/importPlatformBlackList

请求方法:POST

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

请求体参数:

参数名 是否必须 类型 描述
groupId Number 黑名单库的编号
blackShardingList Object 黑名单号码数据对象,上限是4万个号码

blackShardingList对象结构说明:

参数名 是否必须 类型 描述
phone Number 黑名单号码。数据格式跟随企业配置:默认明文,可选有MD5、AES格式
userName String 用户名称
expiredAtStr String 号码过期时间,默认永久,格式:yyyy-MM-dd
remark String 号码备注信息

请求体示例:

导入成功响应结果示例:

导入失败响应结果示例:

返回结果字段说明

字段名 含义 长度 类型
failCount 黑名单组的编号 10 String
leftCount 黑名单组剩余导入数 10 Number
successCount 导入成功数 10 Number

企业投诉管理

查询企业投诉话单

查询当前租户下话单、短信投诉。

请求地址:https://{开放平台服务地址}/v2/api/tenants/{tenantId}/queryComplaint

请求方法:GET

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

请求体参数:

参数名 是否必须 类型 描述
complaintType Number 投诉类型: 1. 话单投诉 2. 短信投诉
callThrough Number 是否接通,1:接通,0:未接通
complaintTimeStart String 投诉起始 yyyy-MM-dd hh:mm:ss
complaintTimeEnd String 投诉结束 yyyy-MM-dd hh:mm:ss
pageNum String 分页每页显示条数
pageSize String 当前页码

返回结果:

字段名 含义 长度 类型
callTime 拨打时间 255 String
called 投诉号码 255 String
complaintTime 投诉时间 255 String
complaintType 投诉类型: 1. 话单投诉 2. 短信投诉 255 String
templateProductName 产品名称 255 String

pagination对象的字段说明:

字段名 含义 长度 类型
total 总记录条数 10 Number
page 当前页码 10 Number
rows 当前返回记录数 10 Number

话术管理

查询话术模板列表

查询当前租户下已创建完成的话术模板,用于创建外呼任务时选择话术模板。

请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/queryTemplateList

请求方法:GET

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

返回结果:

字段名 含义 长度 类型
dialogTemplateId 话术模板ID 20 Number
createTime 创建时间(格式 yyyy-MM-dd HH:mm:ss) 50 String
name 话术名称 100 String
robotType AI呼叫类型 (1:AI外呼,2:放音) 5 Number
variables 话术自定义变量集合 255 Array
categoryRules 意向分类规则 无限制 Array

 

查询坐席辅助话术模板列表

查询租户下已创建完成的坐席辅助话术模板,用于创建人工坐席任务时选择话术模板。

请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/queryAgentTemplateList

请求方法:GET

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

返回结果:

字段名 含义 长度 类型
dialogTemplateId 辅助话术模板ID 20 Number
createTime 创建时间(格式 yyyy-MM-dd HH:mm:ss) 50 String
name 话术名称 100 String

 

短信管理

查询短信模板列表

查询租户下已创建完成的短信模板,创建外呼任务时,可以配置挂机短信。

请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/querySmsTemplateList

请求方法:GET

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

返回结果:

字段名 含义 长度 类型
smsTemplateId 短信模板ID 20 Number
templateContent 短信内容 255 String
templateName 模板名称 100 String
tenantId 租户ID 20 Number

查询短信上行消息记录

查询租户下被叫回传的短信上行消息记录。

请求地址:https://{开放平台服务地址}/v2/api/{tenantId}/queryMsgUplink

请求方法:GET

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

请求参数:

参数名 是否必须 类型 描述
startTime String 开始时间
endTime String 结束时间

请求示例:

返回结果:

字段名 含义 类型
content 上行内容 String
phone 上行号码 String
unikey 数据唯一标识 String
uplinkTime 上行返回时间 String

创建短信群发任务

创建短信群发任务,可同时上传线索数据。数据加密方式是企业级配置,如有变更请联系一鸣的运营小伙伴。

请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/createSmsTask

请求方法:POST

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

clueList注意事项:

  1. 请留意此接口采用同步处理,线索导入完成才返回HTTP响应;
  2. 单次请求的线索数量最大为1万,超过的可请求任务导入线索接口
  3. 单任务线索总量上限100万。

请求体入参:

参数名 是否必须 类型 描述
taskName String 任务名称,不能包含中文分号
templateProductId Number 产品id
msgTemplateId Number 短信模板id
scheduledSendTime String 定时发送时间 yyyy-MM-dd HH:mm:ss格式
clueList Array 线索列表

clueList参数说明:

参数名 是否必须 类型 描述
phone String 手机号
unikey String 数据标识(由客户侧提供,回执使用)
variables Array 短信自定义变量,例如:
["变量1","变量2"]

请求参数示例:

返回结果:

字段名 含义 长度 类型
taskId 任务ID 20 Number
errorInfo 线索上传错误提示 255 String
clueFailNum 上传失败数 20 Number

短信群发任务导入线索

对已存在的短信群发任务增量导入线索。

请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/smsClueComplement

请求方法:POST

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

clueList注意事项:

  1. 请留意此接口采用同步处理,线索导入完成才返回HTTP响应;
  2. 单次请求的线索数量最大为1万
  3. 单任务线索总量上限100万。

请求体入参:

参数名 是否必须 类型 描述
taskId Number 需要导入数据的任务ID
clueList Array 线索数组

clueList参数说明:

参数名 是否必须 类型 描述
phone String 手机号
unikey String 数据标识(由客户侧提供,回执使用)
variables Array 短信自定义变量,例如:
["变量1","变量2"]

请求示例:

返回结果:

字段名 含义 长度 类型
taskId 任务ID 20 Number
errorInfo 线索上传错误提示 255 String
clueFailNum 上传失败数 20 Number

线路资源管理

查询外呼线路列表

查询租户下可用的线路列表,创建任务时可选择指定线路进行外呼。

请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/queryCallLine

请求方法:GET

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

返回结果:

字段名 含义 长度 类型
callLineId 线路ID 20 Number
callLineName 线路名称 50 String

 

AI坐席管理

查询AI坐席数

查询企业配置的机器人总数和当前空闲机器人数。

请求地址: https://{开放平台服务地址}/v2/api/tenants/{tenantId}/robots

请求方法:GET

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

请求头(Header)入参:无

请求示例:

返回结果:

 

人工坐席管理

查询坐席列表

查询企业可用的坐席的列表,创建人工任务时可选择相应的坐席。

请求地址:https://{开放平台服务地址}/v2/api/tenants/{tenantId}/agents

请求方法:GET

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

请求头(Header)入参:

参数名 是否必须 类型 描述
fullName String 坐席名称,可模糊查询
phone String 绑定了坐席的员工手机号,可模糊查询
agentStatus Number 坐席状态(1:已过期;2:已启用;3:未启用;默认:2)
groupId Number 坐席组Id
expiredAtStart String 坐席过期时间范围,开始时间
expiredAtEnd String 坐席过期时间范围,结束时间
allocateAtStart String 坐席分配时间范围,开始时间
allocateAtEnd String 坐席分配时间范围,结束时间

请求示例:

 

返回结果:

 

查询坐席组列表

查询租户下可用的坐席的列表,创建人工任务时可选择相应的坐席。

请求地址:https://{开放平台服务地址}/v2/api/tenants/{tenantId}/groups

请求方法:GET

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

请求头(Header)入参:

参数名 是否必须 类型 描述
createdAtStart String 坐席组创建时间范围,开始时间
createdAtEnd String 坐席组创建时间范围,结束时间
name String 坐席组名称,可模糊查询
fullName String 坐席组成员名称,可模糊查询

请求示例:

 

返回结果:

 

费用管理

查询费用统计

查询企业的总费用、通话计费时长总计、接通总量。

请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/queryFeeTotal

请求方法:POST

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

请求体入参:

参数名 是否必须 类型 描述
startDate Date 要查询的起始日期(从该日期的00时00分00秒)
endDate Date 要查询的截止日期(到该日期的23时59分59秒),不传则默认查截止到当天为止

请求示例:

返回结果:

字段名 含义 长度 类型
totalMinutes 总分钟数 20 Number
totalFee 总费用(元) 20 Double
totalCount 接通总数量 20 Number

 

回执数据

话单回执查询

推送失败(在重试机制下仍然失败)的、使用主动拉取配置的回执数据,通过本接口查询。

接口参数有数据类型、推送类型、查询条数、查询页数。

请求地址:https://{开放平台服务地址}/v2/api/tenants/{tenantId}/exportCdr

请求方法:GET

请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)

请求头(header)入参:

参数名 是否必须 类型 描述
dataType Number 数据类型(0:未接通话单,1:接通话单;2:已拦截;默认值:0)
callbackType Number 推送类型(0:推送成功;1:推送失败;2:主动拉取;默认值:1)
date Number 话单日期(格式:YYYYMMDD ,支持往前追溯7天;默认查询当天)
pageNo Number 查询页数(取值范围:1~n;默认值:1)
pageNum Number 查询条数(取值范围:100~10000;默认值:100)
idGt Number 查询大于id值的数据,可帮助提高查询速度,用此参数后pageNo参数失效

请求示例:

返回结果:

返回结果的字段含义请参照“推送接口说明”章节,数据含义一致。

 

关于提高查询速度字段的说明

dataType、callbackType、date等查询条件仍正常使用。相比话单回执推送接口,主动拉取回执会多返回id字段,字段说明:

字段名 含义 长度
id 回执索引号(说明:非uuid类型字段,用于提高分页查询速率) 20

举例,当日首次拉取,分页参数如下设置:

再调用接口拉取话单,分页参数如下设置:

 

推送接口说明

话单回执

推送话单给客户侧提供的接口地址。目前支持实时推送、定时批量推送和主动拉取。开启推送功能及策略配置,一鸣的运营在管理后台配置。详细请咨询运营人员。

说明:

  1. 推送失败(重试机制下仍失败)的话单回执可通过“话单回执拉取”接口获取。也可联系一鸣运营人员重推;
  2. 推送参数:连接超时3秒,读取超时3秒;
  3. 重试参数:重试上限3次,重试间隔1秒。

请求地址:客户侧提供接口地址

请求方法:POST

参数以请求体形式传输,字段如下:

字段名 含义 长度 是否必须 类型
unikey 数据标识 255 String
phone 手机号 255 String
taskId 任务ID 20 Number
taskName 任务名称 255 String
dialogTemplateId 话术模板ID 20 Number
tenantId 企业ID 20 Number
aiCallStatus 1:未拨打
2:正在拨打中
3:正在排队
4:未接通
5:有意向
6:无意向
7:已接通
100:已拦截
10 Number
callLineId 线路ID 20 是(黑名单除外) Number
callId 通话记录ID 255 是(黑名单除外) String
callTime 拨打时间 50 是(黑名单除外) String
hungUpTime 挂机时间 50 是(黑名单除外) String
callConnectTime 接通时间 50 String
callDuration 通话总时长(秒) 10 Number
aiCallDuration AI通话时长(秒) 10 Number
humanCallDuration 人工通话时长(秒) 10 Number
minute 计费时长(分钟) 10 Number
recordFileUrl 通话录音文件访问地址 255 String
clueCategory 意向分类描述,例如“A” 5 String
clueCategoryCode 意向分类Code,详见意向分类表 2 Number
clueCategoryName AI线索分类描述详情,例如“A(发短信)” 255 String
humanClueCategory 人工意向分类描述,例如“A” 5 String
humanClueCategoryCode 人工意向分类Code,详见意向分类表 2 Number
humanClueCategoryName 人工线索分类描述详情,例如“A(发短信)” 255 String
smsIsSend 触发短信标识位(0:否, 1:是) 2 Number
smsTemplateIdList 短信模板 无限制 Array
hangUpCause 未接通原因 20 String
hangUpCauseCode 未接通原因Code 2 Number
relayDisplayNum 中继外显号 255 String
dialogueRound 对话轮次 10 Number
hitIntent 命中意图 255 String
agentName 人工坐席姓名 255 String
agentNumber 人工坐席号码 255 String
phoneArea 号码归属地 100 String
phoneIsp 运营商
中国电信/中国联通/中国移动/其他
255 String
callDetailText 对话文本 无限制 Object
hangUpTypeName 挂断方(主叫挂断、被叫挂断) 255 String

callDetailText对象字段说明:

字段名 含义 长度 类型
role 说话者角色(robot:机器人,customer:用户) 255 String
saying 说话者的⽂本内容 500 String

不同类型的话单数据示例如下:

已接通话单

 

未接通话单

 

黑名单拦截话单

 

外呼拦截话单

 

接通秒挂话单

 

短信回执

外呼任务触发短信的短信状态回执。时效性取决于短信运营商通道情况,但在30分钟内未能得到运营商反馈的投递结果,一鸣开放平台会推送“未知”状态的短信回执。若后续运营商返回该条短信的发送结果,会推送最新的投递状态。

推送功能由运营人员在管理后台配置开启。详细请咨询运营人员。

请求地址:客户侧提供接口地址

请求方法:POST

参数以请求体形式传输,字段如下:

字段名 含义 长度 是否必须 类型
id 短信ID 255 String
tenantId 企业ID 20 Number
taskId 任务ID 20 Number
unikey 数据标识 255 String
phone 手机号 255 String
status 投递状态
0:成功,1: 失败,2:未知
20 Number
content 短信内容 255 String
channel 短信通道名称 255 String
phoneArea 号码归属地 100 String
phoneIsp 运营商
中国电信/中国联通/中国移动/其他
255 String
sendTime 短信发送时间(格式 yyyy-MM-dd HH:mm:ss) 50 String
reportTime 短信状态返回时间(格式 yyyy-MM-dd HH:mm:ss) 50 String

推送参数格式:

 

业务错误码列表

错误码 描述
9999 系统错误
4001 操作失败
4002 无效参数
4003 该任务已被删除
4004 机器人模板为空
4005 可用并发数超过限制
4006 AI坐席默认数量为空,请联系运营人员处理
4007 AI坐席已过期,请联系运营人员处理
4008 草稿状态的话术模板不可使用,请联系运营人员处理
4009 当前账户线路余额不足,请联系运营人员处理
4010 请等待上一步操作处理完成
4011 请等待线索导入完成
4012 任务尚未完成,不能进行呼损操作的处理
4013 任务的AI坐席尚未释放完成,不能进行呼损操作的处理
4014 无可呼损的线索数据
4015 线路ID不存在
4016 当前时间非租户工作时间,请修改任务的工作时间
4017 当前时间非租户工作时间,任务已启动,将于下一个工作时间自动呼出
4021 黑名单列表为空
4022 每次导入的黑名单不能超过4万
4023 缺少黑名单组Id
4024 黑名单组不存在

 

意向分类表

意向分类Code 意向分类描述
1 A
2 B
3 C
4 D
5 E
6 F
7 G
8 H
9 I
10 J
11 K
12 L
13 M
14 N
15 O
16 P
17 Q
18 R
19 S
20 T
21 U
22 V
23 W
24 X
25 Y
26 Z
27 AA
28 BB
29 CC
30 DD
31 EE
32 FF
33 GG
34 HH
35 II
36 JJ
37 KK
38 LL
39 MM
40 NN
41 OO
42 PP
43 QQ
44 RR
45 SS
46 TT
47 UU
48 VV
49 WW
50 XX
51 YY
52 ZZ