[Amazon Connect]Contact Lens for Amazon ConnectでオペレーターがNGワードを発言した時に検知する仕組みを構築する
Contact Lens for Amazon Connectを利用してNGワードを検知する仕組みを構築する機会がありましたので紹介します。
Contact Lens for Amazon Connectとは
Contact Lens for Amazon Connectとは、Amazon Connectで通話した内容を書き起こししたり、感情分析ができるサービスになります。
2021/9に日本語対応しました。
今回はContact Lens for Amazon Connectの【ルール】機能を利用して、オペレーターがNGワードを発言した時の検知する仕組みを実装します。
実装のシナリオ
実装内容は下記です。
- オペレーター(以下OP)がお客さんにNGワード(今回は「ダメ」,「エヌジー」といった単語)を言った場合にスーパーバイザー(以下SV)がリアルタイムレポートで検知する
- リアルタイムレポートで対象のコールをクリックすると会話の要約がでてくる
- コールが終わりSVがCCPにログインしたら「タスク」として電話がなり、取ると対象のコールを見るURLが表示される
- NGワードを検知したルールをAmazon EventBridgeで検知してAmazon SNS経由でルール名をEmailに通知する
今回はリアルタイムで検証します。(リアルタイムだけでなく、通話後も設定可能です)
実装
Amazon Connectの設定
AWSマネジメントコンソールからAmazon Connectのページに飛んで、分析ツール→Contact Lensを有効にする
、をクリックします。
Amazon Connectコンソールに飛んで、セキュリティプロファイルを確認します。
利用するユーザーのセキュリティプロファイルの分析から、Contact Lens - 音声分析
とルール
で表示、編集、作成および削除が有効になっていることを確認します。
(Contact Lens - カスタム語彙は今回使わないため、チェックが入っていなくとも問題ございません)
NGワードのコールが終わった後にSVがタスクで内容を確認するため、キューを一つ作成します。
名前をSupervisorQueue
、説明でQueue for the supervisors to receive tasks
、オペレーション時間はBasic Hours
にして保存をクリックします。
SV用のルーティングプロファイルも作成しておきます。
名前はSupervisor Routing Profile
、説明はUsed for supervisors
、音声とタスクにチェックを入れて、キューは先ほど作成したSupervisorQueue
を設定します。
SVのユーザーを作成します。
セキュリティプロファイル、ルーティングプロファイルともに設定したプロファイルを選択します。
SVがタスクで受け取るコンタクトフローを構築します。
下記jsonをメモ帳等にコピーしてテキストファイルで保存します。
{ "modules": [ { "id": "b36dfa3d-e42e-4fcb-b2d0-fb84cab0cef1", "type": "Disconnect", "branches": [], "parameters": [], "metadata": { "position": { "x": 1113, "y": 91 } } }, { "id": "646452c8-483e-4a9f-86ee-962fd06fcfcc", "type": "SetLoggingBehavior", "branches": [ { "condition": "Success", "transition": "1a3c54b5-31e7-4d23-8a85-a1f6770817d9" } ], "parameters": [ { "name": "LoggingBehavior", "value": "Enable" } ], "metadata": { "position": { "x": 80, "y": 220 } } }, { "id": "6aa614d2-cfa1-4389-be30-5d26b17f2663", "type": "Transfer", "branches": [ { "condition": "AtCapacity", "transition": "b36dfa3d-e42e-4fcb-b2d0-fb84cab0cef1" }, { "condition": "Error", "transition": "696c76a6-6717-4933-bcba-df04f60ba341" } ], "parameters": [], "metadata": { "position": { "x": 759, "y": 12 }, "useDynamic": false, "queue": null }, "target": "Queue" }, { "id": "696c76a6-6717-4933-bcba-df04f60ba341", "type": "PlayPrompt", "branches": [ { "condition": "Success", "transition": "b36dfa3d-e42e-4fcb-b2d0-fb84cab0cef1" } ], "parameters": [ { "name": "Text", "value": "Sorry we are facing technical difficulties", "namespace": null }, { "name": "TextToSpeechType", "value": "text" } ], "metadata": { "position": { "x": 886, "y": 327 }, "useDynamic": false } }, { "id": "1a3c54b5-31e7-4d23-8a85-a1f6770817d9", "type": "Wait", "branches": [ { "condition": "Timeout", "transition": "11af20cb-4588-46a5-8dfb-328cb749be97" }, { "condition": "Error", "transition": "696c76a6-6717-4933-bcba-df04f60ba341" } ], "parameters": [ { "name": "TimeoutSeconds", "value": "30" } ], "metadata": { "position": { "x": 280, "y": 7 }, "useDynamic": false, "timeoutUnit": { "display": "Seconds", "value": "second" } } }, { "id": "11af20cb-4588-46a5-8dfb-328cb749be97", "type": "SetQueue", "branches": [ { "condition": "Success", "transition": "6aa614d2-cfa1-4389-be30-5d26b17f2663" }, { "condition": "Error", "transition": "696c76a6-6717-4933-bcba-df04f60ba341" } ], "parameters": [ { "name": "Queue", "value": "**** TEST_QUEUE ****", "namespace": null, "resourceName": "**** TEST_QUEUE ****" } ], "metadata": { "position": { "x": 522, "y": 14 }, "useDynamic": false, "queue": { "id": "**** TEST_QUEUE ****", "text": "**** TEST_QUEUE ****" } } } ], "version": "1", "type": "contactFlow", "start": "646452c8-483e-4a9f-86ee-962fd06fcfcc", "metadata": { "entryPointPosition": { "x": 20, "y": 20 }, "snapToGrid": false, "name": "Test_QueueFlow", "description": "Place the Task in the BasicQueue", "type": "contactFlow", "status": "published", "hash": "1df62264f4ea625a9c8495adaa72ba96959d315e91141eaddf4bab94698e7397" } }
問い合わせフロー→コンタクトフローの作成、から右上のフローのインポート(ベータ)
をクリックし、保存したテキストファイルを読み込みます。
作業キューの設定を作成したSupervisorQueue
に設定して、保存・公開をクリックします。
これでAmazon Connectの準備は完了です。
Contact Lensの有効化
問い合わせ窓口で利用するフローを用意します。
もしない場合は既存であるSample recording behavior
フローを利用してください。
フローにある記録と分析の動作を設定
ブロックの通話記録をエージェント及び顧客
でチェックを入れます。
Contact Lens 音声分析
の有効にチェックを入れます。
リアルタイムおよび通話後の分析
にチェックを入れて、言語は日本語で設定します。
Amazon EventBridgeの設定
EventBridge経由でAmazon SNSに通知するため、Amazon SNSでトピックを作成します。
マネジメントコンソールでSNS画面を開き、トピックの作成をクリックします。
名前をEmailNotification
とし、その他はデフォルトで進めます。
サブスクリプションの作成でプロトコルをEメール
、エンドポイントに普段利用しているメールアドレスを入力します。
メールが届くので承認します。
マネジメントコンソールでAmazon EventBridgeの画面に移動します。
ルール名を決めて、次へをクリックします。
下にあるイベントパターンのところでAWSのサービスをAmazon Connect、イベントタイプをContact Lens Realtime Rules Matched
で設定します。
ターゲットにSNSトピックの作成したEmailNotification
を選択します。
Contact Lens ルールの設定
いよいよContact Lensのルールの設定を行います。
Amazon Connectコンソールからルール
をクリックします。
ルールを作成、Contact Lensをクリックします。
Contact Lens リアルタイム分析が利用可能
にして、単語は完全一致、講演者はエージェントにします。
NGワードを登録します。
カテゴリ名に分かる名前を入力し、タスクを作成し、先ほど作成したキューを指定します。
EventBridgeイベントも分かりやすい名前を入力します。
これで設定は完了です。お疲れ様でした。
テスト
実際にNGワードを発言したら引っ掛かるかテストします。
電話をかけて、オペレーター側から一方的にNGワードを発言します。
裏でリアルタイムメトリクスを見ると、赤い点が出てきて、そこをクリックすると会話の要約をリアルタイムで見ることができました。
また、ほぼリアルタイムで、Amazon EventBridge→Amazon SNS経由で”ルールが検出された”旨のメールが届きました。
内容を見ると、どのルールを検知したのか、どのContact ARNなのか、どのAgent ARNか等を確認することができます。
{ "version": "0", "id": "cb6b2643-6fe3-7040-0c4b-xxxxxxxxxxxx", "detail-type": "Contact Lens Realtime Rules Matched", "source": "aws.connect", "account": "xxxxxxxxxxxxx", "time": "2022-07-28T10:19:11Z", "region": "ap-northeast-1", "resources": [], "detail": { "ruleName": "waruguchi", "actionName": "waruguchi", "instanceArn": "arn:aws:connect:ap-northeast-1:xxxxxxxxxxx:instance/957ae315-6f56-4e06-b23b-xxxxxxxxxxxx", "contactArn": "arn:aws:connect:ap-northeast-1:xxxxxxxxxxxx:instance/957ae315-6f56-4e06-b23b-xxxxxxxxxxxx/contact/dff1bbe8-a430-47d0-810b-xxxxxxxxxxxx", "version": "1.0", "agentArn": "arn:aws:connect:ap-northeast-1:xxxxxxxxxxxx:instance/957ae315-6f56-4e06-b23b-xxxxxxxxxxxx/agent/1f5f58b7-4ac0-4f14-8922-xxxxxxxxxxxx", "queueArn": "arn:aws:connect:ap-northeast-1:xxxxxxxxxxxx:instance/957ae315-6f56-4e06-b23b-xxxxxxxxxxxx/queue/f510f749-c326-4d5c-a758-xxxxxxxxxxxx", }, }
一度ログアウトして、作成したSVユーザーでCCPにログインすると、タスクとして着信されます。
タスクを応答すると、対象のコールの詳細を見れるURLが表示されます。
URLをクリックすると、対象のコールの詳細を見ることができました!
SVが初めにCCPにログインすると問題のあったコールを"タスク”として確認できるのは便利だと感じました。
最後に
Contact Lens for Amazon Connectを利用して、オペレーターがNGワードを言った時の検出方法を検証してみました。
ルールの設定次第で、オペレーターだけでなく、お客様側で何か特定のワードを話した時に検出することも可能です。("解約"等ネガティブワード等を検知するのもいいと思います)
翻訳自体も今は日本語対応しているので、NGワード検出したい方がいましたら試してみたらいかがでしょうか。
Contact Lens for Amazon Connect自体の翻訳の精度を上げたい時は、カスタム語彙を登録してみてください。
ではまた!コンサルティング部の洲崎でした。