【Amazon Connect】顧客の入力を属性として保存し、AWS Lambda にパラメータとして渡す方法
はじめに
こんにちは、フニです。
本記事では、Amazon Connect フローで顧客の入力を属性として保存し、AWS Lambda にパラメータとして渡す方法について解説します。
検証フローの全体像
今回検証に利用したフローの全体像です。
顧客から3つの項目を番号入力してもらい、AWS Lambda 側にパラメータが渡されているか確認します。

やってみた
前提
- AWS Lambda は Python 3.14 を利用します
1. 顧客の入力をコンタクト属性として保存する

- ①:電話番号
- ②:希望配送日
- ③:希望本数
上記3つの項目を顧客から入力してもらい、それをコンタクト属性として保存します。
コンタクト属性の設定ブロックを配置し、$.StoredCustomerInputをそれぞれの Key に保存します。
属性は、$.Attributes.<Key> の形で保存されます。

2. AWS Lambda 側にパラメータとして渡す


画像のように、$.Attributes.<Key> の属性をパラメータとして登録します。
Lambda のコードは、以下のサンプルコードを利用しました。
import json
def lambda_handler(event, context):
# Amazon Connect から渡された内容全体をログに出力(デバッグ用)
print("Received event:", json.dumps(event, ensure_ascii=False))
# フローの LambdaInvocationAttributes で設定したカスタムパラメータは
# event["Details"]["Parameters"] の下に入ってくる
params = event["Details"]["Parameters"]
tel = params.get("tel")
delivery_date = params.get("deliverydate")
delivery_pieces = params.get("deliverypieces")
# 受け取った各値を CloudWatch Logs に出力
print(f"電話番号 (tel): {tel}")
print(f"配送希望日 (deliverydate): {delivery_date}")
print(f"希望本数 (deliverypieces): {delivery_pieces}")
# フロー側の ResponseValidation は STRING_MAP なので
# 値がすべて文字列のフラットな辞書を返す
return {
"tel": tel,
"deliverydate": delivery_date,
"deliverypieces": delivery_pieces,
}
結果
今回は、各アナウンスに対して以下のように入力しました。
①:電話番号を入力してください。(入力した値:09012345678)
②:配送希望日を入力してください。(入力した値:0730)
③:ご希望の配送本数を教えてください。(入力した値:5)
CloudWatch Logs で Lambda のログを確認したら、問題なくパラメータが渡されていることがわかります。

さいごに
今回は Amazon Connect フローで顧客の入力を属性として保存し、AWS Lambda にパラメータとして渡す方法について解説しました。
複数の属性を AWS Lambda に渡したいというケースもあるかと思いますが、フローブロックで解決できますのでぜひ試してみてください。
この記事が、誰かの助けになれば幸いです。







