在此文章中
介绍
dropdown icon
业务规则引擎实现
    dropdown icon
    准备工作
      配置 BRE DataSync 实例
    访问 BRE 应用程序
    创建一套规则
    dropdown icon
    BRE 请求
      常规设置
      查询参数
      解析设置
      解密设置
      输出变量
    创建包含 BRE 请求活动的流程
    常见问题解答
    dropdown icon
    使用业务规则引擎配置基于 ANI 的客户数据查找
      准备查找数据
Webex Contact Center 业务规则引擎用户指南
list-menu在此文章中
list-menu反馈?

Webex Contact Center 中的业务规则引擎 (BRE) 允许客户上传 系统在运行时可以访问的特定数据,用于做出路由决策或 显示呼叫中心客服人员所需信息。

介绍

Cisco© Business Rules Engine 是一款应用程序,可帮助在 Webex 联系中心快速查找数据。使用 Cisco© 业务规则引擎 (BRE),您可以执行数据查找、自定义路由和一般实施。系统在运行时检索数据,并将其用于路由决策或向代理显示信息。

例如,租户希望根据拨打的自动号码识别码 (ANI) 将呼叫路由到特定的一组客服人员。在这种情况下,租户只需上传 ANI 列表即可。如果来电的 ANI 在该列表中,系统会将呼叫路由到指定的座席组。如果 ANI 不在列表中,系统会将呼叫路由到普通队列。

典型的BRE实施方案包含以下主要组成部分:

  • BRE 数据同步: BRE DataSync 配置实用程序提供了一个接口,用于定义数据同步实例,以便将数据导入 BRE 数据库。租户定义数据同步实例后,即可上传 CSV 文件。该系统将上传的逗号分隔值数据转换为 BRE 数据库中的记录。

  • 业务规则引擎: 业务规则引擎实用程序提供了一个用于创建域和规则集的界面。BRE 要求传入的决策请求与 相关联。该域包含一组规则。每条规则都被赋予一个优先级。BRE 尝试根据规则中的条件,将域中优先级最高的规则与决策请求进行匹配。

  • 流程设计器: 一个用于定义流程的拖放式用户界面,该流程可以协调和自动化 Webex 联系中心的各个组件。您可以创建一个流程,调用 BRE 活动来执行类似于 HTTP 请求活动的简单数据查找。但是,在这种情况下,数据存储在 Webex 联系中心内。

数据处理指南

为维护BRE的完整性和安全性,您必须遵守以下数据处理准则:

  • 允许的数据类型: 上传对 BRE 的运行和功能至关重要的数据。这包括但不限于业务规则、配置和非敏感操作数据。

  • 限制个人身份信息: 除了 ANI 数据外,请勿向 BRE 上传任何个人身份信息 (PII)。个人身份信息包括但不限于:

    • 全名
    • 社会安全号码
    • 电子邮件地址
    • 物理地址
    • 财务信息

ANI 数据指的是与呼叫方关联的电话号码。ANI 数据是唯一允许上传到 BRE 的 PII 类型。此例外情况是为了支持依赖于 ANI 数据的特定业务功能。

业务规则引擎实现

业务规则引擎由一个实时规则引擎组成,该引擎由与入口点关联的流程调用。该规则引擎通常会咨询数据存储库,以评估所需的调用处理方式。

BRE 查询是在您的流程中进行的简单数据访问,类似于 HTTP 请求。但是,BRE 查询的数据位于 Cisco Webex 联系中心数据中心内。下图展示了 BRE 数据查找过程中涉及的各种流程。

准备工作

在实施 BRE 之前:

  • 在充分了解数据模型的基础上,为您的实现配置 BRE DataSync 实例。
  • 请熟悉本指南中使用的以下术语:
    • Attribute: attribute 是在 BRE 实用程序中创建的命名变量或数据字段。它作为 BRE 用于处理请求和生成输出的信息容器。
    • Context: context 主要用作属性的示例名称,该属性指定 BRE 请求活动的目标域。
    • Label: Label 是一种特殊类型的属性,旨在保存规则评估的输出或结果。

