[アップデート]Amazon Connectで大量のアウトバウンド通信機能がパブリックプレビューされたので試してみる

コンサルティングの洲崎です!Amazon Connectで大量のアウトバウンド通信機能がパブリックプレビューされたので試してみました。
2022.06.06

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

5/31にAmazon Connectで大量のアウトバウンド通信機能がパブリックプレビューされました!
早速試してみたいと思います。

大量のアウトバウンド通信機能とは

大量のアウトバウンド通信機能とは、その名の通り大量に自動でアウトバウンド通信する機能になります。
電話やテキスト等を発信し、顧客に迅速にサービスを提供することができます。
ユースケースとしては予約のリマインダーや、債権回収等、リストがあって大量に連絡をとりたい場合です。

注意事項

2022/6/6現在、利用できるリージョンは米国東部(バージニア北部)、米国西部(オレゴン)、ヨーロッパ(ロンドン)、およびアジア太平洋西部(シドニー)になります。
オーストラリアまたはニュージーランドの電話番号に電話をかける場合は事前にAWSサポートに申請が必要です。(ドキュメントより抜粋)

Note : Before you call your customers either in Australia or New Zealand, you will need to

Open a Support Ticket. Specify you want to claim a phone number, to be used for high-volume outbound communications. Specify the country where your customers reside that you intend to call (e.g. Australia, New Zealand). If you have customers in multiple countries you intend to call, open separate Support tickets for each one. Use this number provisioned for your Campaign in the next step.

パブリックプレビューリリースの為、今後仕様が変更される可能性があります。

やってみる

下記AWSブログでソリューションが紹介されていたのでそれに沿って試してみます。
AmazonConnectの大量のアウトバウンド通信を使用して予測およびプログレッシブ通話を発信する
今回はバージニア北部リージョンのAmazon ConnectからオレゴンリージョンのAmazon Connectの電話番号に発信する形で試してみます。

ソリューションの概要

Amazon ConnectとAmazonPinpointを利用してキャンペーンを作成し、アウトバウンドコールを発信させます。
Amazon Connectの問い合わせフロー内の「通話の進捗を確認」ブロックを配置し、顧客が応答したのか、留守番電話なのか等を判断します。
また、リアルタイムイベントをCloudWatch Logsに書き込みます。

(参照:Amazon Connectの大量のアウトバウンド通信を使用して予測およびプログレッシブ通話を発信する)

コンタクトフローのインポートと設定

AWSソリューションブログにある連絡先フローをダウンロードします。
ファイル名:A-Outbound-Campaign-With-Contact-Attributes
Amazon Connectコンソールにログインし、DLしたjsonファイルをインポートし、保存して公開します。
フローの内容は下記です。

KMSの作成

AWSマネジメントコンソールのKMSに移動しキーを作成します。
キータイプは「対称」で他はそのままで作成します。

キーの名前(エイリアス)はamazon-connect-campaign-keyで作成します。

Amazon Connectインスタンスで大量のアウトバウンド通信を有効

AWSマネジメントコンソールのAmazon Connectに移動し、テレフォニーで「大量のアウトバウンド通信を有効にする」を有効化します。
KMSは先ほど作成したamazon-connect-campaign-keyを選択して保存をクリックします。

数分経つと、大量のアウトバウンド通信が有効化されました。

※KMSを変更する場合は、後述であるキャンペーンの設定を削除してから大量のアウトバウンド通信を無効化する必要があるので注意しましょう。

Amazon Connectインスタンスでキャンペーンを作成

Amazon Connectのセキュリティプロファイルで「大容量のアウトバウンド通信」の権限があるユーザーでAmazon Connectコンソールにログインします。
(Adminであればデフォルトで有効になっています)

ツールバーに新しく「大容量のアウトバウンド通信」項目があるのでクリックします。

右上の「キャンペーンを作成」をクリックします。

キャンペーンの名前を記載し、インポートした問い合わせフロー、デフォルトであるキューを選択します。

ダイヤラー構成で2種類選ぶことができるようになっています。
予測的はエージェントの対応時間が最大化になるよう予測しながら架電します。(おそらくエージェントがオフラインでもオンラインになりそうだったら架電する形だと思われます)
プログレッシブは応答できるエージェントがいたら発信します。
帯域幅割り当てはアウトバウンド通信を行う際のキュー内で利用するエージェントの割合になります。
今回はプログレッシブで、帯域幅割り当ては100%で設定します。

