更新时间:2023-09-27 GMT+08:00

新增外呼活动(v2)

场景描述

调用该接口新增预测外呼、智能外呼、自动外呼、预览外呼、预占外呼。

推荐使用v2版本,v2版本支持外呼重试策略,呼叫策略,业务结果策略的添加,只需要一个接口就可以新增外呼任务的相关数据,不需要额外调用设置外呼活动重试策略接口了。

使用说明

  • 前提条件
    • 已经申请了开发者账号。
    • 智能外呼时,需要客户开发IVR,具体详情请参考配置智能IVR
  • 使用限制
    • 只能创建20个设备类型为技能队列的外呼活动任务。
    • 只能创建20个设备类型为IVR的外呼活动任务。

      同一个租户下面同种外呼任务活跃的数量不能大于一定值。值取决于配置项max.liveliest.taskCount,默认是20。

    • 外呼活动创建后,无法修改设备类型。

接口方法

该接口仅支持POST方法。

接口URI

https://ip:port/rest/isales/v2/openapi/campaigns/{vdnId}

其中,ip为CC-iSales服务器地址,port为CC-iSales服务器的HTTPS端口号。

表1 URL中携带的参数说明

序号

参数名

参数类型

是否必选

说明

1

vdnId

int

True

虚拟呼叫中心ID。

取值的类型为整数,取值范围为1~9999。

请求说明

表2 请求消息头参数

序号

名称

参数类型

是否必选

说明

1

Content-Type

String

True

固定填 application/json; charset=UTF-8。

2

Authorization

String

True

生成方式参见C2 监控/系统外呼/话单/知识库类接口鉴权方式

表3 请求消息体参数说明

序号

参数名

参数类型

是否必选

说明

1

name

String

True

外呼活动的名称。

不能与已有外呼活动名称重复。

最大长度为32个字符。

2

description

String

False

外呼活动的描述。

最大长度为200字符,不含"[]=;<>特殊字符。

3

strBeginTime

String

True

外呼活动开始时间。

格式为yyyy-MM-dd HH:mm:ss,不能早于今天的零点。

4

strEndTime

String

True

外呼活动结束时间。

格式为yyyy-MM-dd HH:mm:ss。

5

deviceType

int

True

外呼设备类型。

取值范围:

  • 1:智能外呼的IVR(SaaS环境下且智能化特性开启时可用 )
  • 2:预测外呼的技能队列
  • 3:自动外呼的IVR
  • 5:预览外呼的技能队列
  • 6:预占外呼的技能队列

6

callerNo

List

True

支持多主叫号码。

该对象的参数说明请参见表13

7

maxAlertingTime

int

True

用户不应答最大振铃时长,超过该时长,则释放呼叫。

预览外呼取值范围:9~120,单位为秒;其他外呼取值范围:5~120,单位为秒。

8

priority

int

False

任务优先级。

取值范围:1-5,数字越小,优先级越高。

9

scheduleParam

Object

True

呼出时间段。

该对象的参数说明请参见表4

10

ivrParam

Object

False

deviceType为1或者3(IVR)时为True。

该对象的参数说明请参见表5

11

skillParam

Object

False

deviceType为2,5,6(技能队列)时为True。

该对象的参数说明请参见表6

12

initStatus

int

False

活动添加状态,默认值为0。

取值范围:

  • 0:活动添加为启动状态。
  • 1:活动添加后为暂停状态。

13

callBackUrl

String

True

外呼结果的回调通知地址。

必须以https://或http开头。

说明:
  • HTTP协议是不安全协议,可能会对系统带来风险,不推荐使用。建议使用安全的HTTPS协议。
  • 请联系华为运维人员使用系统管理员账号登陆客户服务云,进入呼叫中心管理>地址白名单管理添加白名单,白名单地址类型选择外呼结果推送地址。

14

retryPolicy

Object

True

外呼结果策略。

该对象的参数说明请参见表14

15

callPolicy

Object

False

呼叫策略。

该对象的参数说明请参见表19

16

ccId

int

op环境为True

支持多中心模式下,该字段用于标识具体所属的中心。

