この記事の内容
はじめに
dropdown icon
ビジネスルールエンジンの実装
    dropdown icon
    始める前に
      BREデータ同期インスタンスを設定してください
    BREアプリケーションへのアクセス
    ルールセットの作成
    dropdown icon
    BREリクエスト
      一般設定
      クエリパラメータ
      解析設定
      復号化設定
      出力変数
    BREリクエストアクティビティを含むフローの作成
    よく寄せられる質問
Webex コンタクトセンタービジネスルールエンジンユーザーガイド
list-menuこの記事の内容
list-menuフィードバックがある場合

Webex コンタクトセンターのビジネスルールエンジン(BRE)を使用すると、お客様はアップロードできます システムが実行時にルーティングを決定するためにアクセスできる特定のデータ、または コールエージェントに情報を表示します。

紹介

Cisco© Business Rules Engineは、Webex Contact Center内での迅速なデータ検索を支援するアプリケーションです。Cisco© Business Rules Engine (BRE) を使用すると、データ検索、カスタムルーティング、および一般的な実装を実行できます。システムは実行時にデータを取得し、ルーティングの決定やエージェントへの情報表示に使用します。

例えば、テナントは、ダイヤルされた自動番号識別(ANI)に基づいて、特定のエージェントグループに電話をルーティングしたいと考えている。この場合、テナントはANIのリストをアップロードするだけで済みます。着信のANIがそのリストに含まれている場合、システムはその通話を指定されたエージェントグループにルーティングします。ANIがリストにない場合、システムは通話を一般キューにルーティングします。

一般的なBREの実装には、以下の主要コンポーネントが含まれます。

  • BREデータ同期: BRE DataSync構成ユーティリティは、BREデータベースにデータをインポートするためのデータ同期インスタンスを定義するためのインターフェースを提供します。テナントがデータ同期インスタンスを定義した後、CSVファイルをアップロードできます。システムは、アップロードされたカンマ区切り値データをBREデータベース内のレコードに変換します。

  • ビジネスルールエンジン: ビジネスルールエンジンユーティリティは、ドメインとルールセットを作成するためのインターフェースを提供します。BREでは、受信した決定要求が ドメインに関連付けられている必要があります。そのドメインには一連のルールが含まれている。各ルールには優先順位が割り当てられています。BREは、ルール内の条件に基づいて、ドメイン内で最も優先度の高いルールを決定要求と照合しようとします。

  • フローデザイナー: Webex Contact Centerのコンポーネントを連携および自動化するフローを定義するために使用される、ドラッグ&ドロップ式のユーザーインターフェース。HTTPリクエストアクティビティと同様に、BREアクティビティを呼び出して簡単なデータ検索を実行するフローを作成できます。しかし、この場合、データはWebexコンタクトセンター内に存在します。

データ処理ガイドライン

BREの完全性とセキュリティを維持するために、以下のデータ取り扱いガイドラインを遵守する必要があります。

  • 許容されるデータ型: BREの運用と機能に不可欠なデータをアップロードしてください。これには、業務ルール、構成、機密性の低い運用データなどが含まれますが、これらに限定されません。

  • 個人情報に関する制限: ANIデータを除き、個人を特定できる情報(PII)をBREにアップロードしないでください。個人情報には、以下が含まれますが、これらに限定されません。

    • 氏名
    • 社会保障番号
    • メール アドレス
    • 物理的な住所
    • 財務情報

ANIデータとは、発信者に関連付けられた電話番号のことです。ANIデータは、BREへのアップロードが許可されている唯一の種類の個人情報です。この例外措置は、ANIデータに依存する特定の業務機能をサポートするためのものです。

ビジネスルールエンジンの実装

ビジネスルールエンジンは、エントリポイントに関連付けられたフローによって呼び出されるリアルタイムルールエンジンで構成されています。このルールエンジンは通常、データリポジトリを参照して、必要な呼び出し処理を評価します。

BREルックアップは、HTTPリクエストのように、フロー内でデータを取得するシンプルな操作です。ただし、BRE検索用のデータはCisco Webex Contact Centerデータセンター内に存在します。以下の図は、BREデータ検索に関わる様々なプロセスを示しています。

開始する前に

