Amazon Web Services ブログ

コールの感情分析をリアルタイムでエージェントに提供 – Contact Lens for Amazon Connect のリアルタイムコンタクト分析セグメントストリーム

エージェントエクスペリエンスはコンタクトセンターにとって極めて重要な要素であり、エージェントとお客様とのやり取りがビジネスのカスタマーエクスペリエンスを決定づけます。このようなシナリオでは、エージェントに適切なツールと情報をタイムリーに提供することが、初回コール解決、平均処理時間の短縮、顧客満足度の向上を実現する鍵となります。コール感情分析は、リアルタイムと通話後のどちらでも、お客様対応の改善点を理解するために重要な役割を果たします。コールのリアルタイムなトランスクリプション、それに付随する感情、キーワードやカテゴリーを提供することで、エージェントが問題を解決するために適切な行動を取ることができます。

Contact Lens for Amazon Connect は、顧客との会話における感情や傾向をリアルタイムで追跡し、企業や製品の重要なフィードバックを特定するのに役立つ機能です。Contact Lens は現在、リアルタイムストリーミング(リアルタイムコンタクト分析セグメントストリーム)にも対応しており、企業がほぼリアルタイムで Contact Lens の分析にアクセスできるようになりました。リアルタイムコンタクト分析セグメントストリームは、電話のトランスクリプト、カテゴリ、および会話音声を提供します。会話音声を利用すると、企業は部分的なトランスクリプトの取得ができます。また、リアルタイムかつ低遅延で、通話中のエージェントを支援することが可能になります。お客様やパートナーは、データをより速くアプリケーションに届けるために、この新機能を待ち望んでいました。

「Amazon Connect Contact Lens の新しいストリーミング機能は、TrueServe™ by Deloitte Digital を通じてお客様にデジタルコンタクトセンターを提供する上で、大きな変化をもたらすものです。 これにより、エンタープライズ規模でハイパフォーマンスなリアルタイムのトランスクリプトをエージェントに提供できるようになりました。 新しいストリーミングセグメントを使えば、どんな長さの通話でも、完全なサーバーレスアーキテクチャですべてを実現することができます。」- Erik Golden, TrueServe™ by Deloitte Digital Chief Product Architect

このブログ記事では、Contact Lens のリアルタイムコンタクト分析セグメントストリームを活用した、拡張エージェントデスクトップのセットアップ方法について説明します。エージェントデスクトップは、通話に付随するリアルタイムのトランスクリプション、カテゴリ、感情を提供します。これらの例は、既存のソリューションの拡張として使用したり、特定のニーズに基づいて変更することができます。

ソリューションの概要

このソリューションは、AWS CloudFormation テンプレートを使用してデプロイされます。このソリューションは、Amazon Kinesis Data Streams を作成し、Amazon Connect Contact Lens と関連付けることで、ストリーミングを可能にします。さらに、AWS AppSync API を作成して、Contact Lens からのインサイトをカスタム Contact Control Panel (CCP)に公開し、トランスクリプト、カテゴリ、感情グラフを表示することができます。また、Amazon CloudFrontAmazon Simple Storage Service (S3) bucket を使用してデプロイされるカスタム CCP も作成します。このソリューションのアーキテクチャ図は以下の通りです:

上記のアーキテクチャでは、顧客が電話をかけると、Amazon Connect Contact フローが呼び出されます。このフローは次に AWS Lambda 関数を呼び出し、認証トークンを生成します。このトークンは Amazon DynamoDB テーブルと Amazon Connect のコンタクト属性に保存されます。エージェントが CCP で電話に応答すると、その電話のコンタクト ID とトークンが AWS AppSync API に渡されます。すると認可用 Lambda 関数が呼び出され、DynamoDB テーブルでトークンが検証されます。検証されると、Amazon Connect Contact Lens の会話音声とトランスクリプトが Kinesis Data streams を使ってストリーミングされ、AWS Appsync を使ってエージェント CCP に公開されます。

注:これは実験のため、簡単にデプロイできるように設計されたサンプルプロジェクトです。AWS Identity and Access Management(IAM) ポリシーの内、最小の権限を使用しますが、デプロイされた Amazon CloudFront と AWS AppSync リソースはパブリックにアクセス可能となります。

必要に応じて、Amazon CloudFront ディストリビューションや AWS AppSync の安全性を確保するための適切な措置を講じてください。

前提条件

このウォークスルーでは、以下のリソースを理解し、アクセスできることを前提としています。

    • AWS アカウント
    • 既存の Amazon Connectインスタンス
    • リアルタイム分析のために Amazon Connect インスタンスで有効化された Contact Lens を有効にしていること
    • Contact Lens のリアルタイム分析用のルールを作成していること
    • AWS IAM ポリシーとロールを作成するための権限
    • Amazon CloudFront ディストリビューションを作るための権限
    • Amazon S3 バケットを作るためのアクセス権限
    • Amazon Kinesis Data stream を作るためのアクセス権限
    • AWS Lambda を作るためのアクセス権限
    • AWS AppSync API を作るための権限
    • スタックを実行するための AWS CloudFormation

ソリューションのデプロイ

ソリューションのデプロイには、以下の情報が必要です。

  1. Amazon Connect インスタンス名
  2. Amazon Connect インスタンスID
  3. Connect インスタンスに関連する Service-Linked ロールの Amazon リソースネーム (ARN)

