Amazon Web Services ブログ

Amazon Connect の通話録音の保存期間をカスタマイズする方法

コンタクトセンター、特にビジネスプロセスアウトソーシング (BPO) 企業では、複数の事業部門 (LOB) を運営しており、それぞれが通話録音の保持に関して異なる規制要件や契約要件を持っています。

業界規制や契約義務を遵守できなければ、罰金、法的紛争、評判を損なう可能性があります。それだけでなく、必要な期間を超えて通話録音を保持することは、不要なストレージコストや潜在的なデータプライバシーの懸念につながる可能性があります。つまり、組織は、運用コストを最適化しながら、コンプライアンス義務を満たす必要があります。

このブログ投稿では、単一の Amazon Connect インスタンス内で、事業部門全体にわたって通話録音に複数の保持ポリシーを適用する方法について解説します。

ソリューション概要

Amazon Connect は、エージェントと顧客間の会話を安全に録音するネイティブな通話録音機能を提供しています。これらの録音は、お客様のインスタンス専用に作成された Amazon S3 バケットに保存されます。Amazon S3 ライフサイクルを設定することで、これらの録音のライフサイクルを管理できます。つまり、この設定により、Amazon S3 内の期限切れの録音を自動的に削除するオブジェクトの有効期限ルールを定義できます。

このソリューションでは、Amazon Connect のフロー内のカスタム問い合わせ属性で、各問い合わせの希望する保持期間を指定します。この問い合わせ属性は、問い合わせレコードの残りの部分と共に Amazon Kinesis にストリーミングされ、AWS Lambda 関数を呼び出します。Lambda 関数は Amazon S3 のオブジェクトへのタグ付け機能を使用して、指定された問い合わせ属性値に基づいて録音オブジェクトにタグを付けます。その結果、録音オブジェクトは、バケットに設定された事前定義済みの S3 ライフサイクルルールに従って、それぞれのタグに応じて有効期限が設定されます。

この方法で、データ保持規制への準拠、ストレージコストの最小化、リソース使用率の最適化を実現する、通話録音のカスタマイズされた保持ポリシーを実装できます。

アーキテクチャの全体概要

アーキテクチャ図

画像 1 – アーキテクチャ図

詳細な処理の流れ

  1. 特定の事業部門 (LOB) に対応した問い合わせが Amazon Connect に到着します
  2. 問い合わせ属性の保持期間がフロー内で問い合わせに添付され、LOB に応じて属性値 (短期、長期) が割り当てられます
  3. Amazon Kinesis が問い合わせレコードを Amazon S3 にストリーミングします
  4. Amazon S3 への転送と合わせて AWS Lambda 関数が呼び出されます。この関数は、問い合わせレコードの保持期間属性 (短期、長期) に基づいて、オブジェクトの Amazon S3 ライフサイクルポリシー (オブジェクトタグ付けを使用) を更新します
  5. Amazon S3 内の各録音が、それぞれのライフサイクルポリシーに基づいて期限切れになるよう設定されます

このブログでは、以下をデプロイします:

このアーキテクチャは、既存の Amazon Connect インスタンスと、それに対応する Amazon S3 問い合わせ録音バケットに適用できます。

前提条件

このガイドのタスクを実行するために必要な権限があることを確認してください。アクセス権の問題が発生した場合は、AWS アカウントの管理者に連絡して、必要な権限をあなたの役割に合わせて調整してもらってください。

Amazon Connect インスタンスがデプロイされている AWS アカウント内で、大まかには 以下のアクションが利用可能である必要があります:

  • CloudFormation: スタックの起動と削除
  • Amazon Connect: コンタクトフローの作成と設定、およびインスタンスへのアクセス
  • IAM: IAM ロールの作成と表示
  • Lambda: 関数の作成、編集、イベントソースの設定、およびデプロイ
  • Kinesis: Kinesis Data Streams の作成

手順

