Amazon Web Services ブログ

Amazon Connectのスケジュールされた レポートを自動的に送信する

コンタクトセンターではデータが重要です。 スーパーバイザとマネージャは、レポートを使用して、チームのパフォーマンスを確認し、要員配置の計画を立てます。 必要なときに必要なデータを人々に提供することは不可欠です。 このブログ記事では、レポートの生成を有効にしてEメールで自動的にユーザーに送信する方法について説明します。 以下のサービスを使用します。

このブログでは、 AWS CloudFormationを使用してデプロイを簡素化する方法についても説明します。

このブログのソリューションでは、 Amazon Connectのネイティブレポート機能を使用してレポートを設定およびスケジュールします。 そのスケジュール設定されたレポートは、Amazon Connectの設定で指定したS3バケットに作成されます。 レポートがS3に作成されると、Lambda関数を起動するイベントが発生します。 Lambda関数はイベントを読み取り、S3からレポートを取得して、指定されたEメールアドレスに送信します。 すべてのアクティビティは追跡目的でCloudWatchに記録されます。

では始めましょう。

このセットアップを完了するには、次のものが必要です。

  1. アクティブなAWSアカウント
  2. us-east-1(バージニア北部)またはus-west-2(オレゴン)のいずれかにあるAmazon Connectインスタンス。 Amazon SESはこれらのAmazon Connectリージョンでのみ使用可能であるため、この設定ではこれら2つのリージョンのみがサポートされています。 インスタンスを作成したら、電話番号を取得します。 詳細については、Amazon Connect の使用開始を参照してください。
  3. あなたのアカウントに設定されたAmazon SES。 このソリューションでは、Amazon SESを使用してレポートを指定の受信者にEメールで送信します。 SESを使用してEメールを送信するには、送信元アドレスを確認して、自分が所有者であることを示します。 サンドボックスにいる場合は、 送信先アドレスも確認する必要があります。 あなたは、Eメールアドレスまたはドメイン全体を確認することができます。 検証プロセスについては、Amazon SES のIDの検証を参照してください。 アカウントをサンドボックスから削除する方法については、Amazon SES サンドボックスの外への移動を参照してください。
  4. このCloudFormationテンプレートを実行するための適切なIAM権限。 これには、IAMロールとLambda関数を作成する権限が含まれます。 さらに、CloudFormationテンプレートを実行し、S3バケットにイベントを追加する権限も必要です。 ご自分の権限が不明な場合は、あなたの会社のAWS管理者に連絡してください。

土台を構築する

この設定に含まれる手順を簡単にするために、AWS CloudFormationを使用します。 CloudFormationを使用すると、テンプレートを使用してすばやくリソースをデプロイできます。 このブログ用に作成されたテンプレートは、IAMロールとLambda関数を作成します。

テンプレートを実行する前に、Amazon Connectインスタンスからいくつかの情報を収集してください。 具体的には、エクスポートされたレポートが保存されているS3バケットの名前、およびレポートフォルダーへのパスです。 この情報はAmazon Connectコンソールのデータストレージセクションにあります。 場所は次のようになります。

mybucketname/connect/myinstancename/Reports

この例では、バケット名は最初のスラッシュの前のすべて、つまり”mybucketname”です。また、レポートパスは最初のスラッシュの後のすべて、つまり”connect/myinstancename/Reports”です。 これらの値を見つけるには

  1. Amazon Connectコンソールを開きます。
  2. 使用したいインスタンスエイリアスを選択してください。
  3. 左側のナビゲーションで、データストレージを選択します。
  4. データストレージセクションに、以下に示すような情報があります。

CloudFormationテンプレートを使用するには

  1. AWSマネジメントコンソールを開きます。
  2. CloudFormationテンプレートを開きます。 これでCloudFormationコンソールが開きます。
  3. テンプレートの選択ページで、 次へを選択します。
  4. 詳細の指定ページで、パラメーターのセクションの説明に従って、すべてのパラメーターの値を変更します。
  5. 次へを選択してから、オプションページではすべての値を変更せずに、次へを選択します。
  6. 確認ページで、IAMロールの作成に関する警告を確認し、チェックボックスをオンにしてAWS CloudFormationがIAMリソースを作成する可能性があることを確認します。
  7. 作成を選択します。
  8. 状況がCREATE_IN_PROGRESSからCREATE_COMPLETEに更新されるのを待ちます。 デプロイが完了したら、次のセクション、”デプロイを変更する”に進みます。

デプロイを変更する

土台が作成されました。この構成が動作するためには、いくつかの変更を加える必要があります。 作成したIAMロールを変更し、S3バケットにイベントトリガーを追加し、スケジュールされたレポートを実行するようにAmazon Connectを設定します。

IAMロールを変更するには

  1. CloudFormationコンソールを開きます。
  2. ConnectReportsDistributorという名前のスタックを選択します。
  3. スタックの詳細ページで、出力セクションを展開します。
  4. IAMの値をコピーします。
  5. ブラウザの新しいタブでIAMコンソールを開きます。
  6. 左側のナビゲーションペインで、ロールを選択します。
  7. 検索ボックスに、コピーしたIAMの値を貼り付けます。 ロールのリストを絞り込みます。
  8. ロール名をクリックします。
  9. ConnectReportsDistributor インラインポリシーを展開します。
  10. ポリシーの編集を選択します。
  11. JSONタブを選択します。
  12. 22行目の replacewithyourbucket をご自分のバケット名に置き換えます。次の図のようになります。
  13. ポリシーの確認を選択します。
  14. 変更の保存を選択します 。

S3イベントを設定する

これでロールに正しいS3バケットからファイルを取得する権限が付与されました。そのバケットでイベントを設定する必要があります。 このイベントは、新しいオブジェクトがバケットに保存されたときにトリガーされ、レポートを送信するLambda関数を実行します。

