[Amazon Connect]AWS公式の「Amazon Connect Tasks Enablement Workshop」をやってみた

コンサルティング部の洲崎です!「Amazon Connect Tasks Enablement Workshop」をやってみました
2022.07.07

Amazon Connect Tasksを調べていたら、AWSが出している「Amazon Connect Tasks Enablement Workshop」というのを見つけたのでやってみました!

Amazon Connect Tasksとは

Amazon Connect Tasksとは、Amazon Connectで利用できるタスク管理機能です。
2020年のre:Inventで発表された機能で、エージェント(オペレーター)のタスクをAmazon Connectで管理することができます。

今回のワークショップではAmazon Connect Chatも利用してシナリオベースで学ぶことができます。

Amazon Connect Tasks Enablement Workshop

ワークショップのシナリオ

シナリオは下記です。

お客様は契約を検討しているマンションの内見を依頼するために、不動産業者のエージェントとチャットを開始しました。
エージェントはマンションのオーナーの予定を確認後、お客様に内容をお伝えします。
チャットの終了後、お客様はエージェントの対応についてアンケートを取り、低いスコアで回答します。
自動でエージェントのマネージャーに評価結果が飛び、マネージャーは対応内容を確認します。

モジュールの概要

本ワークショップは2つのモジュールに分かれており、モジュール1では設定、モジュール2では動作の確認を行います。

  • モジュール 1 - Amazon Connect Tasks の設定
    • エージェントが Tasks を作成できるようにする
    • AWS Lambda によりサーベイのフォローアップ用Tasksを作成
  • モジュール 2 - 動作の確認
    • エージェントが Tasks を作成するテスト
    • サーベイが Tasks を作成するテスト

ワークショップ所要時間の目安は60分です。

ワークショップの構成図

構成図は下記となります。(Amazon Connect Tasks Enablement Workshopより参照)

Customer(お客様)がAmazon Connectに問い合わせすると、Agent(エージェント)がAmazon Connect Tasksを利用しつつ対応します。
やりとりが終わると、Amazon Lex ChatbotとAWS Lambdaを利用してお客様にアンケートを送付します。
他にメトリクスをAmazon CloudWatchで取得、Call RecoardingsはAmazon S3に格納したり、IAMで権限管理を行います。

やってみる

Aamazon Connectのセットアップ

※Amazon ConnectのセットアップではAmazon Connect Tasksの設定は行わず、基本的なAmazon Connectの設定を行います。
すでにご存知の方はAWSサービスとの連携に進んでください。
1から作成して理解していきたい方はこのままお進みください。

Amazon Connectインスタンスの作成・電話番号取得

Amazon Connectのインスタンス作成と電話番号を取得します。
私はすでに作成済みの環境を利用していた為、スキップしました。
これから作成される方は下記ブログを参照ください。

キューの作成

キューの作成を行います。
Amazon Connectコンソールにログインし、左のサイドメニューからキューを選択します。

下記名前のキューを作成します。
名前:CustomerServiceQueue
オペレーション時間はBasic Hoursを選択し、アウトバウンド発信者ID番号は取得している電話番号を選択します。

ルーティングプロファイルの作成

左のサイドメニューからルーティングプロファイルを選択します。
新しいプロファイルを追加、をクリックし、下記名前のルーティングプロファイルを作成します。
名前:CSR Routing Profile
説明:顧客サービス担当者のProfile
チャネルと同時実行を設定のところでは、音声とチャットにチェックを入れて、タスクの数は1と入力します。

下の方でルーティングプロファイルのキューと、デフォルトのアウトバウンドキューでは先ほど作成したCSR Routing Profileを選択します。

以上の設定ができたら右上の新しいプロファイルを追加ボタンをクリックします。

ユーザーの作成

左のサイドメニューからユーザー管理を選択します。
新しいユーザーを作成をクリックし、名、姓、ログイン名、パスワード、パスワードの確認を設定します。
ルーティングプロファイルは、CSR Routing Profileを選択し、セキュリティプロファイルはAgentAdminを選択します。

クイック接続の作成

エージェントからマネージャーや他のキューに転送できるようにする為にクイック接続を作成します。
左のサイドメニューからクイック接続を選択します。
新規追加をクリックし、ユーザーとCustomerServiceQueueに転送できるよう作成します。
ユーザーはタイプをエージェントで選択し、送信先は先ほど作成したユーザーを選択、問い合わせフローはDefault agent transferを選択します。
キューはタイプをキューで選択し、送信先は先ほど作成したキューを選択、 問い合わせフローはDefault queue transferを選択します。

それぞれ作成できたら、左のサイドメニューからキューを選択し、一覧からCustomerServiceQueueを選択します。
そのページの下にあるクイック接続(オプション)に先ほど作成したクイック接続を選択します。

問い合わせフローの作成

