Amazon Web Services ブログ

Amazon Connect Contact Lens と評価機能によるエージェント品質の管理

はじめに

コンタクトセンターではエージェントのパフォーマンスを把握するために労力をかけています。これは、大量のインタラクションと、顧客とのコミュニケーションに使用されるさまざまなチャネルに起因しています。更に、パフォーマンス分析のために関連するデータポイントを抽出・収集する事は難しい作業です。幸い、Amazon Connect Contact Lens には、評価フォームを使用したエージェントのパフォーマンス評価機能があります。コンタクトセンターのマネージャーは、トークスクリプトの遵守や機密データ収集の遵守などの特定の基準に基づき、評価フォームを作成します。Contact Lens の機械学習を活用した会話分析により、これらの評価フォームにスコアを付けて、エージェントのパフォーマンスを包括的に把握する事ができます。

更に、Contact Lens を使用すると、組織は評価フォームの出力データとコンタクトレコード(以前のコンタクト追跡レコード)をデータレイクにストリーミングできるため、高度な分析が可能になります。この分析手法により、マネージャーはエージェントのパフォーマンス傾向に関するインサイトを確認し、データドリブンな意思決定を行い、カスタマーサービスを向上させる事ができます。FrontDoor や Ameriflex のような当社のお客様では、品質保証の業務効率を向上させることで評価機能のメリットを享受しています。パートナーの Cognizant は、エージェントのパフォーマンスについてより多くのインサイトを取得し、トレーニングの機会を特定し、彼らのユーザー企業がコンタクトセンターの運用を強化できるように支援します。

このブログでは、Amazon Connect からコンタクトレコードをストリーミングする方法、評価フォームデータを処理する方法、それらのデータを関連付ける方法、そして、Amazon QuickSight を使用して分析結果を視覚化する方法を学習します。これらの強力な機能を使用することで、カスタマーサービス業務を最適化し、カスタマーエクスペリエンスを向上させることができます。

概要

AC-ContactLens-1

図1:ハイレベルなアーキテクチャー図

上記のアーキテクチャーにより、Amazon Kinesis Streams と Kinesis Data Firehose を使用した Amazon Connect Contact Center からのデータのリアルタイム処理が可能になり、AWS Glue Data Catalog、Amazon Athena、Amazon QuickSight を使用したデータのクエリと視覚化が可能になります。

Amazon Kinesis Streams は、Amazon Connect コンタクトレコード (CTR) を Amazon Simple Storage Service (S3) バケットに送信するために使用します。 コンタクトレコードからコンタクトセンターで発生するコンタクトのイベント情報を取得する事ができます。 Amazon Connect は、CTR を少なくとも 1 回配信する事を保証しています。また、最初に CTR が配信されてから新しいイベント情報が発生する場合は、同じコンタクトに対して追加の CTR を配信する場合があります。

Amazon Connect のパフォーマンス評価機能が有効になっている場合、評価が完了すると、評価フォームの出力ファイルが同じ S3 バケットに直接配信されます。 この出力ファイルの配信により Amazon EventBridge イベントがトリガーされ、Amazon Kinesis Data Firehose にイベント情報が送信されます。 Kinesis Data Firehose は、指定した間隔でこれらのイベントを収集し、AWS Lambda を使用して S3 バケットから各ファイルのコンテンツを取得します。 Kinesis Data Firehose は、AWS Glue カタログで定義されたスキーマを使用して、これらのファイルから取得したレコードを Parquet ファイル に圧縮し、S3 バケットに保存します。

AWS Glue Data Catalog には、CTR と評価フォーム出力ファイルのテーブル定義があります。 Contact Id フィールドを使用してこれらを関連付けることができ、Amazon Athena を使用してクエリーを実行する事ができます。 Amazon QuickSight は視覚化の目的で使用されます。

前提条件

このブログ投稿で紹介されているソリューションを進めるには、次の AWS のサービスと機能について理解しておく必要があります。