如果呼叫策略callPolciy不为空,且当callType=1(轮次呼叫)时,外呼结果策略retryPolicy下的policyType只能为1,即号码类型策略。

表4 scheduleParam参数说明

序号

参数名

参数类型

是否必选

说明

9.1

workdayBeginTime1

String

False

工作日呼出时间段1开始时间,格式为HH:mm。

9.2

workdayEndTime1

String

False

工作日呼出时间段1结束时间,格式为HH:mm。

9.3

workdayBeginTime2

String

False

工作日呼出时间段2开始时间,格式为HH:mm。

9.4

workdayEndTime2

String

False

工作日呼出时间段2结束时间,格式为HH:mm。

9.5

workdayBeginTime3

String

False

工作日呼出时间段3开始时间,格式为HH:mm。

9.6

workdayEndTime3

String

False

工作日呼出时间段3结束时间,格式为HH:mm。

9.7

holidayBeginTime1

String

False

节假日呼出时间段1开始时间,格式为HH:mm。

9.8

holidayEndTime1

String

False

节假日呼出时间段1结束时间,格式为HH:mm。

9.9

holidayBeginTime2

String

False

节假日呼出时间段2开始时间,格式为HH:mm。

9.10

holidayEndTime2

String

False

节假日呼出时间段2结束时间,格式为HH:mm。

9.11

holidayBeginTime3

String

False

节假日呼出时间段3开始时间,格式为HH:mm。

9.12

holidayEndTime3

String

False

节假日呼出时间段3结束时间,格式为HH:mm。

  1. 工作日呼出时间段1、呼出时间段2、呼出时间段3不能全为空;

  2. 开始时间和结束时间需要同时为空或者同时不为空;

  3. 开始时间需要小于结束时间;

  4. 除非指明某天或者周几是节假日,否则都按工作日外呼

  5. 当配置节假日时间段后,若为了兼容AICC-isales页面,则后续必须调用(新增外呼活动节假日)接口,指明外呼活动与节假日关系否则会出现接口与页面的不兼容
表5 ivrParam参数说明

序号

参数名

参数类型

是否必选

说明

10.1

deviceSign

String

True

deviceType=1时,传入智能IVR的主流程编码(oifde-flowcode)。该主流程编码可通过租户管理员登录AICC前台,在“配置中心 > 流程配置 > 智能IVR > 流程管理 > 流程编排”查看。

deviceType=3时,传入普通IVR主流程接入码。可通过租户管理员登录AICC前台,在配置中心 > 流程配置 > 流程管理查看。

10.2

callCount

int

True

外呼任务每次呼出的数量。

取值范围:1~100。

10.3

callInterval

int

True

外呼任务的呼出间隔时间。

取值范围:1~9999,单位秒。

例如某外呼任务需要达到1分钟呼出60个呼叫的需求,建议配置成callInterval=3,callCount=3。

外呼后使用设备为IVR,外呼数量计算为 (callCount/callInterval)*3取整(大于1时才会呼出);呼出间隔大于3时以3秒周期检测计算,小于3时以实际设置检测计算。

表6 skillParam参数说明

序号

参数名

参数类型

是否必选

说明

11.1

skillId

int

True

技能队列的ID。

取值范围:1~1000。

11.2

skillName

String

True

技能队列的名称。

最大长度100。

11.3

outBoundType

int

True

呼出方式,

取值范围:

  • 2:预测外呼
  • 5:预览外呼
  • 6:预占外呼

11.4

predictParam

Object

False

outBoundType为2时为True,预测呼出时的参数配置。

该对象的参数说明请参见表8

11.5

previewParam

Object

False

outBoundType为5时为True,预览呼出时的参数配置。

该对象的参数说明请参见表7

表7 previewParam参数说明

序号

参数名

参数类型

是否必选

说明

11.5.1

failInterval

int

True

呼出间隔时间,取值范围:3~60,单位秒。

11.5.2

obCallCount

int

True

每次呼出数量,取值范围:1~100。

11.5.3

autoCallTime

int

True