BREを導入する前に:

  • データモデルを明確に理解した上で、BRE DataSyncインスタンスを実装に合わせて構成してください。
  • このガイド全体を通して使用されている以下の用語に慣れてください。
    • Attribute: attribute は、BREユーティリティ内で作成された名前付き変数またはデータフィールドです。これは、BREがリクエストを処理し、出力を生成するために使用する情報を格納するコンテナとして機能します。
    • Context: context は主に、BRE リクエスト アクティビティのターゲット ドメインを指定する属性の例として使用されます。
    • Label: Label は、ルールの評価結果または出力を保持するように設計された特定の属性タイプです。

詳細については、 FAQ セクションをご覧ください。

BRE DataSyncインスタンスの設定

BRE DataSyncユーティリティは、ルーティングの決定を行うためにデータベースにアクセスします。定期的にデータベースを適切な情報で更新するようにしてください。このセクションでは、BREリポジトリを更新するためにBRE DataSyncユーティリティを設定する方法について説明します。

BRE DataSyncユーティリティがBREリポジトリを更新するようにどのように構成されているかを示す図。BREデータ同期 > CRUD > BREリポジトリ。
BRE DataSyncユーティリティ

テナント管理者は、ルールエンジンが意思決定プロセス中に参照するすべてのデータセットに対して、BRE DataSyncインスタンスを作成する必要があります。管理者はデータセットを作成するか、CSVファイルをアップロードすることができます。データはBREリポジトリ内のレコードに変換されます。

開始する前に

BRE DataSyncアカウントへのアクセス権を取得するには、シスコカスタマーサービスのアカウントマネージャーにお問い合わせください。

BRE DataSyncは現在、 フル管理者 ロールでのみ有効になっています。フル管理者権限を持つテナントは、CSVファイルアップロードまたはキーと値のペアを使用してデータをアップロードできます。この役割を持つユーザーは、所属組織固有のデータのみをアップロードできます。

パートナー管理者、外部管理者、エージェント、およびスーパーバイザーは、BRE DataSyncユーティリティにアクセスできません。

1

管理者として、BRE DataSyncユーティリティにログインしてください。

BREホスティングおよびスケーラビリティの最近の機能強化に伴い、DataSyncユーティリティのURLが変更されました。BREにデータをアップロードする際は、必ず更新されたURLを使用してください。

2

テナント組織に関連するすべての情報を表示するには、 BREデータリスト を選択してください。

3

BREリポジトリにキーと値のペアとしてデータを追加する: BREデータを追加を選択してください

  1. TenantName ドロップダウンリストから組織名を選択してください。

  2. ドロップダウンリストから BRE検索タイプ を選択してください。

    BREルックアップタイプを追加する際のサイズ制限については、以下を参照してください。

    • BRE検索タイプの最大文字数制限:VARCHAR(200)
    • 値フィールドの最大文字数制限: VARCHAR(500)
    • 組織ごとのルックアップタイプの最大数:100
    • ルックアップタイプごとの最大行数:10万行
    • アップロード可能な最大ファイルサイズ制限:10MB

    新しい検索タイプを追加するには、シスコのカスタマーサクセスマネージャーまたはソリューションアシュアランス担当者にお問い合わせください。

  3. データの追加 をクリックして、 キー と 値を入力します。

  4. (オプション) 削除 をクリックして、既存の キー と 値を削除します。

  5. [送信] をクリックします。

4

BREリポジトリにCSVファイルをアップロードするには: BRE CSVデータをアップロード を選択してください。

  1. TenantName ドロップダウンリストから組織名を選択してください。

  2. ドロップダウンリストから BRE検索タイプ を選択してください。

  3. アップロード を選択して、CSVファイルを参照してアップロードしてください。

  4. [送信] をクリックします。

    BRE CSVデータアップロード用のサンプルCSVファイル。列ヘッダーは「ANI」、「拡張子」、「アクション」です。
    データを含むサンプルCSVファイル
    「削除」「更新」「追加」の操作では、大文字と小文字は区別されません。構文 725160001,,Delete を使用してデータを削除することもできます。

BREアプリケーションへのアクセス

Webex Contact Centerの管理ポータルから、ビジネスルールエンジンアプリケーションにアクセスできます。

  1. Webex Contact Centerの管理ポータルにサインインしてください。
  2. ビジネスルール をクリックして、ビジネスルールエンジンのダッシュボードを開きます。

    BREはIDサービスとシングルサインオン(SSO)を利用しています。既に共通IDでサインインしている場合は、再度サインインすることなく、組織向けの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から降順で割り当てることをお勧めします。
  • ルールエディタ (以下のスクリーンショットに示すように、コードを入力するためのツール):ルールのコードを入力してください。