コンタクトフローを作成していきます。
左のサイドメニューから問い合わせフローを選択します。
左のメニューからブロックをドラック&ドロップで右に配置しつつ、矢印で線を繋いできます。
エントリポイントからログ記録動作の設定音声の設定プロンプトの再生作業キューの設定キューへ転送プロンプトの再生切断ブロックを置いていきます。

ブロックの中で、初めのプロンプトの再生は下記テキストを入力します。

音声の設定では、言語を日本語、音声をTakumi、発話スタイルはニューラル発話スタイルを選択します。

作業キューの設定で、作成したキューを選択します。

終わりのプロンプト再生には下記テキストを入力します。

問い合わせフローを作成したら、左のメニューから電話番号を選択します。
取得済みの電話番号に作成した問い合わせフローを設定します。

最後に作成したユーザーでログインし直して、設定済みの電話番号に電話をかけて着信テストをします。
これでAmazon Connectのセットアップが完了です。

AWSサービスとの連携

Amazon Connectインスタンスやシンプルな問い合わせフローを作成したので、次はAWSサービスと連携していきます。
具体的には問い合わせフローのインポートやCloudFormationを活用して、AWS LambdaやAmazon Lexなどの他のAWSサービスと統合・連携する方法を学んでいきます。

問い合わせフローのインポート

ワークショップの1. コンタクトフローのインポートで下記ファイルをダウンロードします。

  • task_Disconnect_Survey_j
  • task_SupQueue
  • task_main_j

ダウンロードができたら、Amazon Connectコンソールの左メニューから問い合わせフローを選択します。
問い合わせフロー作成をクリックし、右上の▼ボタンからフローのインポートをクリックし、ダウンロードしたファイルをアップロードします。

警告が出るケースもありますが、インポートできたらそのまま保存します。

全てインポートが終わったら、task_SupQueueフローを開き、左上の追加のフロー情報の表示をクリックします。
下図の赤色で線を引いているインスタンスIDと、水色で線を引いているコンタクトフローIDをメモしておきます。(一部マスキングしています)

CloudFormationによるリソースのデプロイ

CloudFormationでAWS Lambda関数とIAMロールを作成していきます。

  • AWS Lambda 関数
    • Amazon Connect でタスクを作成する機能
  • IAM ロール
    • Lambda で Amazon Connect にタスクを作成するためのロール
    • Lambda で CloudWatch にログを作成するためのロール

ワークショップの2. CloudFormation によるリソースのデプロイの真ん中ら辺にTasks_Workshop_CFT.ymlボタンがあるので押してダウンロードします。
CloudFormationのページを開いて、右上でスタックの作成から既存のリソースを使用(リソースをインポート)をクリックします。

スタックの詳細を指定のところで下記記載していきます。
スタックの名前:スタックの名前を入力します。(わかりやすい名前でOKです)