Amazon Connect コンソールにて、セキュリティプロファイルの[分析および最適化]セクションにある以下のアクセス権限を割り当てる事で、Amazon Connect のユーザーが評価フォームを作成、定義し、アクセスできるようになります。

  • 評価フォーム – 評価の実行
  • 評価フォーム – フォーム定義の管理

更に、 AWS Cloud Development Kit (CDK) データパイプラインをデプロイするには、以下の前提条件を満たす必要があります。

  • AWS アカウント
  • Administrator 権限が割り当てられた AWS IAM ユーザー
  • Contact Lens および 評価機能 が有効化された Amazon Connect インスタンス
  • Node (v16) と NPM (v8.5) がインストール、設定された端末
  • AWS Command-Line Interface (CLI) (v2) がインストール、設定された端末
  • AWS CDK (v2) がインストール、設定された端末
  • 本ブログシナリオのデプロイメントでは、6 つの S3 バケットが作成されます。 全てのスタータープロジェクトをデプロイするには 12 個の S3 バケットが必要となります。

ウォークスルー

このウォークスルーは 2 つのパートから構成されています。 まず、CDK データパイプラインをデプロイします。 次に、CloudFormation Template(CFT) を使用してデプロイする事で、 Amazon QuickSight でダッシュボードを作成します。

データパイプラインをデプロイする