预览自动呼叫时长,最小值为5,最大值为maxAlertingTime-3,单位秒。

表8 predictParam参数说明

序号

参数名

参数类型

是否必选

说明

11.4.1

predictMethod

int

True

预测外呼算法。

取值范围:

1:经验预测算法

2:座席利用率预测算法

3:外呼接通率预测算法

5:摘机率预测算法

11.4.2

expPredictParam

Object

False

经验预测算法的参数配置,predictMethod为1(经验预测算法)时,为True。

该对象的参数说明请参见表9

11.4.3

agentPredictParam

Object

False

座席利用率预测算法的参数配置,predictMethod为2(座席利用率预测算法)时,为True。

该对象的参数说明请参见表10

11.4.4

connectPredictParam

Object

False

外呼接通率预测算法的参数配置,predictMethod为3(外呼接通率预测算法)时,为True。

该对象的参数说明请参见表11

11.4.5

offhookPredictParam

Object

False

摘机率预测算法的参数配置,predictMethod为5(摘机率预测算法)时,为True。

该对象的参数说明请参见表12

表9 expPredictParam参数说明

序号

参数名

参数类型

是否必选

说明

11.4.2.1

maxAvgCallTime

int

True

最大平均通话时长,正整数,单位秒。取值范围:50-200。

11.4.2.2

minAvgCallTime

int

True

最小平均通话时长,正整数,单位秒。取值范围:50-200。必须小于等于maxAvgCallTime。

11.4.2.3

outBoundRate

int

True

呼出速率。

取值范围:0~100。缺省值70。

表10 agentPredictParam参数说明

序号

参数名

参数类型

是否必选

说明

11.4.3.1

maxAvgCallTime

int

True

最大平均通话时长,正整数,单位秒。取值范围:50-200。

11.4.3.2

minAvgCallTime

int

True

最小平均通话时长,正整数,单位秒。取值范围:50-200。必须小于等于maxAvgCallTime。

11.4.3.3

lossRate

int

True

最低呼损率。

取值范围:0~100。缺省值3。

11.4.3.4

utilRate

int

True

座席利用率。

取值范围:0~100。缺省值70。

11.4.3.5

utilRateMethod

int

True

座席利用率算法。

取值范围:

1:表示座席利用率=总的通话时长/总的签入时长

2:表示座席利用率=(总的通话时长+工作态时长)/总的签入时长

表11 connectPredictParam参数说明

序号

参数名

参数类型

是否必选

说明

11.4.4.1

maxAvgCallTime

int

True

最大平均通话时长,正整数,单位秒。取值范围:50-200。

11.4.4.2

minAvgCallTime

int

True

最小平均通话时长,正整数,单位秒。取值范围:50-200。必须小于等于maxAvgCallTime。

11.4.4.3

lossRate

int

True

最低呼损率。

取值范围:0~100。缺省值3。

11.4.4.4

waitTime

int

True

用户等待时间。

取值范围:0~16,单位秒。缺省值5。

11.4.4.5

connRate

int

True

外呼接通率。

取值范围:0~100。

表12 offhookPredictParam参数说明

序号

参数名

参数类型

是否必选

说明

11.4.5.1

offHookRate

int

True

摘机率。

取值范围:50~200。缺省值100。

表13 callerNo参数说明

序号

参数名

参数类型

是否必选

说明

6.1

accessCode

String

True

主叫号码。

呼通客户后,客户的电话终端上显示的号码。

最大长度为32个字符,有效字符为:0~9。

6.2

priority

int

True

主叫号码优先级。

取值范围:1-5。数字越小,优先级越高

表14 retryPolicy参数说明

序号

参数名

参数类型

是否必选

说明

14.1

policyType

int

True

重试策略类型。

0:全局策略 1:号码类型匹配策略。

14.2

retryDay

int

--

最大试呼天数。

全局策略下的普通策略必填,取值范围:1-5。

14.3

retryTimes

int

--

每天最大试呼次数。

全局策略下的普通策略必填,取值范围:1-6。

14.4

callInterval

int

--

呼出间隔(秒)。