Amazon Connect インスタンスを既に作成済みかどうか、または初めて開始するかどうかに関係なく、このガイドを活用できます。
以下の手順では、AWS アカウントと既存の Amazon Connect インスタンスをお持ちであることを前提としています。新しい Amazon Connect インスタンスを作成するには、Getting Started with Amazon Connect Workshop の「Lab 1」 や、Amazon Connect Basic Hands-on Workshop (日本語) の 「2. インスタンスの作成」の手順に従ってください。AWS アカウントが必要な場合は、前提条件の手順に従ってください。

CloudFormation テンプレートの実行

CloudFormation テンプレートは JSON または YAML 形式で記述できる、AWS における Infrastructure as Code (IaC) のコードです。このガイド用の CloudFormation テンプレートは、以下のボタンをクリックしてダウンロードできます。

このテンプレートを使うと、 CloudFormation に以下のようなフォームが表示されます。Stack name には分かりやすい名前を入力、その他のパラメータは、テンプレートを設定する Amazon Connect インスタンスと録音バケットに合わせて入力します。これらの情報の確認方法は次に説明します。

テンプレートの入力項目

ステップ 1: 特定

次のステップに必要な情報を確認して書き留めます。

a) BasicQueueId

  1. 管理者、またはキューとコンタクトフローを表示するための適切なセキュリティプロファイル設定を持つユーザーとして Amazon Connect コンソールにアクセスします
  2. ルーティングからキューを選択しますキューの表示
  3. 表示されるキューのリストから BasicQueue を選択しますBasicQueue
  4. 追加のキュー情報を表示をクリックします追加のキュー情報を表示
  5. 表示されるARNの最後に表示されているキュー ID をコピーしますキューID
  6. キュー ID は後ほど利用するので記録しておきます

b) ConnectInstanceID

  1. 同じ ARN から、Connect インスタンス ID を推測できます。先ほどの画面の ARN のinstance/ の後の部分に注目します。AWS Management Console の Amazon Connect インスタンスページの概要ページから Connect インスタンス ARN をキャプチャすることもできますインスタンスID
  2. これを記録するか、CloudFormation テンプレートパラメータ入力フォームの ConnectInstanceId フィールドに入力します

c) KinesisDataStreamName

これは事前に入力された「multiple-retention-ctr」という名前のままにするか、任意の名前に変更できます。

d) RecordingBucketName

  1. AWS Management Console の Amazon Connect サービスページから対象の Amazon Connect インスタンスを選択します
  2. インスタンスエイリアスをクリックしますConnectインスタンスの一覧
  3. AWS Management Console の Amazon Connect サービスページのナビゲーションからデータストレージのセクションにアクセスします。ここで S3 バケットの名前を確認できます。完全なパスが提供されますが、必要なのはバケット名だけです通話録音バケットの確認
  4. これを記録するか、CloudFormation テンプレートパラメータ入力フォームを含む他のタブの RecordingBucketName フィールドに入力します

ステップ 2: ソリューションのデプロイ

前のステップですべての項目を収集したら、CloudFormation テンプレートのパラメータフォームに入力します。

  1. CloudFormation コンソールで、ダウンロードしたテンプレートを読み込み、フォームに入力します
    テンプレートの設定
  2. 次へをクリックして続行します
  3. 続いて表示されるスタックオプションの設定ページでは、(変更したい設定がなければ)ページ末尾の確認事項を除く、すべての設定をデフォルトのままにして、次へを選択します ページ末尾の確認事項(IAM)
  4. 確認して作成ページで最終的な詳細とパラメータを確認します。すべての設定をデフォルト値のままにしておくことができます
  5. 送信をクリックし、作成を開始します
  6. これによりテンプレートの起動が開始されます。スタックの下に CREATE_COMPLETE ステータスメッセージが表示されます。さらにイベントタブとリソースタブにアクセスして、テンプレートによって起動されたリソースを確認することもできます スタックの状態確認

ステップ 3: Amazon Connect からのデータストリーミングの有効化

