概要
AmazonConnectでは問い合わせフロー内でLambda関数を呼び出すことができます。
また、Lambda関数を呼び出す際にはJSONリクエストをやり取りしており、これを利用することで条件分岐などが可能になります。
紐づけ
問い合わせフローから直接ARNを指定して呼び出すことも可能ですが、前もってマネジメントコンソールからインスタンス情報にアクセスし、「問い合わせフロー」からLambda関数を登録できます。
こうすれば、Lambda関数を呼び出す際、プルダウンで登録した関数が一覧で出てくるので選びやすいです。
問い合わせフロー内での操作
AmazonConnectからLambda関数を呼び出す際、以下のようなJSONリクエストがLambda関数に引き渡されます。
Lambda関数の戻り値は”Attributes”にJSON形式で格納され、AmazonConnectに渡されます。
{
"Details": {
"ContactData": {
"Attributes": {"ここに":"Lambda関数の値"},
"Channel": "VOICE",
"ContactId": "4a573372-1f28-4e26-b97b-XXXXXXXXXXX",
"CustomerEndpoint": {
"Address": "+1234567890",
"Type": "TELEPHONE_NUMBER"
},
"InitialContactId": "4a573372-1f28-4e26-b97b-XXXXXXXXXXX",
"InitiationMethod": "INBOUND | OUTBOUND | TRANSFER | CALLBACK",
"InstanceARN": "arn:aws:connect:aws-region:1234567890:instance/c8c0e68d-2200-4265-82c0-XXXXXXXXXX",
"PreviousContactId": "4a573372-1f28-4e26-b97b-XXXXXXXXXXX",
"Queue": "QueueName",
"SystemEndpoint": {
"Address": "+1234567890",
"Type": "TELEPHONE_NUMBER"
}
},
"Parameters": {
"sentAttributeKey": "sentAttributeValue"
}
},
"Name": "ContactFlowEvent"
}
Lambda関数に値を渡すとき
Lambda関数に値を渡すときは以下の順でブロックを並べます。
ここで設定した属性はLambda関数で
event["Details"]["ContactData"]["Attributes"]["key"]
で参照できます。
Lambda関数から値を受け取るとき
Lambda関数の戻り値は問い合わせフロー内で「属性」として扱われます。また、タイプは「外部」として扱われます。
問い合わせフロー内で、属性を確認することで分岐ができます。
チェックする条件は、「別の条件の追加」から追加可能であり、「等しい」以外でも不等号などを選択できます。