全局策略下的普通策略必填,取值范围:1-86400。

14.5

resultRetry

String

--

根据结果配置策略的json串。

全局策略下根据结果配置策略必填。

该对象的参数说明请参见表15

14.6

policyJson

String

--

根据号码类型匹配策略的json串。

号码类型匹配策略下必填。

该对象的参数说明请参见表16

14.7

busiPolicy

String

False

业务结果策略的json串。

该对象的参数说明请参见表18

14.8

noRetryPolicy

List<String>

policyType为1时不可以填,其他情况选填。

不重试的结果码。即配置不重试的结果码,该结果码来源于查询外呼结果中的“data”属性下的“resultCode”字段。

policyType=0时,如果是普通策略只要填写retryDay,retryTimes,callInterval这3个字段,例如:"retryDay": 2,"retryTimes": 2,"callInterval": 2。如果是根据结果配置策略,则只填写该字段resultRetry,例如:"[{"result":"2","retryNumber":"1","callInterval":600}]"。

policyType=1时,只要填写policyJson即可。

如果是普通策略,policyJson样例:policyJson : "[{"dataType":"ST","type":"0","policy":{"retryDay":"2","retryTimes":"2"}}]"。

如果是根据结果策略配置,policyJson样例:"policyJson": "[{'dataType':'SI','type':1,'policy':[{'result':4,'retryNumber':3,'callInterval':600}]}]"。

表15 resultRetry参数说明

序号

参数名

参数类型

是否必选

说明

14.5.1

result

int

--

结果类型。

全局策略的根据结果策略必填,取值范围:1-9。

14.5.2

callInterval

int

--

呼出间隔(秒)。

全局策略的根据结果策略必填,取值范围:1-86400。

14.5.3

retryNumber

int

--

重试次数。

全局策略的根据结果策略必填,取值范围:0-9。

表16 policyJson参数说明

序号

参数名

参数类型

是否必选

说明

14.6.1

dataType

String

True

号码类型。

取值范围:最大长度20,不包含特殊字符。

14.6.2

type

int

True

重试逻辑策略类型:

  • 0:普通策略
  • 1:结果策略

14.6.3

policy

String

True

策略配置相关信息。

该对象的参数说明请参见表17

表17 policy参数说明

序号

参数名

参数类型

是否必选

说明

14.6.3.1

retryDay

int

--

最大试呼天数。

根据号码类型匹配策略的普通策略必填,取值范围:1-5。

14.6.3.2

retryTimes

int

--

每天最大试呼次数。

根据号码类型匹配策略的普通策略必填,取值范围:1-6。

14.6.3.3

result

int

--

结果类型。

根据号码类型匹配策略的结果策略必填,取值范围:0-9。

(1-客户忙,2-客户未接,3-客户拒接,4-空号,5-客户关机,6-客户不在服务区,7-传真、总机等,8-呼叫超时,9-呼叫失败,0-其他)。

重试策略还会根据具体的失败码(failCode)结合判断。

失败码参考表4

14.6.3.4

callInterval

int

--

呼出间隔(秒)。

根据号码类型匹配策略的结果策略必填,取值范围:1-86400。

14.6.3.5

retryNumber

int

--

重试次数。

根据号码类型匹配策略的结果策略必填,取值范围:0-9。

表18 busiPolicy参数说明

序号

参数名

参数类型

是否必选

说明

14.7.1

busiResultCode

String

True

业务结果编码。

14.7.2

busiResultSubCode

String

--

业务结果子编码。(跟业务结果编码关联)

14.7.3

busiResultPolicy

int

True

业务结果呼叫策略。

0-停止呼叫,1-呼叫下个号码,2-呼叫当前号码。

14.7.4

callInterval

int

--

呼出间隔(秒)。

呼叫策略为0时不用填写,其他为True。取值范围:1-3600。

表19 callPolicy参数说明

序号

参数名

参数类型

是否必选

说明

15.1

callType

int

False

呼叫方式。

0,按顺序 1,按轮次。默认是按顺序。

15.2

chooseType

int

--

轮次形式。

0,按号码分类 1,按号码序号。按轮次时必填。