更多详情请参见 常见问题解答 部分。

配置 BRE DataSync 实例

BRE DataSync 工具通过访问数据库来做出路由决策。务必定期更新数据库,确保其中包含相关信息。本节介绍如何配置 BRE DataSync 实用程序以更新 BRE 存储库。

BRE DataySync 实用程序如何配置以更新 BRE 存储库的示意图。BRE 数据同步 > 增删改查 > BRE 资料库。
BRE DataSync 实用程序

租户管理员必须为规则引擎在决策过程中参考的每个数据集创建一个 BRE DataSync 实例。管理员可以创建数据集或上传 CSV 文件。数据被转换为BRE存储库中的记录。

准备工作

请联系思科客户服务客户经理以获取 BRE DataSync 帐户的访问权限。

BRE DataSync 目前仅对 完全管理员 角色启用。拥有完整管理员角色的租户可以使用 CSV 文件上传或键值对上传数据。拥有此角色的用户只能上传其所在组织的特定数据。

合作伙伴管理员、外部管理员、代理和主管无权访问 BRE DataSync 实用程序。

1

以管理员身份登录 BRE DataSync 实用程序。

为了配合 BRE Hosting 和 Scalability 的最新改进,DataSync 实用程序的 URL 已更改。请务必使用更新后的URL将数据上传到BRE。

2

选择 BRE 数据列表 以查看与租户组织相关的所有信息。

3

将数据以键值对的形式添加到 BRE 存储库: 选择 添加 BRE 数据

  1. TenantName 下拉列表中选择组织名称。

  2. 从下拉列表中选择 BRE 查找类型

    添加 BRE 查找类型时,请注意以下尺寸限制:

    • BRE 查找类型的最大字符限制:VARCHAR(200)
    • 值字段的最大字符限制:VARCHAR(500)
    • 每个组织的最大查找类型数量:100
    • 每个查找类型的最大行数:100K 行
    • 上传文件的最大大小限制:10 MB

    请联系思科客户成功经理或解决方案保障联系人以添加新的查找类型。

  3. 点击 添加数据 输入

  4. (可选)单击 删除 以删除现有的

  5. 点击 提交.

4

将 CSV 文件上传到 BRE 存储库: 选择 上传 BRE CSV 数据

  1. TenantName 下拉列表中选择组织名称。

  2. 从下拉列表中选择 BRE 查找类型

  3. 选择 上传 以浏览并上传 CSV 文件。

  4. 点击 提交.

    BRE CSV 数据上传示例 CSV 文件。列标题分别为“ANI”、“扩展”和“操作”。
    包含数据的示例 CSV 文件
    删除、更新和添加操作不区分大小写。您也可以使用语法 725160001,,Delete 删除数据。

访问 BRE 应用程序

您可以从 Webex 联系中心管理门户访问业务规则引擎应用程序。

  1. 登录 Webex 联系中心管理门户。
  2. 点击 业务规则 打开业务规则引擎仪表板。

    BRE 使用身份服务和单点登录交互。如果您已经通过 Common Identity 登录,则无需再次登录即可访问您组织的 BRE 实用程序。

系统会在新的浏览器标签页中打开业务规则引擎(BRE)应用程序。仪表盘页面以图形方式显示规则数量和执行次数。BRE仪表盘

创建一套规则

Webex Contact Center 中流程调用业务规则引擎实用程序的示意图。Webex Contact Center Flow Designer 中的流程控制 > 查询请求 > Cisco BRE > 读 > BRE 资料库。

访问 BRE 门户并按照以下说明配置属性、标签、上下文和规则。

1

要创建与您的组织关联的属性:

  1. 在“属性”页面上,选择 属性 并单击 添加

  2. 名称 字段中输入 context

  3. 从下拉列表中选择 数据类型 作为 Text

    在 BRE 工具中,数据类型必须为 Text

  4. 单击保存