全て入力できたら右上の「保存」ボタンをクリックします。

Amazon PinPointのIAMロール作成

Amazon Connectで作成したキャンペーンにPinpointからアクセスする為にIAMロールを作成します。
IAM画面にいって、ツールバーからポリシーを選択しIAMポリシーを作成します。
JSONタブで以下のJSONを入力します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "kms:Decrypt",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "connect-campaigns:PutDialRequestBatch",
                "connect-campaigns:StartCampaign",
                "connect-campaigns:GetCampaignState*"
            ],
            "Resource": "arn:aws:connect-campaigns:${リージョン名}:${AWSアカウントID}:campaign/${キャンペーンID}"
        }
    ]
}

{キャンペーンID}の部分はAmazon Connectのキャンペーン画面のURLから取得するIDを入力するか、*で全てのキャンペーンを対象にできます。
あとは利用してるリージョンとAWSアカウントIDを置き換えて記載します。
次にIAMロールを作成します。
ロールの作成に移り、ユースケースをEC2で選択して次に進みます。

許可ポリシーに先ほど作成したポリシーを選択します。

”信頼関係”タブにいって”信頼ポリシーを編集”をクリックします。

JSONの”Service”のところをEC2からpinpointに記載を変更し更新します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "pinpoint.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

Amazon EventBridgeの設定

実行したログを残す為にEventBridgeからCloudWatch Logsに保存する設定をします。
EventBridgeを開きルールを作成します。
ルールタイプはイベントパターンを持つルールで作成していきます。

イベントソースはその他を選択し、イベントパターンは下記JSONを貼り付けます。

{ 
	"source": ["aws.connect"], 
	"detail-type": ["Amazon Connect Contact Event"], 
	"resources": ["インスタンスARN"]
}

インスタンスARNはAmazon Connectのインスタンス画面から取得可能です。
ターゲットはCloudWatch ロググループで作成します。

Amazon Pinpointの設定

AWSソリューションブログのStep7にあるサンプルセグメントのcsvファイルをダウンロードし、ファイルを開いて架電する電話番号で編集して保存します。
AWSマネジメントコンソールでAmazon Pinpointの画面にいき、プロジェクトを作成します。

ツールバーからセグメントを選択し、セグメントを作成をクリックします。

「セグメントのインポート」を選択し、ダウンロードしたcsvファイルをアップロードします。

次にツールバーから「ジャーニー」を選択し、ジャーニーを作成をクリックします。

エントリー条件の設定を押して、「セグメントから参加者を追加」から、先ほどアップロードした「outbound-sample-list」を選択して保存を押します。

右上の”レビュー”を押すと問題なければ左画面で準備完了です、と反映されます。

レビューしていいか?と警告が出るのでレビュー済みとチェックします。
その後パブリッシュしていいか?と出るのでパブリッシュボタンを押すと、特に開始時刻をセットしてなければ5分後にジャーニーが開始されます。

ジャーニーが始まると取り組んだリストに対して処理が進んでいきます。

CCPを立ち上げてAvailableにすると通話が開始されます。
Amazon Pinpointでは通話されたかどうかと、通話されなかった場合の理由を確認できます。

オレゴンリージョンのAmazon Connectの問い合わせの検索で、バージニアリージョンのAmazon Connectからかかってきた電話について確認ができます。

CloudWatch Logsの確認

最後に実行ログについて確認します。
CloudWatch Logsを開いて作成したLogグループをみると、各ログが溜まっていることが確認できます。

ログの各種イベント内容についてはソリューションブログの内容をご参照ください。

感想

ソリューションを通してAmazon Connectの大量アウトバウンド通信機能やAmazon Pinpointの設定方法に触れることができました。
個人的にはAmazon Pinpointを触ったことがなかったので勉強になりました。
日本リージョンはまだ対応していないので、対応されたら日本国内でも利用されるケースが増えそうな機能です。

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

参考

Make predictive and progressive calls using Amazon Connect high-volume outbound communications
Create a high-volume outbound campaign