データ分析のサンプルプロジェクトは、GitHub https://github.com/aws-samples/amazon-connect-data-analytics-sample から入手できます。 以下の手順は、AWS CDK CLI を使用してソリューションをデプロイする方法です。 Windows デバイスを使用している場合は、Git Bash ターミナルを使用し、強調表示されている代替のコマンドを使用して下さい。

  1. 端末上にソリューションのクローンを作成します。:
    git clone https://github.com/aws-samples/amazon-connect-data-analytics-sample
  2. AWS CLI 設定を確認します。:
    1. AWS CDK は AWS CLI のローカル認証情報とリージョンを使用します。
    2. aws configure で意図したリージョンで作業していることを確認してください。
  3. NPM パッケージをインストールします。:
    1. ターミナル (Windows では Git Bash) を開き、amazon-connect-data-analytics-sample/cdk-stacks に移動します。
    2. npm run install:all を実行します。
  4. CDK スタックを構成します。
    • ターミナル (Windows では Git Bash) で、amazon-connect-data-analytics-sample/cdk-stacks に移動します。
    • このガイドでは、対話モード npm run configure で構成スクリプトを開始します。
    • このブログに必要な機能を有効にするには、ctr-stack-enabled、ctr-partitioning-schedule-enabled、ef-stack-enabled、ef-partitioning-schedule-enabled、および ef-reporting-stack-enabledtrue に設定する必要があります。
    • プロンプトが表示されたら、次のパラメータを入力します。
    • aws-glue-database-name: Amazon Connect データ分析用のテーブルを保持する AWS Glue データベースの名称を入力します (デフォルトは AmazonConnectDataAnalyticsDB)
    • ctr-stack-enabled: コンタクト追跡レコード (CTR) スタックを展開するには true に設定します。
    • ctr-partitioning-schedule-enabled: Amazon EventBridge で CTR パーティショニング ジョブをスケジュールする場合は true に設定します。
    • ae-stack-enabled: エージェントイベント (AE) スタックをデプロイするには true に設定します。
    • ae-partitioning-schedule-enabled: Amazon EventBridge で AE パーティショニング ジョブをスケジュールする場合は true に設定します。
    • cfl-stack-enabled: コンタクトフローログ (CFL) スタックを展開するには true に設定します。
    • cfl-partitioning-schedule-enabled: Amazon EventBridge で CFL パーティショニング ジョブをスケジュールする場合は true に設定します。
    • connect-contact-flow-logs-cloudwatch-log-group: Amazon Connect のコンタクトフロー ログが保存される Amazon CloudWatch ロググループを設定します (例: /aws/connect/<your-instance-alias>)
    • cl-stack-enabled: コンタクト レンズ (CL) スタックを展開するには true に設定します。
    • connect-contact-lens-s3-bucket-name: Amazon Connect が Contact Lens の出力ファイル (および Amazon Connect 通話録音) を保存する S3 バケットの名称を設定します。
    • cl-partitioning-schedule-enabled: Amazon EventBridge で CL パーティショニング ジョブをスケジュールする場合は true に設定します。
    • ef-stack-enabled: true に設定すると、評価フォーム (EF)スタックがデプロイされます。
    • connect-evaluation-forms-s3-bucket-path: Amazon Connect が評価フォームの出力ファイルを保存する S3 バケット名とプレフィックス (<your-bucket-name>/connect/<your-instance-alias>/ContactEvaluations)を設定します。 ※末尾のスラッシュは含めません。
    • ef-partitioning-schedule-enabled: Amazon EventBridge で EF パーティショニング ジョブをスケジュールする場合は、true に設定します。
    • ef-reporting-stack-enabled: ビジュアライズを実施する場合は、true に設定します。 これにより、Amazon  QuickSight ダッシュボードがデータ ソースとして使用する Amazon Athena ビューがデプロイされます。
  5. CDK スタックをデプロイします。
    1. ターミナル (Windows 上の Git Bash) で、amazon-connect-data-analytics-sample/cdk-stacks に移動します。
    2. 新しい環境で開始した場合は、cdk bootstrap コマンドを使用して CDK をブートストラップします。
    3. npm run cdk:deploy スクリプトを実行します。 Windows デバイスでは、npm run cdk:deploy:gitbash を使用します。
  6. コンソールコンフィグレーション:
    1. 希望するリージョンで  AWS マネジメント コンソール にサインインします。
    2. Amazon Connect インスタンスの S3 バケット (Amazon Connect が Contact Lens 出力ファイルと通話録音を保存するバケット) に移動し、[プロパティ] タブを選択します。 [Amazon EventBridge] セクションで、[編集] ボタンを選択し、通知をオンに切り替えます。
    3. Amazon Connect インスタンスにて、[データ ストリーミング] の設定を表示し、[データ ストリーミングを有効化] にチェックを入れます。 コンタクトレコード(コンタクト追跡レコード)を取得するために、Kinesis ストリームのリストから CDK スタックによって作成された CTRKinesisStream を選択します。
    4. Amazon Connect インスタンスにて、[データ ストレージ] 設定を表示し、[Contact evaluations] が有効になっている事を確認します。設定がSDKスタックで指定した[connect-evaluation-forms-s3-bucket-path]と一致している事を確認します。
    5. サービスから Amazon Athena にて、メニューから クエリエディター を表示し、[設定] タブに移動し、[クエリの結果と暗号化] で[管理]ボタンを押下し、[クエリ結果の場所 -オプション]に、バケット名 amazonconnectdataanalyticssample-ar-<account-id>-<region> を設定します。
    6. 注: バケット名の「al」は「アクセス ログ」を示すため[amazonconnectdataanalyticssample-ar-al-<account-id>-<region>]を選択しないでください。
    7. Athena コンソールの クエリエディターに戻ります。 データベースを[amazonconnectdataanalyticsdb]に切り替え、[ビュー]セクションにて、各ビュー名の横に表示される3 つのドットをクリックします。 [クエリを表示/編集] を選択し、[実行] ボタンを選択します。 次の順序でビューを実行します。
      1. connect_ctr_denormalized
      2. connect_ef_evaluationquestionanswers_view
      3. connect_ef_evaluationsscores_view
      4. connect_ef_evaluationsall_view
      5. final_connect_ef_evaluationsall_view
      6. final_connect_evaluation_ctr_view