2つのルールを作成する:システムが一致するものを見つけた場合と、システムが一致するものを見つけなかった場合の2つです。

次のサンプルコードは、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アクティビティには、1つの事前定義されたクエリパラメータがあります。context. このクエリパラメータは、BREへのAPI呼び出しで渡されます。

TenantID はパラメータとして自動的に挿入されるため、設定する必要はありません。

表1. クエリ パラメータ

パラメーター

説明

コンテキスト

リクエストの理由が含まれています。この必須パラメータは編集または削除できません。

このパラメータには、BRE の属性 context で指定された値と同じ値が含まれている必要があります。詳細については、 Cisco Webex Contact Center Business Rules Engine ユーザーガイドの [] ルールセットの作成 セクションを参照してください。

ANI

通話の発信元電話番号が含まれています。これは、BREのルール設定に基づいて編集または削除できるデフォルトパラメータです。

ANIのサンプル値は {{NewContact.ANI}}

応答タイムアウト

BREリクエストの接続タイムアウトを指定します。デフォルト値は2000ミリ秒です。

再試行回数

BREリクエストが失敗した場合に、再試行する回数を指定します。

このパラメータは、ステータスコードが 5xxの場合に使用されます。 ; 例えば、500または501。

クエリパラメータを追加するには、 新規追加をクリックします。これにより、キーと値のペアを入力できる行が追加されます。BREリクエストの一部として、必要な数のクエリパラメータを追加できます。

解析設定

このセクションでは、BREリクエストからの応答を解析して、さまざまな変数に格納することができます。

パラメーター

説明

応答変数

BREリクエスト応答オブジェクトから特定のセクションを抽出する変数を選択してください。ドロップダウンリストからは、カスタムフロー変数のみを選択できます。

パス式

レスポンスオブジェクトを解析するためのパス式を定義します。応答オブジェクトのデータ構造の種類と、その情報の一部を抽出するユースケースに応じて、パス式は異なります。

データはパス式の実行前にオブジェクト階層に正規化されるため、設定されたコンテンツタイプに関係なく、レスポンスオブジェクトではJSONPathが使用されます。

復号設定

BREリクエストアクティビティの出力変数を復号化できます。フローレベルで復号化が有効になっている場合、デバッグ復号化アクセス権を持つユーザーは、フローのデバッグログでBREリクエストアクティビティのマスクされていない出力値を表示できます。追加の保護のために、アクティビティレベルでの復号化を無効にするには、 復号化を有効にする トグルをオフにしてください。

出力変数