次に、そのイベントを作成しましょう。

  1. S3コンソールを開きます。
  2. S3コンソールで、自分のバケットを見つけて、 バケット名を選択します 。
  3. バケットの詳細ページで、プロパティタブを選択します 。
  4. 詳細設定セクションまでスクロールして、Events を選択します。
  5. Eventsウィンドウで、通知の追加を選択します。
  6. 通知にNewReportEventなどの名前を付けます。
  7. イベントセクションで、PUTボックスを選択します。
  8. 他のチェックボックスはすべてオフのままにします。
  9. 送信先セクションで、Lambda関数を選択します。
  10. Lambdaドロップダウンメニューで、 ConnectReportsDistributorで始まる関数を選択します。
  11. 保存を選択します 。

これですべての設定が完了しました。レポートが出力されると、レポートが処理されるようになりました。 最後にすべきことは、レポート作成のスケジュール設定です。

レポートをスケジュールする

レポートをスケジュールするには、まずレポートを作成して保存します。 Amazon Connectでレポートを作成して保存したことがない場合は、ユーザーガイドの履歴メトリクスレポートセクションに詳細な手順があります。 レポートをスケジュールするときは、必ずプレフィックスを設定することが重要です。 これにより、Lambda関数はレポートの送信先を識別できます。

レポートをスケジュールするには

  1. 管理者アカウント、またはレポートを作成およびスケジュールする権限を持つアカウントを使用して、インスタンスにログインします。
  2. 左側のナビゲーションペインで、メトリクスおよび品質、保存されたレポートに移動します。
  3. 履歴メトリクスを選択します 。
  4. スケジュールしたいレポートを含む行の上にカーソルを置きます。 レポート名の右側に表示される時計アイコンを選択します。
  5. このレポートに繰り返しを設定します。 以下の図に、一時間おきのレポートの例を示します。
  6. 配信オプションタブを選択します。
  7. プレフィックスボックスに、CloudFormationテンプレートを実行したときに指定したSearchKeyの値の1つ(SalesやServiceなど)を入力します。 レポートがS3バケットに保存されると、Lambda関数が起動されます。これは保存されたファイルの名前を調べて、それが検索キーのいずれかと一致するかどうかを確認します。 存在する場合、Lambda関数は正しいEメールの送信先を割り当てて、Eメールを送信します。 そうでない場合、Lambda関数は指定されたデフォルトのEメールアドレスにレポートを送信します。 ファイル名の例が、プレフィックスを含むように展開されていることがわかります。
  8. 作成を選択します 。

セットアップは完了です。 スケジュールされたレポートが生成されると、出力はS3バケットに保存されます。 これによりイベントが発生し、Lambda関数が呼び出され、最終的にレポートが添付されたEメールが適切な受信者に送信されます。

さらなる変更を加える

このソリューションは、拡張の際の土台になります。 Lambda関数は、2つの異なる送信先をフィルタし、3つ目をデフォルトの送信先にするように書かれています。 さらにグループまたはフィルタを追加する場合は、キー(検索条件)と受信者グループの環境変数を追加してから、送信先のアドレスを決定するifステートメントに、新しい受信者とフィルタを追加します。 たとえば、送信先アドレスが”contract@example.com”の”Contracts”グループを3番目のカテゴリとして追加するには、次の手順を実行します。

  1. AWS Lambdaコンソールを開きます。
  2. ConnectReportsDistributor-LambdaFunctionで始まるLambda関数を選択してください。
  3. 関数コードに、# Grab all of our environment variables and assign them to local vars のコメントを見つけてください。
  4. 次のtryセクションで、 group_2 = os.environ[‘key_2’]を見つけてください。
  5. その後の新しい行に、次のコードを追加します。group_3 = os.environ[‘key_3’]
  6. 次に、 recipient_2 = os.environ[‘recipient_2’]を見つけます。
  7. その後の新しい行に、次のコードを追加します。recipient_3 = os.environ[‘recipient_3’]
  8. # Then check it against our defined options で始まるコメントブロックを見つけます。
  9. コメントブロックの下で、 clean_group_2 = group_2.lower()を見つけます。
  10. その後の新しい行に、次のコードを追加します。clean_group_3 = group_3.lower()
  11. 次に、 elif clean_group_2 in sanitized_filename: を見つけます。
  12. recipient = recipient_2 の行の後に、新しい行 elif clean_group_3 in sanitized_filename: を追加します。
  13. その次に、新しいインデント行 recipient = recipient_3 を追加します。
  14. 環境変数セクションに移動します。
  15. 名前が key_3、値が Contracts の新しいキーを追加します。
  16. 名前が recipient_3、値が contract@example.com の別の新しいキーを追加します。
  17. 関数を保存します。

使用する新しいグループおよび送信先ごとに、適切に番号を増やしながら、このプロセスを繰り返します。 参考までに、この変更版のコードをダウンロードできます。

結論

このブログ記事では、スケジュールされたレポートをAmazon ConnectからEメールでユーザーに送信するように設定しました。 土台を作成するためにCloudFormationを、レポートを生成するためにAmazon Connectを、必要なセキュリティを提供するためにIAMロールを、実行をトリガーするためにS3イベントを、そしてEメールと添付ファイルを準備し送信するためのLambda関数を使いました。 この送信メカニズムは、優れたカスタマーサービスを提供するために、必要なデータを必要なときに、コンタクトセンターの管理者に提供します。

原文:https://aws.amazon.com/jp/blogs/contact-center/automatically-distribute-scheduled-reports-for-amazon-connect/

翻訳:プロフェッショナルサービス 川嶋俊貴 (kawatosh@)