注意: Amazon Connect は CTR データを単一の Kinesis Stream にのみ送信することをサポートしています。

既に CTR データを Kinesis Stream に送信している場合は、TagS3Object Lambda 関数内のイベントトリガー設定を更新して、既存の Kinesis Stream にストリーミングレコードが到着したときに呼び出されるようにすることができます。これにより、テンプレートで指定した「multiple-retention-ctr」という名前のストリームを使用しないことができます。そのように設定することで、Lambda 関数は既存のストリームの別のコンシューマーとなり、Kinesis ストリームに依存する既存のワークロードを中断することなく動作します。この後、使用状況の検証セクションに直接進んでください。

インスタンスから CTR ストリーミングを設定していない場合は、このセクションに沿って設定を続行してください。

Amazon Connect インスタンスは、CTR データを「multiple-retention-ctr」Kinesis Data Stream に送信するように設定する必要があります。これは、AWS Management Console の Amazon Connect インスタンス設定画面の「データストリーミング」セクションにアクセスすることで実現できます。
このストリーミング動作を発生させるために、フローやキューレベルでの追加設定は必要ありません。これはインスタンスレベルの設定です。

  1. AWS Management Console の Amazon Connect サービスページのナビゲーションからデータストリーミングのセクションにアクセスします。データストリーミングが有効になっているかどうかを確認してください データストリーミング
  2. チェックボックスを選択して有効にし、適切な Kinesis Stream を選択しますデータストリーミングの設定
  3. 保存をクリックします

フロー (すでに変更済みですので、この解説は説明目的です。追加の操作は不要です)

以下の画像は、コンタクトのコンタクト属性の割り当てを示しています(以下の例では、オプション 1 を押した発信者には短期保持が割り当てられます)

フローの設定

Lambda のコード

Lambdaのコード

保持値に応じて有効期限を 30 日または 90 日に設定する Lambda 関数の一部

保持期間を設定する Lambda のコード

このコードは ‘retention’ 属性の値を抽出し、キー ‘retention’ と ‘retentionvalue’ から取得した値を持つタグを作成し、’PutObjectTagging’ API を使用してタグを Amazon S3 オブジェクトに適用します。
ここまでの手順で、ソリューションは使用準備が整いました。フローの実装において必要な箇所でコンタクト属性 retention を設定することで、適用できるようになります。

動作確認

デプロイメントが確認でき、各コンポーネントを理解したので、通話をテストすることができます。

ステップ 1:「Configure multiple retention policies」フローに電話番号を割り当てる

このステップでは、CloudFormation テンプレートによってデプロイされた Contact Flow にテスト用の電話番号を関連付けます。

  1. 管理者として、またはキューとコンタクトフローの表示および電話番号の設定に適切なセキュリティプロファイル設定を持つユーザーとして Amazon Connect コンソールに移動します
  2. サイドバーセクションのチャネル下にある電話番号に移動します電話番号一覧への移動
  3. テストに使いたい電話番号を選択します。利用可能な電話番号がない場合は、電話番号の取得ボタンから進めてください電話番号の選択
  4. 作成された Configure multiple retention policies から始まる名前のフローを選択しますフローへの紐づけ
  5. 保存をクリックして変更します

ステップ 2: 電話番号に架電する

さて試してみましょう。発信したら、 1 または 2 を押して保持期間の長さを設定できます。このシナリオでは、電話をかけた後、 1 を押して、保持期間ポリシーを短く設定します。保持期間ポリシーの選択の後、問い合わせは Amazon Connect 内の BasicQueue に送られます。

  1. 紐づけた電話番号にダイヤルし、希望する保持期間のオプションを選択します
  2. 問い合わせコントロールパネル (CCP) またはエージェントワークスペースから、着信した問い合わせに数秒間応答します
  3. 通話を切断します

ステップ 3: Amazon S3 に保存された録音のオブジェクトタグを確認