評価フォームダッシュボードをデプロイ

  1. 希望するリージョンで AWS マネジメント コンソールにサインインします。
  2. Amazon QuickSight のアカウントを作成します (すでに QuickSight アカウントをお持ちの場合は、この手順をスキップしてください)
    1. コンソールから Amazon QuickSight サービスに移動します。
    2. [Sign up for QuickSight] ボタンを選択します。
    3. エディションを選択し、「続行」を選択します。
    4. データパイプラインがデプロイされているのと同じリージョンを選択します。アカウント名通知メールアドレスを入力します。
  3. 続いて、以下の手順の通り、Amazon Athena Workgroup の書き込みアクセス許可を有効にした形で、Amazon Athena および Amazon S3 出力バケット (特に amazonconnectdataanalyticssample の一部としてデプロイされたすべてのバケット) への access and autodiscovery を許可し、[完了] を選択します。
    • 注: すでに Amazon QuickSight アカウントをお持ちの場合は、以下の手順に従ってください。
      1. Amazon QuickSight に移動し、右上隅のアイコンをクリックして、[QuickSight を管理]を選択します。
        [セキュリティとアクセス権限]をクリックします。
      2. [QuickSight の AWS のサービスへの アクセス] で、[管理]ボタン を選択します。
      3. この CDK データレイク ソリューションによって作成された Amazon AthenaAmazon S3 バケットを選択し、各 S3 バケットおよび Amazon Athena Workgroup の書き込みアクセス許可にチェックを入れて [保存]します。
  4. AC-ContactLens-2以下 [スタックの起動] ボタンを押下して、評価フォーム分析ソリューションを希望のリージョンにデプロイします。:
  5. AC-ContactLens-4一意の[スタック名]を入力します。
  6. パラメータ AwsGlueDatabaseName にはデフォルト値(AmazonConnectDataAnalyticsDB)を使用するか、データパイプラインのセットアップ中に別の Glue データベース名を選択した場合は一致するように更新して下さい。[スタックの作成]を選択します。
  7. CloudFormation スタックの作成が完了したら、QuickSight コンソールでユーザーアイコン (右上) を選択してメニューを開き、[QuickSight を管理] を選択します。
  8. 管理ページのメニューから、[アセットの管理] > [ダッシュボード] の順に選択します。
  9. <stack-name>-EvaluationFormAnalytics_v1 にチェックを入れて、[共有] を選択します。
  10. 必要に応じて、ダッシュボードをさらにカスタマイズするには、[アセットの管理] > [分析]で <stack-name>-EvaluationFormAnalytics_v1 を共有し、[アセットの管理] > [データセット]で <stack-name>-EvaluationFormAnalytics_v1 を共有します。
  11. アセットを共有画面が表示されたら、ユーザーまたはグループ を入力し、再度 [共有] を選択します。

テスト手順

  1. リポジトリから「contact-flows/SimpleInboundFlow」コンタクト フローをダウンロードします。 Amazon Connect のコンソールにログインし、「ルーティング」>「フロー」の順に移動します。 [フローを作成] ボタンを選択します。 フロー デザイナーが表示されたら、画面右上にある下矢印▼を選択し、[インポート] を選択します。 SimpleInboundFlow を選択し、Amazon Connect インスタンスにインポートし、フロー内の「記録と分析の動作を設定」ブロックで言語(デフォルトは英語)を修正した後に、[公開] をします。
  2. Amazon Connect コンソールにて、[チャネル] > [電話番号] の順に移動します。 テストで使用する電話番号に SimpleInboundFlow フローを関連付けます。
  3. Amazon Connect コンソールにて、[分析と最適化] > [Contact Lens] > [評価フォーム] の順に移動し、評価フォームを作成します。 詳細については、ドキュメント「評価フォームの作成」を参照してください。
  4. Amazon Connect インスタンスにエージェントとしてサインインし、コンタクトコントロール パネル (CCP) を開きます。 顧客として電話番号に電話します。 IVR の分岐メニューでいずれかを選択すると、エージェントにルーティングされます。 CCP で電話に応答し、コンタクトセンターにおける顧客とエージェントのやりとりを真似した短い会話を行ってください。
  5. 通話が終了したら、Amazon Connect のナビゲーション ウィンドウで、[分析と最適化] > [コンタクトの検索] を選択し、先の手順で通話した評価対象のコンタクトを検索します。 [コンタクト ID] をクリックして、[評価] または [<] アイコンを選択します。
  6. 評価を開始するには、ドロップダウン メニューから評価を選択し、[評価の開始] を選択します。 評価フォームに記入し、「送信」をクリックします。
  7. CTR と EF の両方の S3 の宛先バケットに Kinesis Data Firehose ファイルが作成されたことを確認します。 評価フォームのデータが宛先バケットに表示されるまでに最大 3 分かかる場合があります。
    1. 処理されたレコードは、宛先バケット amazonconnectdataanalyticssample-ef-<account-id>-<region> に書き込まれます。
    2. amazonconnectdataanalyticssample-ef-al-<account-id>-<region> に追加の「al」が付いたものは、アクセス ログ バケットを示すことに注意してください。
  8. Amazon Athena クエリエディターに移動します。 「テーブル」セクションで、connect_ef の横にある 3 つのドットを選択し、「パーティションのロード」をクリックします。 Amazon Athena は MSCK REPAIR TABLE `connect_ef` を実行して新しいパーティションをロードします。
  9. connect_ctr テーブルに対しても同じ手順を繰り返します。connect_ctr テーブルの横にある 3 つのドットを選択し、[パーティションのロード] をクリックします。
    1. 注: 通常、パーティショニング プロセスは毎日午前 0 時に実行され、前日のデータが取り込まれます。 結果をすぐに確認するために、データを手動でインポートしています。
  10. Amazon QuickSight のダッシュボードでは、数分で評価フォーム データが表示されます。 QuickSight、ダッシュボードに移動し、<stack-name>-EvaluationFormAnalytics_v1 を選択します。