15.3

turns

List

--

轮次信息。

按轮次时必填。

该对象的参数说明请参见表20

表20 turns参数说明

序号

参数名

参数类型

是否必选

说明

15.3.1

turnType

String

--

号码类型。

取值范围:最大长度20,不包含特殊字符。

按号码分类时必填。

15.3.2

turnOrder

int

--

号码序号。

取值范围:1-10。按号码序号时必填。

响应说明

表21 消息体参数说明

序号

参数名

参数类型

说明

1

resultCode

String

原因码。0200000表示成功,其他表示失败。

具体见表23

2

resultDesc

String

描述。

3

returnCode

String

原因码。0200000表示成功,其他表示失败。

具体见表23

4

returnDesc

String

描述。

5

returnObject

Object

参见表22

表22 returnObject参数说明

序号

参数名

参数类型

说明

5.1

id

int

外呼活动id。

触发事件

错误结果码

表23 错误原因码说明

序号

错误码

说明

1

0200001

参数异常,异常详情在resultDesc中描述。

2

0200002

外呼活动的开始时间早于今天凌晨。

3

0200003

设备类型为技能队列的外呼活动已达到上限,如果需要继续新增,则先删除其他设备类型为技能队列的外呼活动。

4

0200004

设备类型为IVR的外呼活动已达到上限,如果需要继续新增,则先删除其他设备类型为IVR的外呼活动。

5

0200005

外呼活动名称不能重复。

6

0200017

技能队列ID不存在。

7

02000001

参数值为空

8

02000002

参数包含非法字符

9

02000003

参数长度不能大于规定长度

10

02000004

参数长度不能小于规定长度

11

02000005

参数长度需要介于规定长度之间

12

02000006

参数值类型不正确

13

02000007

参数值大小不正确

14

02000008

参数转换异常,请检查请求参数

15

02000009

参数组合不正确,请检查请求参数

16

02000010

hour和minute必须同时存在

17

02000011

参数个数不能大于规定个数

报文样例

  • 该接口的请求消息体举例如下:
    {
        "name": "test0827shwocase1",
        "description": "long0825",
        "strBeginTime": "2021-08-27 00:00:00",
        "strEndTime": "2021-08-28 23:59:59",
        "deviceType": 2,
        "callerNo": [
            {
                "accessCode": "88889527",
                "priority": 3
            },
            {
                "accessCode": "88880066",
                "priority": 4
            }
        ],
        "maxAlertingTime": 20,
        "priority": 4,
        "scheduleParam": {
            "workdayBeginTime1": "00:00",
            "workdayEndTime1": "23:59",
            "workdayBeginTime2": "",
            "workdayEndTime2": "",
            "workdayBeginTime3": "",
            "workdayEndTime3": "",
            "holidayBeginTime1": "10:00",
            "holidayEndTime1": "11:00",
            "holidayBeginTime2": "13:00",
            "holidayEndTime2": "17:30",
            "holidayBeginTime3": "",
            "holidayEndTime3": ""
        },
        "skillParam": {
            "skillId": 2,
            "skillName": "defaultAudioSkill",
            "outBoundType": 2,
            "predictParam": {
                "predictMethod": 1,
                "expPredictParam": {
                    "maxAvgCallTime": 100,
                    "minAvgCallTime": 50,
                    "outBoundRate": 50
                }
            }
        },
        "retryPolicy": {
            "policyType": 1,
            "policyJson": "[{'dataType':'SI','type':1,'policy':[{'result':4,'retryNumber':3,'callInterval':600}]}]"
        },
        "callPolicy": {
            "callType": 1,
            "chooseType": 0,
            "turns": [
                {
                    "turnType": "SI"
                }
            ]
        },
        "initStatus": 0,
        "callBackUrl": "https://10.10.10.10/xxx/xxx/xxx"
    }
  • 该接口的响应消息体举例如下:
    {
        "resultCode": "0200000",
        "resultDesc": "",
        "returnCode": "0200000",
        "returnDesc": "",
        "returnObject": {
            "id": 46
        }
    }