智能外呼AI Outbound

    业务系统对接


    本平台支持使用Webhook机制,对接机器人和客户业务系统。具体介绍如下:

    URL

    与webhook中配置的url一致。

    说明

    通过webhook server对接业务系统,对会话中的回答value及上下文变量context进行处理,完成业务咨询、业务办理等业务动作。 所有的接口要支持可重入,可根据query_id来判断,系统在请求超时后会重试一次。

    请求方式

    http post

    参数说明

    请求体说明

    参数 说明 类型 是否必需
    action 对话树中配置的action String 否,依配置情况而定。
    dialog_node_name 对话树中节点名称,从哪个节点调用的webhook。 String
    context 会话过程中的上下文变量 Json
    value 当前节点中配置的value,如果webhook异常将这个话术返回给用户,webhook正常返回的话这个配置的值就不使用,以webhook返回为准。 String 否,依配置情况而定。有webhook的节点的value的作用是用来作为webhook服务异常时的兜底话术,不能在这里面配置正常情况的话术。正常情况下返回的话术要么是webhook服务返回的value,要么是跳转一个节点,在节点中是用模版,通过拼装webhook服务返回的context来实现。
    session_id 会话id String 是,便于全链条复现对话,定位问题。
    query_id 请求id String 用于定位session中的request。全局唯一。
    Header Authorization 校验字段 String
    其它配置的headers

    返回参数

    参数 说明 类型 是否必需
    errno 错误码 int
    msg 错误信息 string
    data json

    data

    参数 说明 类型 是否必需
    context 需要新增、更新的上下文变量,要清除的用“key”:null json 是,有一个必须的布尔型参数api_response_status,用来表示业务系统是否正常响应。
    value 需要返回的回答 String 否,如果返回了这个字段,将这个字段的值返回给用户。

    Authorization 生成方式

    public String basic(String userName, String password) {
        if (StringUtils.isEmpty(userName) && StringUtils.isEmpty(password)) {
                return null;
        }
        String usernameAndPassword = userName + ":" + password;
        byte[] bytes = usernameAndPassword.getBytes(Charset.forName("ISO-8859-1"));
        return "Basic " + Base64.getEncoder().encodeToString(bytes);
    }

    请求示例

    curl -XPOST 'https://api-aicp.baidu.com/api/v1/webhook' -d '{"context":{"location":"北京"},"action":"get_weather","dialog_node_name":"get_weather","session_id":"xxxxxxx","query_id":"xxxxxxxxx"}'

    返回结果

    {"code":200,"time":1515128855583,"msg":"ok","data":{"context":{"api_response_status":true},"value":"周五 01月05日 (实时:1℃),多云转晴,西风微风,3 ~ -6℃.周六,多云转阴,东北风微风,2 ~ -4℃.周日,阴转多云,西南风微风,3 ~ -4℃.周一,晴,西北风4-5级,2 ~ -6℃."}}

    上一篇
    事件管理
    下一篇
    API文档