BREリクエストは2つの出力変数を返します。

  • 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パス式の例:値を Janiとして取得するには [ $.note.from を使用します。

コンテンツタイプ 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パス式の例:値を ‘Tom Preston-Werner’として取得するには [ $.owner.name を使用します。

コンテンツタイプ 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パス式の例:値を取得するには Developer$.martin.job を使用します。

コンテンツタイプ 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パス式の例:値を取得するには Developer$.martin.job を使用します。

BREリクエストアクティビティを使用したフローの作成

Webex Contact Centerで利用できるフローデザイナーインターフェースを使用して、フローを作成できます。Webex Contact Center Flow Designer で 、 BRE Request アクティビティを含むフローを作成します。

フローの設定に関する詳細については、 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. 属性、コンテキスト、ラベルの関係性は何ですか?

    例えば、 Attributeという名前の contextを作成できます。この属性を domain (ANILookupのような実際のテーブル)に関連付けることができます。BREリクエストアクティビティを呼び出すと、フローはこの属性の値を設定します(つまり、 domain = ANILookup) を使用してコンテキスト (どのドメインのルールを使用するか) を指定します。

    その domain内には、条件を評価し、別の attributeの値を設定するためのルールが Drools 構文で記述されています。これはしばしば label と呼ばれます (たとえば、 label = 「マッチが見つかりました」これは、ルールの実行結果を表し、フローへの応答として返されます。

  7. 属性、コンテキスト、ラベルは、リクエストのクエリパラメータとどのように関連していますか?

    BREは、フローによって呼び出され、通常はハードコードされた内部URLへのAPI呼び出し(BREリクエストアクティビティ)を介して実行されます。これは、CSV形式でアップロードされたBRE値を検索できるREST APIです。 (key/value ペア)。BREが意思決定を行うために必要なデータは、通常のREST API呼び出しにおけるクエリパラメータやリクエストボディと同様に、このリクエストの一部として渡されます。

    • Input Data: 着信通話からの情報(発信者のANI、アカウント番号、その他同様のデータなど)は、Webex Contact Centerの通話フローにおいて、通話関連データ(CAD)変数として取得されます。
    • BRE Configuration Data: コンテキストやドメインを指定する属性(例:ドメイン)などのその他の必要なパラメータ = ANILookup) も、Flow の BRE Request ノードの変数として設定されます。
    • Request Variables: フローのBREリクエストステップでは、CAD変数と設定済み変数がBREリクエスト構成の変数として選択されます。これらの変数は、BREの実行バックエンドエンジンに送信されます。
    • Function: 基本的に、「リクエスト変数」はBREの「クエリパラメータ」または入力ペイロードとして機能します。BREはこれらの入力値を用いて、規則で定められた条件を評価する。

ビジネスルールエンジンを使用してANIベースの顧客データ検索を設定する

このサンプルワークフローでは、ビジネスルールエンジン(BRE)を使用して、発信者の自動番号識別(ANI)から顧客データを検索し、返されたデータをWebexコンタクトセンターフローで処理し、選択した情報をエージェントのデスクトップに表示します。手順は以下のとおりです。

検索データを準備する

一意の検索キーとその関連データを含むCSVファイルを作成します。このワークフローでは、呼び出し元のANIが検索キーとして使用されます。値列に1つ以上の顧客フィールドを保存します。複数のフィールドはパイプ記号(|)で区切ります。

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. 記録を提出してください。

データセット全体を読み込むには、 Upload BREを開き、テナントと検索タイプを選択して、CSV ファイルをアップロードします。 BREデータリスト を開き、レコードが表示されていることを確認してください。CSVファイル内のANI形式が、フローから送信される形式と一致していることを確認してください。

ビジネスルールの導入

Webex Contact Center管理ポータルにサインインし、 ビジネスルールを開いて、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 Request アクティビティを追加し、そのアクティビティを適切なフローパスに接続します。

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を使用してテストを繰り返し、見つからないパスが設定されたフォールバック値を返すことを確認してください。

はじめに

シスコビジネスルールエンジンは、 Webex コンタクトセンター内での迅速なデータ検索に役立つアプリケーションです。 シスコビジネスルールエンジン(BRE)を使用すると、 データ検索、カスタムルーティング、一般的な実装を行うことができます。 システムは実行時にデータを取得し、それを使用してルーティングの決定やエージェントへの情報の表示を行います。

たとえば、あるテナントが、 ダイヤルされた自動番号識別(ANI)に基づいて、特定のエージェントグループにコールをルーティングしたいとします。 このシナリオでは、 テナントはANIのリストをアップロードするだけです。 着信通話のANIがそのリストにある場合、 システムは通話を指定されたエージェントグループにルーティングします。 ANIがリストにない場合、 システムは通話をジェネラルキューにルーティングします。

一般的なBREの実装には、次の主要コンポーネントが含まれます。

  • BREデータ同期:BREデータ同期設定ユーティリティは、 BREデータベースにデータをインポートするためのデータ同期インスタンスを定義するためのインターフェースを提供します。 テナントがデータ同期インスタンスを定義したら、テナントはCSVファイルをアップロードできます。 システムは、アップロードされたカンマ区切り値のデータをBREデータベースのレコードに変換します。

  • ビジネスルールエンジン:ビジネスルールエンジンユーティリティは、 ドメインとルールセットを作成するためのインターフェイスを提供します。 BREでは、 受信した決定リクエストをドメインに関連付ける必要があります。 ドメインには一連のルールが含まれています。 各ルールには優先順位が割り当てられています。 BREは、 ルールの条件に基づいて、 ドメインの最も優先度の高いルールを決定リクエストと一致させようとします。

  • フローデザイナー:Webex Contact Center のコンポーネントを調整および自動化するフローを定義するために使用されるドラッグアンドドロップユーザーインターフェイスです。 BREアクティビティを呼び出して、 HTTPリクエストアクティビティと同様の簡単なデータ検索を実行するフローを作成できます。 ただし、この場合、データは Webex コンタクトセンター内にあります。

データ処理ガイドライン

BREの完全性とセキュリティを維持するには、 次のデータ処理ガイドラインに従う必要があります。

  • 許容されるデータタイプ: BREの運用と機能に不可欠なデータをアップロードしてください。 これには、 ビジネスルール、構成、機密ではない運用データが含まれますが、これらに限定されません。

  • PIIの制限:ANIデータ以外の個人を特定できる情報 (PII)をBREにアップロードしないでください。 PIIには以下が含まれますが、 これらに限定されません:

    • フルネーム
    • 社会保障番号
    • メールアドレス
    • 物理アドレス
    • 財務情報

ANIデータとは、発信側の電話番号を指します。 ANIデータは、BREへのアップロードが許可されている唯一のPIIタイプです。 この例外は、ANIデータに依存する特定のビジネス機能をサポートするためです。

ビジネスルールエンジンの実装

ビジネスルールエンジンは、 エントリポイントに関連付けられたフローによって呼び出されるリアルタイムのルールエンジンで構成されています。 このルールエンジンは通常、 データリポジトリと相談して、希望する通話処理を評価します。

BREルックアップは、HTTPリクエストのように、フロー内の単純なデータディップです。 ただし、 Cisco Webex Contact Center BREルックアップのデータはデータセンター内にあります。 次の画像は、BREデータ検索に含まれるさまざまなプロセスを示しています。

始める前に

BREを実装する前に:

  • データモデルを明確に理解した上で、ご使用の実装に合わせてBRE DataSyncインスタンスを構成してください。
  • このガイドで使われている次の用語をよく理解してください。
    • 属性:属性は、 BREユーティリティ内で作成された名前付きの変数またはデータフィールドです。 これは 、 BREが要求を処理して出力を生成するために使用する情報のコンテナとして機能します。
    • コンテキスト:コンテキストは主に、 BREリクエストアクティビティの対象ドメインを指定する属性の名前の例として使用されます。
    • ラベル:ラベルは、 ルール評価の出力または結果を保持するように設計された特定の種類の属性です。

詳細については、よくある質問のセクションを参照してください。

BREデータ同期インスタンスを設定してください

BRE DataSyncユーティリティは、データベースにアクセスしてルーティングを決定します。 適切な情報でデータベースを定期的に更新してください。 このセクションでは、BREリポジトリを更新するようにBRE DataSyncユーティリティを設定する方法について説明します。

Diagram for how the BRE DataySync utility is configured to update the BRE repository. BRE DataSync > CRUD > BRE Repository.
BREデータ同期ユーティリティ

テナント管理者は、 ルールエンジンが意思決定プロセス中に参照するすべてのデータセットに対してBRE DataSyncインスタンスを作成する必要があります。 管理者はデータセットを作成するか、CSVファイルをアップロードできます。 データはBREリポジトリのレコードに変換されます。

始める前に

BREDataSyncアカウントにアクセスするには 、Ciscoカスタマーサービスのアカウントマネージャーに連絡してください。

BRE DataSyncは現在、フル管理者ロールでのみ有効です。 フル管理者ロールを持つテナントは、 CSVファイルのアップロードまたはキーと値のペアを使用してデータをアップロードできます。 この役割を持つユーザーは、 組織固有のデータのみをアップロードできます。

パートナー管理者、外部管理者、エージェント、スーパーバイザーは、BRE DataSyncユーティリティにアクセスできません。

1

管理者として、BRE DataSyncユーティリティにログインします。

BREのホスティングとスケーラビリティの最近の強化に合わせて、DataSyncユーティリティのURLが変更されました。 BREにデータをアップロードするには、 必ず更新したURLを使用してください。

地域固有のBREデータ同期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.prodca1.ciscoccservice.com/datasync/

https://bre-datasync.prodjp1.ciscoccservice.com/datasync/

https://bre-datasync.prodsg1.ciscoccservice.com/datasync/

URLをクリックして、「 共通IDでログイン」ページに移動します。 米国地域では、 先に進むには米国のクラスター( 米国のセカンドクラスターではない)を選択してください。

ANZ地域には、特定のURLはありません。 ログインするには、 自宅のCIクラスターを選択してください。 ほとんどのユーザーにとって、 米国と米国のセカンドクラスターリンクは機能します。

地域固有のBRE管理UIのURLは次のとおりです。

https://bre.produs1.ciscoccservice.com/bre/

https://bre.prodeu1.ciscoccservice.com/bre/

https://bre.prodeu2.ciscoccservice.com/bre/

https://bre.prodca1.ciscoccservice.com/bre/

https://bre.prodjp1.ciscoccservice.com/bre/

https://bre.prodsg1.ciscoccservice.com/bre/

2

テナント組織に関連するすべての情報を表示するには、BREデータリストを選択してください。

3

データをキーと値のペアとしてBREリポジトリに追加するには:「 BREデータを追加」を選択します

  1. TenantNameドロップダウンリストから組織名を選択します。

  2. ドロップダウンリストからBRE検索タイプを選択します。

    BREルックアップタイプを追加するには、次のサイズ制限を参照してください。

    • BREルックアップタイプの最大文字数制限: VARCHAR(200)
    • 値フィールドの最大文字数制限: VARCHAR (500)
    • 組織ごとの検索タイプの最大数:100
    • ルックアップタイプごとの最大行数:10万行
    • アップロードするファイルの最大サイズ制限:10 MB

    新しい検索タイプを追加するには、 シスコカスタマーサクセスマネージャーまたはソリューションアシュアランス担当者にお問い合わせください。

  3. [データを追加] をクリックして、 キーと値を入力します。

  4. (オプション) 既存のキーと値を削除するには、[削除] をクリックします。

  5. [送信] をクリックします。

4

CSVファイルをBREリポジトリにアップロードするには:「 BREのCSVデータをアップロード」を選択します。

  1. TenantNameドロップダウンリストから組織名を選択します。

  2. ドロップダウンリストからBRE検索タイプを選択します。

  3. アップロードを選択して、 CSVファイルを閲覧してアップロードします。

  4. [送信] をクリックします。

    Sample CSV file for the BRE CSV data upload. Column headers are 'ANI', 'Extension', and 'Action'.
    データを含むCSVファイルのサンプル
    削除、更新、追加アクションでは大文字と小文字は区別されません。 725160001,, Deleteという構文を使ってデータを削除することもできます。

BREアプリケーションへのアクセス

ビジネスルールエンジンアプリケーションには、Webex コンタクトセンターからアクセスできます。

  1. コントロールハブにサインインしてください。
  2. サービス > コンタクトセンターに移動します。
  3. 右側のペインの「クイックリンク」セクションで、「 ビジネスルールエンジン」をクリックします。

    BREはIDサービスとシングルサインオンインタラクションを使用します。 テナントが既にControl Hubにサインインしている場合は、 自動的に組織のBREユーティリティにアクセスできます。

システムはビジネスルールエンジン(BRE)アプリケーションを新しいブラウザタブで開き、自動的にアプリケーションにサインインします。 ダッシュボードページには、 ルール数と実行回数がグラフィカルに表示されます。BRE Dashboard

ルールセットの作成

Diagram of the Business Rule Engine utility being invoked by a flow in Webex Contact Center. Flow control in Webex Contact Center Flow Designer > Lookup Request > Cisco BRE > Read > BRE Repository.

BREポータルにアクセスし、 下記の説明に従って、属性、ラベル、コンテキスト、ルールを設定します。

1

属性を作成するには(組織に関連付けるため):

  1. 属性を選んでください。 属性ページで「 追加」をクリックします。

  2. 名前フィールドに、 コンテキストを入力します。

  3. ドロップダウンリストから「データタイプ」として「テキスト」を選択します。

    BREユーティリティでは、データ型はテキストでなければなりません。

  4. [保存] をクリックします。

2

ラベルはデータに意味を追加します。 ラベルを作成するには:

  1. ラベルを選択し、ラベルページで「 追加」をクリックします。

  2. 名前フィールドにラベルの名前を入力します。

  3. [保存] をクリックします。

3

「コンテキスト」をクリックして「 コンテキスト」ページに移動します。 [ +コンテキストを追加] をクリックします。

  1. 生成されたコンテキストの名前をBREデータリストに入力してください。

  2. オプションで説明を入力してください。

  3. 複数の属性が作成されている場合は、 このコンテキストに関連付ける属性を「属性」 ドロップダウンリストから選択します。

  4. [保存] をクリックします。

4

ルールを作成するには、コンテキストページに移動してください。 [ +ルールエディターを追加] をクリックして、 次の詳細を設定します。

  • 名前:ルールの名前を入力してください。
  • 説明: ルールの説明 (任意)。
  • 有効:チェックボックスをチェックして、 ルールが有効であることを指定します。
  • ラベル: ドロップダウンリストから必要なラベルを選択してください。
  • 優先順位:スライダーをドラッグして、 ルールに優先順位を割り当てます。 システムは、割り当てられた優先度に基づいて、 最高(100)から最低まで、ルールを実行します。 優先順位は100から降順で割り当て始めることをお勧めします。
  • ルールエディター( 下のスクリーンショットのように、コードを入力するツール):ルールのコードを入力します。

2つのルールを作成してください。1つはシステムが一致するものを見つけた場合、 もう1つはシステムが一致するものを見つけられない場合です。

次のコード例は、 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 page with an example code returns value for ANIFound for attribute routeinfo.

次のコード例は、 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 page with an example code returns value for ANINotFound for attribute routeinfo.
5

[保存] をクリックします。

BREリクエスト

BREリクエストアクティビティを使用して、 フローで使用するデータを組織のビジネスルールエンジン(BRE)から取得します。 BREリクエストアクティビティは、 標準のHTTPプロトコルを使用してBREからデータを取得します。

次のセクションでは、BREリクエストアクティビティを設定できます。

一般設定

パラメーター

説明

アクティビティラベル

アクティビティの名前を入力してください。

アクティビティの説明

(オプション)アクティビティの説明を入力します。

クエリパラメータ

BREリクエストの一部として、API呼び出しで提供されたパラメータをBREに渡すことができます。 Key‐Value列には、 クエリのキーと、クエリと一緒に送信する関連値を入力できます。 また、 二重中括弧の構文を使って変数値を渡すこともできます。

BREアクティビティには、コンテキストというクエリパラメータがあらかじめ定義されています。 このクエリパラメータは、 BREへのAPI呼び出しで渡されます。

TenantiIDはパラメータとして自動的に挿入され、設定する必要はありません。

テーブル 1.クエリパラメーター

パラメーター

説明

コンテキスト

リクエストの理由が含まれています。 この必須パラメータは編集も削除もできません。

このパラメータには、BREの属性コンテキストで指定された値と同じ値が含まれている必要があります。 詳細については、『Cisco Webex Contact Centerビジネスルールエンジンユーザーガイド』の「ルールセットの作成」セクションを参照してください。

ANI

通話の発信元の電話番号が含まれています。 これはBREのルール設定に基づいて編集または削除できるデフォルトのパラメータです。

ANIのサンプル値は {{newContact.ani}} です

応答タイムアウト

BREリクエストの接続タイムアウトを指定します。 デフォルトは2000ミリ秒に設定されています。

リトライ回数

失敗後にBREリクエストを試行する回数を指定します。

このパラメータは、ステータスコードが5xxの場合に使用されます。たとえば、500や501です。

クエリパラメータを追加するには、「新規追加」をクリックします。 これにより、 キーと値のペアを入力できる行が追加されます。 BREリクエストの一部として、必要なだけクエリパラメータを追加できます。

解析設定

このセクションでは、BREリクエストからの応答をさまざまな変数に解析できます。

パラメーター

説明

応答変数

BREリクエスト・レスポンス・オブジェクトから特定のセクションを抽出したい変数を選択してください。 ドロップダウンリストから選択できるのはカスタムフロー変数のみです。

パス表現

レスポンスオブジェクトを解析するためのパス式を定義してください。 レスポンスオブジェクトのデータ構造の種類と 、その情報のサブセットを抽出するユースケースによって、 パス式は異なります。

データはパスエクスプレッションが実行される前にオブジェクト階層に正規化されるため、設定されたコンテンツタイプに関係なく、 JSONPathが応答オブジェクトで使用されます。

復号化設定

BREリクエストアクティビティの出力変数を復号化できます。 フローレベルで復号化が有効になっている場合、デバッグ復号化にアクセスできるユーザーは、 フローデバッグログでBREリクエストアクティビティのマスクされていない出力値を確認できます。 保護を強化するために、 アクティビティレベルで復号化を無効にするには、[ 復号化を有効にする] トグルをオフにします。

出力変数

BREリクエストは2つの出力変数を返します。

  • 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入力フォーマット:

<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Test application</body>
</note>

データ/JSON正規化されたレスポンス

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

JSONパス式の例:Janiとして値を取得するには、$.note.fromを使用してください。

コンテンツタイプ: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

データ/JSON正規化されたレスポンス

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

JSONパス表現の例:$.owner.nameを使用して、値を「トム・プレストン・ワーナー」として取得します。

コンテンツタイプ:YAML

このツールを使ってYAMLをJSON形式に変換します https://www.convertjson.com/yaml-to-json.htm。

YAML入力フォーマット:

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

データ/JSON正規化されたレスポンス

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

JSONパス式の例:$.martin.jobを使用して、開発者という値を取得します。

コンテンツタイプ JSON

JSON エクスプレッションエバリュエーター https://jsonpath.com/ を使用してください。

JSON 入力フォーマット:

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

データ/JSON正規化されたレスポンス

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

JSONパス式の例:$.martin.jobを使用して、開発者という値を取得します。

BREリクエストアクティビティを含むフローの作成

Webex コンタクトセンターにあるフローデザイナーインターフェイスを使用してフローを作成できます。 Webex コンタクトセンターのフローデザイナーで BRE Request アクティビティを使用してフローを作成してください。

フローの設定の詳細については、BREリクエストを参照してください。

よく寄せられる質問

  1. 属性の目的は何ですか?

    属性は、 受信したBRE検索リクエストをBRE内で定義されている特定のルールセットにリンクし、 ルール評価の結果を保存するための基本です。

  2. 属性はどのように作成しますか?

    BREユーティリティの「プロビジョニング」>「属性」で属性を作成します 。 たとえば、 context という名前の属性を作成できます。

  3. コンテキストの目的は何ですか?

    コンテキストは、BREが適用する特定のシナリオまたは検索タイプを定義します。 フローがBREリクエストアクティビティを呼び出すとき、どのルールセットを評価するかをBREに伝える必要があります。 Contextという名前が付いていることが多い属性は、 特定のドメインの名前に設定されます。

  4. ドメインとは何ですか?

    ドメインは、 関連データを含むBRE内のテーブルです。 ドメイン名はBREを正しいデータとそれに対応するルールセットに導きます。

  5. ラベルとは何ですか?

    BREはルールを評価した後、その結果をコールシステム(たとえば、BREリクエストアクティビティを含むWebex Contact Centerフロー) に伝える必要があります。 ルールは、 指定されたラベル属性の値を、その条件に基づいて設定するように構成されています。

  6. 属性、コンテキスト、ラベルの関係は?

    たとえば、 名前付きコンテキストなどの属性を作成できます。 この属性はドメイン( AnILookupのような実際のテーブル) に関連付けることができます。 BREリクエストアクティビティを呼び出すと、 フローはこの属性の値(つまり、domain = anilookup)を設定して、コンテキスト( 使用するドメインのルール)を指定します。

    そのドメイン内では、 条件を評価して別の属性(ラベルと呼ばれることが多い) の値を設定するためのルールがDrools構文で書かれています( たとえば、label =「matchFound」)。 これは、フローへの応答として返されるルールの結果を表しています。

  7. 属性、コンテキスト、 ラベルはリクエストのクエリパラメータとどのように関連していますか?

    BREはフローによって、 通常はハードコードされた内部URLへのAPIコール(BREリクエストアクティビティ)を介して呼び出されます。 これは、 CSVでアップロードされたBRE値(キーと値のペア)を検索できるREST APIです。 BREが決定を下すために必要なデータは、クエリパラメータやリクエスト本文が通常のREST API呼び出しでどのように機能するかと同様に、 このリクエストの一部として渡されます。

    • 入力データ:着信からの情報( 発信者のANI、アカウント番号、その他の同様のデータなど)は、Webex コンタクトセンターのコールフローの通話関連データ(CAD)変数としてキャプチャされます。
    • BRE設定データ: コンテキストやドメインを指定する属性(domain = AniLookupなど)など、その他の必要なパラメータも、 フローのBREリクエストノードで変数として設定されます。
    • リクエスト変数:フローのBREリクエストステップでは、 CAD変数と設定された変数がBREリクエスト設定の変数として選択されます。 その後、これらの変数はBREの実行バックエンドエンジンに送信されます。
    • 機能:基本的に、「リクエスト変数」はBREの 「クエリパラメータ」または入力ペイロードとして機能します。 BREはこれらの入力値を使用して、 ルールで定義された条件を評価します。

この投稿記事は役に立ちましたか?
この投稿記事は役に立ちましたか?