2

标签能为数据赋予意义。要创建一个 标签:

  1. 在“标签”页面上,选择 标签 并单击 添加

  2. 名称 字段中输入标签名称。

  3. 单击保存

3

点击 上下文 导航至 上下文 页面。点击 +Add 语境

  1. 输入 名称 ,即 BRE 数据列表中的 生成上下文

  2. 输入可选的 描述

  3. 如果创建了多个属性,请从 属性 下拉列表中选择要与此上下文关联的属性。

  4. 单击保存

4

要创建规则,请导航至 上下文 页面。点击 +Add 规则编辑器 并配置以下详细信息:

  • 姓名: 请为该规则命名。
  • 描述: 规则的可选描述。
  • 积极的: 选中此复选框以启用该规则。
  • 标签: 请从下拉列表中选择所需的标签。
  • 优先事项: 拖动滑块为规则设置优先级。系统按照分配的优先级运行规则,从最高(100)到最低。建议您从 100 开始按降序分配优先级。
  • 规则编辑器 (用于输入代码的工具,如下图所示):输入规则代码。

创建两条规则:一个用于系统找到匹配项的情况,另一个用于系统未找到匹配项的情况。

以下示例代码返回名为 routeInfo的属性的值。如果呼叫者拨打的号码 (ANI) 与上传到 BRE 数据库的租户列表中的 ANI 匹配,则会发生这种情况。复制以下规则并粘贴到 规则编辑器中 :
when
c: Contact()
eval(c.getGlobalValuesManager().getAsString( c.getTenantId(),
c.getAttribute("context")+"."+
c.getAttribute("ani")) != null)
then
c.putAttribute("routeInfo",
c.getGlobalValuesManager().getAsString(c.getTenantId(),
c.getAttribute("context")+"." + c.getAttribute("ani")));
end
BRE Contexts 页面示例代码返回属性 routeinfo 的 ANIFound 值。

以下示例代码返回属性 routeInfo] 的值 NotFound 。如果呼叫者拨打的号码(ANI)与上传到 BRE 数据库的租户列表中的 ANI 不匹配,则会发生这种情况。复制以下规则并粘贴到 规则编辑器中 :

when
c: Contact()
eval(c.getGlobalValuesManager().getAsString( c.getTenantId(),
c.getAttribute("context")+"." + c.getAttribute("ani")) == null)
then
c.putAttribute("routeInfo", "NotFound ");
end

BRE Contexts 页面示例代码返回属性 routeinfo 的 ANINotFound 值。
5

单击保存

BRE 请求

使用 BRE 请求活动从组织的业务规则引擎 (BRE) 中检索数据,以便在流程中使用。BRE 请求活动使用标准 HTTP 协议从 BRE 获取数据。

以下各部分可用于配置 BRE 请求活动:

常规设置

参数

描述

活动标签

请输入活动名称。

活动描述

(可选)请输入活动描述。

查询参数

作为 BRE 请求的一部分,您可以将 API 调用中提供的参数传递给 BRE。在“键值”列中,您可以输入查询的键以及要随查询一起发送的关联值。您还可以使用双花括号语法来传递变量值。

BRE 活动有一个预定义的查询参数:context. 该查询参数通过 API 调用传递给 BRE。

TenantID 会自动作为参数注入,无需配置。

表1。 查询参数

参数

描述

上下文

包含请求原因。此必填参数无法编辑或删除。

此参数必须包含与 BRE 中属性 context 指定的值相同的值。有关更多信息,请参阅 《 Cisco Webex Contact Center 业务规则引擎用户指南》中的 “创建规则集 ”部分。

ANI

包含呼叫发起方的电话号码。这是一个默认参数,您可以根据 BRE 中的规则配置对其进行编辑或删除。

ANI 的一个示例值为 {{NewContact.ANI}}