問い合わせを切断したら、Amazon S3 オブジェクトを確認して、期待通りのタグが表示されていることを確認しましょう。タグが反映されるまで数分かかる場合があることにご注意ください。

  1. 録音が保存されている S3 バケットに移動し、オブジェクトツリーを辿って最新の録音を特定します録音ファイル
  2. Amazon S3 内から録音ファイルを選択します。プロパティタブ内を下にスクロールすると、retention タグが表示され、その値はテスト問い合わせ中に選択されたオプション(および設定された問い合わせ属性)に応じて「long」または「short」のいずれかを確認できます録音ファイルに付与されたタグ

これでテストの成功が確認できました。問い合わせ属性が正しく設定され、CTR レコードが Lambda 関数にストリーミングされ、問い合わせの録音が適切にタグ付けされました。設定された S3 ライフサイクルポリシーにより、ユーザーの介入なしに適切なタイミングで録音が削除されます。S3 ライフサイクルポリシーの詳細については、こちらをクリックしてください。

注:実際のユースケースでは、 IVR を介して録音保持ポリシーを選択する必要はありません。各フローのコンタクト属性の設定ブロックを使用して、バックグラウンドで適切な問い合わせ属性を自動的に設定するようにコンタクトフローデザイナーで構成できます。

クリーンアップ

CloudFormation テンプレートのデプロイメントをロールバックするには、2つの手順があります。これにより、このガイドで作成されたリソースをクリーンアップできます。

ステップ 1: CloudFormation スタックの削除

このブログの中でデプロイした CloudFormation テンプレートに移動し、スタックを削除します。このステップで、IAM、Lambda、および Kinesis Data Streams リソースを正常に削除できます。唯一の例外は、サンプルのフローで、これについては次のステップで対処します。

ステップ 2: デモンストレーション用の Amazon Connect フローをアーカイブする

偶発的なコンタクトセンターの中断リスクを最小限に抑えるため、CloudFormation でコンタクトフローを削除することはできません。これを削除するには、適切なセキュリティプロファイルを持つユーザーで Amazon Connect インスタンスにアクセスし、フローをアーカイブします。

前のステップで Kinesis Stream が削除されると、Amazon Connect インスタンスのデータストリーミング設定から該当の Kinesis Stream の割り当てが自動的に解除されます。

コンタクトフローの保存に関連する料金はないため、アーカイブしても削除による残存コストは発生しません。

これらの手順で、前述の活動に関わる(通話録音を除く)すべてのリソースがクリーンアップされます。

まとめ

単一の Amazon Connect インスタンス内に複数の通話コンタクト録音保持ポリシーを実装することは、重要なビジネス上の利益をもたらします。Amazon Connect と他の AWS サービスを一緒に活用することで、組織はコンプライアンスとコスト効率性のバランスを実現できます。
このアプローチで運用を合理化し、データプライバシーを確保し、進化するビジネス要件に適応する柔軟性を提供できます。結果として、コストを最適化し、規制コンプライアンスを維持する、シームレスでカスタマイズされたソリューションが、単一のスケーラブルなプラットフォーム内で実現できます。

より詳しく知るには

筆者紹介

Mo Miah

Mo Miah は Amazon Connect を専門とするシニアソリューションアーキテクトです。コンタクトセンターテクノロジーの分野で 19 年以上の経験を持っています。イギリスのロンドンを拠点とし、Amazon Connect の強力な AI/ML 機能を使用してお客様がビジネス成果を達成できるよう支援することを楽しんでいます。仕事以外では、アクティブに過ごすことを楽しんでおり、2 人の幼い娘がいて忙しい日々を送っています。

Jack Tilson

Jack は、様々な AWS テクノロジーを活用して公共部門のお客様と協働するソリューションアーキテクトです。特に、優れたクラウドサービスによるセキュリティ、レジリエンス、市民体験に関心を持っています。戦略的なクラウド変革の経験を持つ彼は、旅行、写真、音楽の熱心なファンでもあります。

翻訳はテクニカルアカウントマネージャー高橋が担当しました。原文はこちらです。