注:サービスリンクされたロールの ARN を確認するには、インスタンスの概要ページでサービスリンクされたロールをクリックします。

これで、AWS IAM コンソールが表示されます。IAM コンソールに入ったら、ロールに関連する Amazon リソースネーム (ARN)をメモしておきます。

Amazon Connect のインスタンス ID、インスタンス名、Service-Linked ロールの ARN を取得したら、ソリューションのデプロイは完了です。

手順の概要:

  1. AWS CloudFormation スタックをデプロイする
  2. AWS CloudFormation スタックで作成した Amazon Connect コンタクトフローに電話番号を関連付ける
  3. カスタム CCP を起動し、エージェントとしてサインインする
  4. 電話をかけてソリューションをテストする

AWS CloudFormation スタックをデプロイする

  1. AWS Management Console にログインします。
  2. 以下の Launch Stack ボタンをクリックして、AWS Oregon リージョンにスタックを作成します。
  3. パラメータセクションに、Amazon S3 バケットのグローバル一意の名前、Connect インスタンス ID、インスタンス名、先ほどメモした Service-Linked ロールの ARN を入力し(詳細は以下のスクリーンショットを参照)、「次へ」をクリックします。
  4.  「AWS CloudFormation によって IAM リソースが作成される場合があることを承認します」にチェックを入れます。
  5. スタックの作成」を選択します。
  6. AWS CloudFormation テンプレートは、すべてのリソースを作成するために15~30分かかる場合があります。完了すると、ステータスが「CREATE_COMPLETE」と表示されます。

注: CloudFormation 実行時に、以下のような「ACL 有効化がされていないので CloudFront のログの設定ができない」という内容のエラーが発生した場合は、以下の手順をお試しください。

Resource handler returned message: "Invalid request provided: AWS::CloudFront::Distribution: The S3 bucket that you specified for CloudFront logs does not enable ACL access: <バケット名>.s3.amazonaws.com (Service: CloudFront, Status Code: 400, Request ID: XXXX)" (RequestToken: XXXXX, HandlerErrorCode: InvalidRequest)

  1. 作成した CloudFormation スタックを削除します
  2. もう一度 CloudFormation スタックを作成し、作成途中で「正常にプロビジョニングされたリソースの保持」で「正常にプロビジョニングされたリソースの保持」を選択します。
  3. 作成が失敗することを確認します
  4. 失敗が確認できたら、S3の 設定を修正します。CustomCCPS3BucketForWebSite に指定していた S3 バケットの設定(「アクセス許可」タブ)を以下の通り修正します。(添付図参照)
  5. 「オブジェクト所有者」を「ACL 有効」にして「希望するバケット所有者」を指定します。
  6. 「アクセスコントロールリスト(ACL)」を編集し、「S3 ログ配信グループ」のすべてのアクセスを許可
  7. CloudFormation を再実行します。CloudFormation で失敗しているスタックを選び「更新」を実行します。

Amazon Connect のコンタクトフローに電話番号を関連付ける

CloudFormation スタックがすべてのリソースのデプロイを完了した後、CloudFormation で作成されたコンタクトフローに電話番号を関連付ける必要があります。電話番号を関連付ける方法は以下の通りです。

  1. Amazon Connect の管理コンソールにログインします。
  2. チャネルセクションの電話番号をクリックして、電話番号ページに移動します。
  3. CloudFormation スタックによって作成された ContactLensStreamingDemoContactFlow に電話番号を関連付け、「保存」をクリックします。

カスタム CCP を起動し、エージェントとしてサインインする

  1. AWS Management Console にログインし、AWS CloudFormation に移動します。
  2. 先ほど作成したスタックの名前を選択します。
  3. 新しく作成したスタックの「出力」セクションに移動します。列から CloudFrontEndpoint URL をコピーします。
  4. 新しい Web ブラウザのタブ/ウィンドウに URL を貼り付け、カスタム CCP である CloudFront の Web UI に移動します。
  5. Basic Queue からのコールを受信できるエージェントで、カスタム CCP にログインします。

ソリューションのテスト

  1. Step 3 で Amazon Connect のコンタクトフローに関連付けた電話番号に電話をかけます。
  2. カスタム CCP でエージェントとして通話を受け取ります。
  3. 設定した Contact Lens ルールのトリガーとなるフレーズを引用しながら、顧客として話します。
  4. エージェントのデスクトップには、トランスクリプション、カテゴリー/ルール (トリガーされた場合)、感情グラフが表示されます。

クリーンアップ
今後の課金を避けるため、AWS CloudFormation スタックを削除して、作成したリソースをすべて削除してください。

まとめ
この記事では、Contact Lens のリアルタイムのコンタクト分析イベントストリームを使用して、エージェントにリアルタイムで感情分析を提供する方法の例を示しました。AWS AppSync はリアルタイムデータをパワーアップし、React アプリは変更を即座に表示します。このデータをどのように利用できるか、いくつかの UI 例を提供しましたので、ユーザーはこの出発点を利用して独自のインサイトを作成することができます。

この投稿は以下のブログを翻訳したものです。

https://aws.amazon.com/blogs/contact-center/provide-call-sentiment-analytics-to-agents-using-real-time-contact-analysis-segment-streams-in-amazon-connect-contact-lens/