响应超时

指定 BRE 请求的连接超时时间。默认值为 2000 毫秒。

重试次数

指定 BRE 请求失败后尝试的次数。

如果状态码为 5xx,则使用此参数。 ; 例如,500 或 501。

要添加查询参数,请单击 添加新。这将添加一行,您可以在其中输入键值对。您可以在 BRE 请求中添加所需的任意数量的查询参数。

解析设置

本部分允许您将 BRE 请求的响应解析为不同的变量:

参数

描述

响应变量

选择要从 BRE 请求响应对象中提取特定部分的变量。您只能从下拉列表中选择自定义流程变量。

路径表达式

定义用于解析响应对象的路径表达式。根据响应对象的数据结构类型以及提取该信息子集的用例,路径表达式会有所不同。

在执行路径表达式之前,数据会被规范化为对象层次结构,因此无论配置的内容类型如何,响应对象中都会使用 JSONPath。

解密设置

您可以解密 BRE 请求活动的输出变量。如果在流级别启用解密,则具有调试解密访问权限的用户可以在流调试日志中查看 BRE 请求活动的未屏蔽输出值。关闭 启用解密 开关,即可在活动级别禁用解密,以获得额外保护。

输出变量

BRE 请求返回两个输出变量:

  • BRERequest1.httpResponseBody: 返回 BRE 请求的响应正文。

  • BRERequest1.httpStatusCode: 返回 BRE 请求的状态码。

    这些响应代码分为以下几类:

    • 信息性回答(100-199)

    • 成功回复(200–299)

    • 重定向(300–399)

    • 客户端错误(400–499)

    • 服务器错误(500–599)

内容类型格式

以下示例描述了示例输入内容类型格式和 JSON 响应。

内容类型 XML

使用此工具将 XML 转换为 JSON 格式 https://codeshack.io/xml-to-json-converter/

XML输入格式:


  Tove
  Jani
  Reminder
  Test application


Data/JSON 归一化响应

{
   "note": {
      "to": "Tove",
      "from": "Jani",
      "heading": "Reminder",
      "body": "Test application"
   }
}

JSON 路径表达式示例:使用 $.note.from 可以将值获取为 Jani

内容类型 TOML

使用此工具将 TOML 转换为 JSON 格式 https://www.convertjson.com/toml-to-json.htm

TOML 输入格式:

title = "TOML Example"
[owner]
name = "Tom Preston-Werner"
dob = 1979-05-27T07:32:00-08:00

Data/JSON 归一化响应

{
   "title": "TOML Example",
   "owner": {
      "name": "Tom Preston-Werner",
      "dob": "1979-05-27T15:32:00.000Z"
   }
}

JSON 路径表达式示例:使用 $.owner.name 可以将值获取为 ‘Tom Preston-Werner’

内容类型 YAML

使用此工具将 YAML 转换为 JSON 格式 https://www.convertjson.com/yaml-to-json.htm

YAML 输入格式:

# An employee record
martin:
  name: Martin D'vloper
  job: Developer
  skill: Elite

Data/JSON 归一化响应

{
   "martin": {
      "name": "Martin D'vloper",
      "job": "Developer",
      "skill": "Elite"
   }
}

JSON 路径表达式示例:使用 $.martin.job 获取值 Developer

内容类型 JSON

使用 JSON 表达式求值器 https://jsonpath.com/

JSON 输入格式:

{
   "martin": {
      "name": "Martin D'vloper",
      "job": "Developer",
      "skill": "Elite"
   }
}

Data/JSON 归一化响应

{
   "martin": {
      "name": "Martin D'vloper",
      "job": "Developer",
      "skill": "Elite"
   }
}

JSON 路径表达式示例:使用 $.martin.job 获取值 Developer

创建包含 BRE 请求活动的流程

您可以使用 Webex 联系中心提供的流程设计器界面创建流程。在 Webex 联系中心流程设计器中,使用 BRE 请求 活动创建流程。