AmazonConnectCallFlowIDは、メモしたtask_SupQueueのコンタクトフローIDを入力します。
AmazonConnectInstanceIDは、メモしたtask_SupQueueのインスタンスIDを入力します。
AmazonConnectInstanceURLは、Amazon Connect設定画面のFQDNを入力します。
(URLがhttps://.awsapps.comの場合、URLはhttps://.awsapps.com/connectを入力します。URLがhttps://.my.connect.awsの場合は、URLをそのまま入力します)

スタックの作成をクリックし、スタックのステータスがCREATE_COMPLETEと表示されたら完了です。

エージェントのフォローアップの為のTasks作成

お客様にアンケートをとって、ネガティブなフィードバックが上がった場合は自動でマネージャーに通知がいくための構築を行います。
先ほど構築したCloudFormationでLambda関数とIAMロールが作成されているので、追加でAmazon Lexのボットを用意します。
AWSマネジメントコンソールでAmazon Lexを開き、アクション→インポートを選択します。
ワークショップの3a. CloudFormation を使用した手順にあるSurveyOutput-DRAFT-LexJson.zipをダウンロードし、ダウンロードしたZipをアップロードします。
下記設定を行い、その他はデフォルトで進めていきます。

  • ボット名:SurveyOutput
  • 入力ファイル:ファイルを参照から先ほどのzipファイルを選択します
  • IAMアクセス許可:基本的なAmazon Lex権限を持つロールを作成します。を選択します
  • 児童オンラインプライバシー保護法 (COPPA) : いいえを選択します


インポートをして、ステータスがAvailableなことを確認します。

左のメニューからインテントを開き、右下にある構築ボタンをクリックします。

構築できたら、左のボットのバージョンから、バージョンを作成をクリックします。

バージョンが作成できたら、左のエイリアスの作成画面で、先ほど作成したバージョン1を選択します。

以上で、Amazon Lexの設定は完了です。

Amazon ConnectインスタンスにAmazon Lexを追加

作成したAmazon LexをAmazon Connectインスタンスに設定していきます。
マネジメントコンソールからAmazon Connectを開き、左の問い合わせフローをクリックします。
Amazon Lexのところで作成したリージョンと作成したボット、作成したエイリアスを選択します。

AWS Lambdaの部分に作成されているCreateTaskViaAPIを選択します。

Amazon Connectコンソールの問い合わせフロー設定のページに飛び、作成したAmazon Lexも追加していきます。
task_Disconnect_Survey_jフローの赤で囲ったブロックを作成したAmazon Lexのリソースに置き換えます。

フローの終盤にあるAWS Lambda関数を呼び出すブロックについても、作成したLambda関数に置き換えます。

置き換えたら右側の保存と公開ボタンをクリックします。

マネージャー用のキューの作成

ここまでで、問い合わせフローとお客様にアンケート送付までリクエストできるようになりました。
お客様がアンケートを回答するとLambda関数が呼び出されて、新しいTasksが作成されます。
このTasksが低い回答だった場合に、マネージャーが受信する為のキュー・ルーティングプロファイル・ユーザーを作成します。
それぞれの具体的な作成方法は上記で案内しているので割愛します。
ルーティングプロファイルについてはTasksのみ受け取るようにする為、それ以外の音声やチャットのチェックは外します。

それぞれのリソースの作成ができたら、準備している電話番号にtask_main_jフローを選択し、保存をクリックします。

これで準備は整いました。お疲れ様でした。

動作確認

設定がおわったのでいよいよ動作検証を始めていきます。
まずは、シナリオを復習します。

顧客がインバウンドの問い合わせ(チャットまたは電話)を開始し、エージェントに接続します。顧客はマンションの内見を依頼しており、それにはオーナーへの確認が必要です。この確認が完了し、オーナーの回答を顧客に通知するために、エージェントは2つの Tasksを作成します。
- オーナーに内見の承諾を得る
- オーナーからの回答を顧客に通知する
最初のTasksはエージェント自身に割り当てられ、2 番目の Tasks は空いているエージェントが作業できるようにキューに割り当てられます。
顧客とエージェントの対話が終了すると、顧客にアンケートの回答が依頼されます。もし顧客が悪い結果(5段階中1、2、3)を選択した場合、Tasksが作成されてマネージャーに送られます

上記シナリオについて、チャットでテストを行ってみます。

Amazon Connectのコンソールを開き、チャットをテストをクリックします。
テスト設定が開くので、問い合わせフローにtask_main_jを設定します。

チャットのテスト画面に入り、左は顧客、右はオペレーターでチャットの動作確認を行うことができます。
右のオペレーターがチャットを受け入れる、というボタンを押すとチャットが始まります。

何回かやり取りをして、右のオペレーターからチャットを終了ボタンをクリックします。

すると自動で顧客側に「アンケートにご協力いただけますか?」とメッセージが入ります。
「はい」と入力すると、BOTで「アンケートのご協力について、5段階評価でお答えください」といったメッセージを送ります。

今回は悪い評価結果とされる3を送ります。

その後、エージェントはタスクを作成ボタンでタスクを作成します。

タスク名や説明を書いて、キューに割り当てをして保存します。

同じキューを持っているエージェントがログインすると、先ほど作成したタスクを受信します。
(もし受信しない場合は1. チャットフローの動作確認の一番下にあるDefault agent transferフローをダウンロードして、Default agent transferを置き換えてみて下さい)

タスクを開くと、先ほど登録した内容を確認することができます。タスクを受け取ったエージェントは内容のタスクを遂行します。

次に、マネージャーのユーザーでログインします。
すると、QA Taskという名前でタスクが上がってきました。

承認を押すと、Bad Surveyと書かれたタスクと、リファレンスとして問い合わせ履歴が見れるURLが記載されています。

URLをクリックすると、先ほど対応したタスクの内容と、エージェントの名前、アンケート結果(今回は3)をみることができました!

マネージャーもエージェントに対してどういう通話のアンケート結果がよくなかったのか確認することができました。

ちなみにこの後、チャットではなく電話でもテストを行いました。
電話でも対応が終わるとアンケートの案内アナウンスが流れて、低評価(1~3)の番号をプッシュすると、同じくマネージャー権限でログインしてアンケート結果を見ることができました。

清掃

一通りテストが終わったので、リソースの削除を行います。
CloudFormationを開き、作成したスタックを削除します。

Amazon Lexに移動し、作成したLexボットを削除します。

終わりに

Amazon Connect Tasks Enablement Workshopを一通りやってみました!
Amazon Connect Tasksだけでなく、Amazon Connect ChatやAmazon Lexも活用するワークショップだったので楽しかったです。
Amazon Connect Tasksもただエージェントにタスクを割り振るだけでなく、アンケートで評価が低かった内容について、自動でマネージャーにエスカレーションして確認させる、といった運用もあることを学びました。
色々な場面でAmazon Connect Tasksを利用できるか考えてみようと思います。

また、今日はクラスメソッドの設立記念日(7/7)になります。
去年も同じくAmazon Connectの記事を書いていました。笑

引き続き、今年もAmazon Connectをはじめとした技術記事を書いていきます!

ではまた!コンサルティング部の洲崎でした。

参考