Amazon Connect で顧客の DTMF 入力内容を指定のメールアドレスに転送する方法

2022.06.10

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

困っていた内容

Amazon Connect にて問い合わせブロックの「顧客の入力を保存する」などで取得した情報を指定のメールアドレスのメール本文に転送することは可能でしょうか。

こちら実現するための方法について教えて下さい。

どう対応すればいいの?

Amazon Connect の問い合わせフローに、「AWS Lambda 関数を呼び出す」ブロックを追加して、Lambda関数の処理により顧客からの DTMF 入力内容を指定のメールアドレスに転送する方法が一例として考えられます。

設定方法例

一例として以下の構成図にある AWS サービスを用いて、検証をしていきたいと思います。

なお、今回の検証では 顧客が DTMF で入力する内容を「生年月日(例: 1990年8月15日 → 19900815)」とした想定で行います。

この入力内容を Amazon Connect の問い合わせフローの「AWS Lambda 関数を呼び出す」ブロックで設定した Lambda 関数を介して、SNS(トピック) にて指定したメールアドレスに転送する想定で行います。

事前設定

Amazon Connect の問い合わせフローで使用する Lambda 関数の作成、Lambda 関数が SNS(トピック) へメッセージを発行するための IAM ロールの設定、および作成した Lambda 関数の Amazon Connect への登録設定について記載します。

Lambda 関数例

import json
import boto3

client = boto3.client('sns')

def lambda_handler(event, context):

    # SNS トピックで指定したメールアドレスに対して、顧客の DTMF の入力内容を転送する
    TOPIC_ARN = 'arn:aws:sns:ap-northeast-1:123456789012:TestSNS'
    msg = event['Details']['Parameters']['input1']
    subject = 'Test-AmazonConnect-Lambda-SNS'

    response = client.publish (
        TopicArn = TOPIC_ARN,
        Message = msg,
        Subject = subject
    )

    return {
        'statusCode': 200,
        'body': json.dumps('Success - Forwarded to the specified email address by the Lambda function!')
    }

IAM ロールの設定例

Lambda 関数から SNS(トピック)へメッセージを発行するための IAM ポリシーを Lambda 関数の実行ロールに設定します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "sns:Publish"
            ],
            "Resource": [
                "arn:aws:sns:*:123456789012:*",
            ]
        }
    ]
}

Amazon Connect インスタンスに Lambda 関数を追加

Amazon Connect の問い合わせフローに、「AWS Lambda 関数を呼び出す」ブロックを追加して、Lambda 関数を呼び出す際は、事前に Amazon Connect インスタンスにて、使用する Lambda 関数を追加する設定を行ってください。

問い合わせフロー

問い合わせフローを以下のとおり設定しました。

顧客からの DTMF 入力内容を 「AWS Lambda 関数を呼び出す」ブロックを介して設定した Lambda 関数 に連携して終了するシンプルなフローとしています。

顧客の入力を保存する

「テキスト読み上げまたはチャットテキスト」 -> 「手動で設定する」で、今回の検証では下記のような案内を顧客に促す想定で作成します。

お電話ありがとうございます。
生年月日を入力してください。
例えば1990年8月15日の場合は、いちきゅうきゅうぜろ、ぜろはちいちごと入力してください。

AWS Lambda 関数を呼び出す

「関数を選択する」にて、先の説明で作成した Lambda 関数を選択してください。

また、関数入力パラメータ下記の通り設定します。

(設定方法の詳細については、下記ドキュメントをご参照ください。)

実行テスト

CCP を用いて実際に電話をかけてテストします。

  • 数値パッド(電話番号入力)

  • 接続中

  • 接続済み

  • 数値パッド(案内の音声が流れるので、音声案内に従って生年月日を入力する)

  • アフターコールワーク(電話終了)

  • メール転送確認

Amazon Connect -> Lambda -> SNS(トピック) -> 指定のメールアドレス にて、DTMF 入力した8桁の生年月日の内容について確認できました。

参考資料