有关配置流程的更多信息,请参阅 BRE 请求

常见问题解答

  1. 方括号 attribute的作用是什么?

    Attributes 对于将传入的 BRE 查找请求与 BRE 中定义的特定规则集关联起来,以及存储规则评估结果,它们至关重要。

  2. 如何创建attributes

    attributes 配置 下创建 > BRE 实用程序中的属性。例如,您可以创建一个名为 context的属性。

  3. 的用途是什么? context

    Context 定义 BRE 应用的具体场景或查找类型。当流程调用 BRE 请求活动时,它需要告诉 BRE 要评估哪一组规则。一个属性(通常命名为 Context )被设置为特定域的名称。

  4. 什么是 domain

    domain 是 BRE 中包含相关数据的表。域名引导 BRE 找到正确的数据及其对应的规则集。

  5. 什么是 label

    BRE 评估其规则后,必须将结果传达回呼叫系统(例如,包含 BRE 请求活动的 Webex 联系中心流程)。规则通过配置,根据其条件设置指定标签属性的值。

  6. 属性、上下文和标签之间是什么关系?

    例如,您可以创建一个名为 Attributecontext。您可以将此属性与 domain (实际表,例如 ANILookup)关联。调用 BRE 请求活动时,流程会设置此属性的值(即 domain )。 = 使用 ANILookup 指定上下文(要使用哪个域的规则)。

    在方括号 domain内,使用 Drools 语法编写规则来评估条件并设置另一个方括号 attribute的值,该方括号通常称为 label (例如, label )。 = "MatchFound")。这表示规则的结果,作为流程的响应返回。

  7. 属性、上下文和标签与请求的查询参数之间有何关系?

    BRE 由流程调用,通常是通过 API 调用(BRE 请求活动)到硬编码的内部 URL。这是一个 REST API,用于查找以 CSV 格式上传的 BRE 值。 (key/value (成对的)BRE 做出决策所需的数据会作为此请求的一部分传递,类似于查询参数或请求正文在常规 REST API 调用中的作用。

    • Input Data: 来电信息(如呼叫者的 ANI、账号和其他类似数据)在 Webex 联系中心呼叫流程中被捕获为呼叫关联数据 (CAD) 变量。
    • BRE Configuration Data: 其他必要参数,例如上下文和指定域的属性(例如,域)。 = ANILookup),也被设置为流程的 BRE 请求节点中的变量。
    • Request Variables: 在流程的 BRE 请求步骤中,CAD 变量和配置变量被选为 BRE 请求配置中的变量。然后,这些变量会被发送到 BRE 的执行后端引擎。
    • Function: 从本质上讲,“请求变量”充当 BRE 的“查询参数”或输入有效负载。BRE 使用这些传入值来评估其规则中定义的条件。

使用业务规则引擎配置基于 ANI 的客户数据查找

此示例工作流程使用业务规则引擎 (BRE) 通过呼叫者的自动号码识别 (ANI) 查找客户数据,在 Webex 联系中心流程中处理返回的数据,并在座席桌面显示选定的信息。具体步骤如下:

准备查找数据

创建一个包含唯一查找键及其关联数据的 CSV 文件。对于此工作流程,调用者的 ANI 用作查找键。将一个或多个客户字段存储在值列中。用竖线(|)分隔多个字段。

15551234567,VIP Customer|John Smith|Premium Queue|Toronto 15559876543,Standard Customer|Jane Smith|General Queue|Vancouver

在这个例子中,第 1 列包含 ANI,第 2 列包含客户类型、客户名称、队列和位置。

BRE 旨在用于面向读取的查找,而不是作为用于频繁更新单个记录的事务数据库。

创建 BRE 查询类型并上传数据

打开 Webex Contact Center BRE 数据同步工具并选择您的租户。如果所需的查找类型不可用,请运维团队创建它。使用描述性名称,例如 ANILookup。记录生成的上下文名称,因为 BRE 配置和流程必须使用相同的区分大小写的值。

