- 主页
- /
- 文章
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 DataSync 实例。管理员可以创建数据集或上传 CSV 文件。数据被转换为BRE存储库中的记录。
准备工作
请联系思科客户服务客户经理以获取 BRE DataSync 帐户的访问权限。
BRE DataSync 目前仅对 完全管理员 角色启用。拥有完整管理员角色的租户可以使用 CSV 文件上传或键值对上传数据。拥有此角色的用户只能上传其所在组织的特定数据。
合作伙伴管理员、外部管理员、代理和主管无权访问 BRE DataSync 实用程序。
| 1 |
以管理员身份登录 BRE DataSync 实用程序。 为了配合 BRE Hosting 和 Scalability 的最新改进,DataSync 实用程序的 URL 已更改。请务必使用更新后的URL将数据上传到BRE。 各区域对应的 BRE DataSync URL 为: https://bre-datasync.produs1.ciscoccservice.com/datasync/ https://bre-datasync.prodeu1.ciscoccservice.com/datasync/ https://bre-datasync.prodeu2.ciscoccservice.com/datasync/ https://bre-datasync.prodanz1.ciscoccservice.com/datasync/ https://bre-datasync.prodca1.ciscoccservice.com/datasync/ https://bre-datasync.prodjp1.ciscoccservice.com/datasync/ https://bre-datasync.prodsg1.ciscoccservice.com/datasync/
点击以下网址即可导航至 使用通用身份登录 页面。对于美国地区,请选择 美国集群 (而不是 美国第二集群)以继续。 各区域 BRE 管理界面网址如下: https://bre.produs1.ciscoccservice.com/bre/ https://bre.prodeu1.ciscoccservice.com/bre/ https://bre.prodeu2.ciscoccservice.com/bre/ https://bre.prodanz1.ciscoccservice.com/bre/ https://bre.prodca1.ciscoccservice.com/bre/ |
| 2 |
选择 BRE 数据列表 以查看与租户组织相关的所有信息。 |
| 3 |
将数据以键值对的形式添加到 BRE 存储库: 选择 添加 BRE 数据 |
| 4 |
将 CSV 文件上传到 BRE 存储库: 选择 上传 BRE CSV 数据 。 |
访问 BRE 应用程序
您可以从 Webex 联系中心管理门户访问业务规则引擎应用程序。
- 登录 Webex 联系中心管理门户。
- 点击 业务规则 打开业务规则引擎仪表板。
BRE 使用身份服务和单点登录交互。如果您已经通过 Common Identity 登录,则无需再次登录即可访问您组织的 BRE 实用程序。
系统会在新的浏览器标签页中打开业务规则引擎(BRE)应用程序。仪表盘页面以图形方式显示规则数量和执行次数。
创建一套规则

访问 BRE 门户并按照以下说明配置属性、标签、上下文和规则。
| 1 |
要创建与您的组织关联的属性: |
| 2 |
标签能为数据赋予意义。要创建一个 标签: |
| 3 |
点击 上下文 导航至 上下文 页面。点击 +Add 语境。 |
| 4 |
要创建规则,请导航至 上下文 页面。点击 +Add 规则编辑器 并配置以下详细信息:
创建两条规则:一个用于系统找到匹配项的情况,另一个用于系统未找到匹配项的情况。 以下示例代码返回属性 routeInfo] 的值 NotFound 。如果呼叫者拨打的号码(ANI)与上传到 BRE 数据库的租户列表中的 ANI 不匹配,则会发生这种情况。复制以下规则并粘贴到 规则编辑器中 : |
| 5 |
单击保存。 |
BRE 请求
使用 BRE 请求活动从组织的业务规则引擎 (BRE) 中检索数据,以便在流程中使用。BRE 请求活动使用标准 HTTP 协议从 BRE 获取数据。
以下各部分可用于配置 BRE 请求活动:
常规设置
|
参数 |
描述 |
|---|---|
|
活动标签 |
请输入活动名称。 |
|
活动描述 |
(可选)请输入活动描述。 |
查询参数
作为 BRE 请求的一部分,您可以将 API 调用中提供的参数传递给 BRE。在“键值”列中,您可以输入查询的键以及要随查询一起发送的关联值。您还可以使用双花括号语法来传递变量值。
BRE 活动有一个预定义的查询参数:context. 该查询参数通过 API 调用传递给 BRE。
TenantID 会自动作为参数注入,无需配置。
|
参数 |
描述 |
|---|---|
|
上下文 |
包含请求原因。此必填参数无法编辑或删除。 此参数必须包含与 BRE 中属性 |
|
ANI |
包含呼叫发起方的电话号码。这是一个默认参数,您可以根据 BRE 中的规则配置对其进行编辑或删除。 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 请求。
常见问题解答
- 方括号
attribute的作用是什么?Attributes对于将传入的 BRE 查找请求与 BRE 中定义的特定规则集关联起来,以及存储规则评估结果,它们至关重要。 - 如何创建
attributes?在
attributes配置 。例如,您可以创建一个名为context的属性。 - 的用途是什么?
contextContext定义 BRE 应用的具体场景或查找类型。当流程调用 BRE 请求活动时,它需要告诉 BRE 要评估哪一组规则。一个属性(通常命名为Context)被设置为特定域的名称。 - 什么是
domain?domain是 BRE 中包含相关数据的表。域名引导 BRE 找到正确的数据及其对应的规则集。 - 什么是
label?BRE 评估其规则后,必须将结果传达回呼叫系统(例如,包含 BRE 请求活动的 Webex 联系中心流程)。规则通过配置,根据其条件设置指定标签属性的值。
- 属性、上下文和标签之间是什么关系?
例如,您可以创建一个名为
Attribute的context。您可以将此属性与domain(实际表,例如 ANILookup)关联。调用 BRE 请求活动时,流程会设置此属性的值(即domain)。 = 使用 ANILookup 指定上下文(要使用哪个域的规则)。在方括号
domain内,使用 Drools 语法编写规则来评估条件并设置另一个方括号attribute的值,该方括号通常称为label(例如,label)。 = "MatchFound")。这表示规则的结果,作为流程的响应返回。 -
属性、上下文和标签与请求的查询参数之间有何关系?
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 配置和流程必须使用相同的区分大小写的值。
添加测试记录:
- 打开 添加数据。
- 选择租户和
ANILookup。 - 请输入ANI及其对应值。
- 提交记录。
要加载完整数据集,请打开 上传 BRE,选择租户和查找类型,然后上传 CSV 文件。打开 BRE 数据列表 并确认记录是否出现。确保 CSV 文件中的 ANI 格式与流程发送的格式一致。
启动业务规则
登录 Webex 联系中心管理门户,打开 业务规则,然后启动 BRE 仪表板:
创建上下文属性:
- 导航至
- 添加一个属性,并赋予以下值:
- 姓名:
context - 数据类型: 文本
- 姓名:
- 保存结果属性。
context属性标识规则查询的已上传查找数据集。 - 添加一个表示返回数据的文本属性。即使返回值包含多个以竖线分隔的字段,也要给属性赋予一个有意义的名称。保存该属性。在这个例子中,
customerType用作示例。 - 打开 上下文 并添加上下文。输入生成的数据同步上下文名称,例如
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 重复测试,并确认未找到的路径返回配置的回退值。