サンプルダッシュボードの概要

[Team] ビューには、評価フォームの概要が表示されます。 総合評価スコアと平均評価スコアが表示され、ワードクラウドも含まれています。 評価フォームの詳細かつ包括的な分析が必要な場合は、表形式のビューが最適なオプションになります。 このビューには、評価フォームの質問、結果の値、件数の内訳が表示されます。 カスタムフィルターを適用する事で独自のビューを作成できます。

AC-ContactLens-5
[Agent] ビューは、コンタクト センター エージェントに対するハイレベルな分析を提供します。 このビューには、評価フォームのスコアの内訳が含まれており、これによって最もパフォーマンスの高いエージェントや、コーチングが必要な領域を特定する事ができます。 エージェント、キュー、ルーティングプロファイルなどの条件に基づいてフィルターを適用できるため、絞り込んだ検索や、容易に必要な関連データを見つける事が可能です。

AC-ContactLens-6

[Evaluator]ビューには、コンタクト センターの評価者に対するハイレベルな概要が包括的に表示されます。 実行された評価の合計数と各フォームの平均スコアを視覚化した内容が表示されます。 さらに、サンキー図では、どの評価者が各評価フォームを入力したかを強調表示にて視覚的に確認する事ができます。

AC-ContactLens-7

クリーンアップ

このブログによって作成されたリソースを削除するには:

  1. CloudFormation テンプレートを削除します。
  2. CloudFormation テンプレートから作成された S3 バケットを空にして削除します。
  3. CloudFormation テンプレートから作成された Glue データベースを削除します。

CDK データ パイプライン ソリューションをアカウントから削除するには、次の手順に従います。

  1. CDK スタックを削除します。
    1. ターミナルで、amazon-connect-data-analytics-sample/cdk-stacks に移動します。
    2. cdk destroy --all を実行します。
  2. AWS System Manager パラメータ ストアからデプロイメント パラメータを削除します。
    1. ターミナルで、amazon-connect-data-analytics-sample/cdk-stacks に移動します。
    2. node configure.js -d を実行します。

まとめ

このブログでは、Amazon Kinesis と Amazon EventBridge を使用してコンタクトレコードと評価フォームのデータをストリーミングする方法を学びました。 また、QuickSight ダッシュボードを使用してこのデータを視覚化する方法も示しました。 Amazon Connect のデータソースに関するさらなるインサイトと分析機能については、Amazon Connect Reporting ブログシリーズをご覧ください。

この記事は Ankur Taunk、 Angela Yu、 Mehmet Demir、 Karletha Paxton によって書かれた Managing Agent Quality using Amazon Connect Contact Lens and Evaluation Capabilities の日本語訳です。この記事はソリューションアーキテクトの梅田裕義が翻訳しました。