添加测试记录:

  1. 打开 添加数据
  2. 选择租户和 ANILookup
  3. 请输入ANI及其对应值。
  4. 提交记录。

要加载完整数据集,请打开 上传 BRE,选择租户和查找类型,然后上传 CSV 文件。打开 BRE 数据列表 并确认记录是否出现。确保 CSV 文件中的 ANI 格式与流程发送的格式一致。

启动业务规则

登录 Webex 联系中心管理门户,打开 业务规则,然后启动 BRE 仪表板:

创建上下文属性:

  1. 导航至 首页 > 属性 > .
  2. 添加一个属性,并赋予以下值:
    • 姓名: context
    • 数据类型: 文本
  3. 保存结果属性。 context 属性标识规则查询的已上传查找数据集。
  4. 添加一个表示返回数据的文本属性。即使返回值包含多个以竖线分隔的字段,也要给属性赋予一个有意义的名称。保存该属性。在这个例子中, customerType 用作示例。
  5. 打开 上下文 并添加上下文。输入生成的数据同步上下文名称,例如 ANILookup,将其与 context 属性关联,然后保存。上下文名称区分大小写,并且必须与生成的数据同步上下文完全匹配。

创建 ANI 找到规则和 ANI 未找到规则

打开上下文并选择 添加规则编辑器。将规则命名为 ANIFound,激活它,并为其分配更高的优先级,例如 100。添加以下规则并保存:

when c: Contact() eval(c.getGlobalValuesManager().getAsString( c.getTenantId(), c.getAttribute("context") + "." + c.getAttribute("ani") ) != null) then c.putAttribute( "customerType", c.getGlobalValuesManager().getAsString( c.getTenantId(), c.getAttribute("context") + "." + c.getAttribute("ani") ) ); end

该规则将上下文和 ANI 结合起来形成查找键。当存在匹配值时,将结果赋值给 customerType 响应属性。

添加另一条名为 ANINotFound的活动规则。为其分配一个较低且唯一的优先级,例如 99。配置规则,当不存在匹配记录时将 customerType 设置为 Not Found ,并保存。不要为这两条规则赋予相同的优先级。

创建联络中心流程

打开流程设计器,创建或打开测试流程。在流程必须检索呼叫者信息的位置添加 BRE 请求 活动,并将该活动连接到相应的流程路径。

将ANI标准化

如果上传的密钥缺少 +1 国家代码前缀,则创建一个预处理表达式,将其从 ANI 中删除:

ANI.replace("+1", "")

使用归一化值作为查找键。仅当存储的值不包含方括号 +1时才应用此转换。 ; 请求值和上传的密钥必须使用相同的格式。

配置 BRE 请求

请使用以下值配置活动:

  • 语境: ANILookup
  • 请求属性: ani
  • 请求值: 标准化ANI
  • 超时: 5秒
  • 重试次数: 3
  • 响应属性: customerType

将响应映射到字符串流变量。上下文选择数据集,而 ani 提供单个记录键。

处理多字段响应

如果 BRE 返回 VIP Customer|John Smith|Premium Queue|Toronto,则使用转义管道分隔符 (\|) 分割字符串。结果元素包含客户类型、客户姓名、队列和位置。将所需元素分配给不同的流量变量。该演示提取了最后一个元素, Toronto

配置屏幕弹出

添加或配置代理桌面屏幕弹出活动。将提取的客户信息映射到所需的屏幕弹出字段,将流程连接到队列或代理路由路径,然后保存并发布流程。

测试演示

使用已上传数据集中的 ANI 发起呼叫。确认流程规范化了 ANI,BRE 请求遵循其成功路径,并且提取的信息出现在代理桌面中。使用数据集中不存在的 ANI 重复测试,并确认未找到的路径返回配置的回退值。

这篇文章对您有帮助吗?
这篇文章对您有帮助吗?