Upgrade to Pro — share decks privately, control downloads, hide ads and more …

普通のやり方だとできない!?💦 Amazon Connect x Lambdaのレア?な連携の...

普通のやり方だとできない!?💦 Amazon Connect x Lambdaのレア?な連携のご紹介!

AWS Jr.Champions登壇資料。Amazon ConnectとLambdaの連携方法のユースケースを紹介。

Avatar for toyo-da01

toyo-da01

July 26, 2024
Tweet

More Decks by toyo-da01

Other Decks in Technology

Transcript

  1. / /7 ―― Amazon Connect とは? ―― 2 ~ ~

    AWSのコンタクトセンターサービスであり、 コンタクトセンターシステムや自動受付システムを構築・運用できる 終了 ~ ~ シンプルなUIで電話の転送フローを構築できる!
  2. / /7 ―― Amazon Connect x Lambda ―― 3 Amazon

    Connectはコンタクトフローの内容をLambdaに渡す+返却することができる ユースケース:特定の顧客番号や特定のIVRから来た場合はXXの対応をする Lambdaに渡される情報 ~ ~ {“Details”:{ "ContactData": { "CustomerEndpoint":{ "Address": "+81XXXX“ }, “Attributes":{ "service": “A", "call_counter": 0 } } } } ※一部抜粋 Lambdaからの返却情報
  3. / /7 ―― Main!!!特殊なケースのTips紹介! ―― 4 Amazon Connectは内線転送のほかに、外線転送の機能もある ユースケース:一次受付のセンタからエスカレーション先の二次受付に連絡をする 監視オペレータ(一次措置)

    日中 夜間 スペシャリスト(二次措置) ① ②… 24時間365日体制 ① ②… 外線転送/IVR/Lambdaを使って、 サービスやアラーム種類ごとに適切なスペシャリストに引継
  4. / /7 ―― Main!!!特殊なケースのTips紹介! ―― 4 Amazon Connectは内線転送のほかに、外線転送の機能もある ユースケース:一次受付のセンタからエスカレーション先の二次受付に連絡をする ~

    ~ DynamoDBからの転送番号取得 ivr (プライマリーキー) String List (転送番号) 1 (Aサービス) 担当者A、担当者B 2 (Bサービス) 担当者C、担当者D
  5. / /7 ―― Main!!!特殊なケースのTips紹介! ―― 5 下記の要件だと少し工夫が必要、、 ① オペレータとエスカレーション先がどのくらいの通話時間であったかをDBに登録 ②

    Slackなどのコミュニケーションツールに誰が応対したかを記録に残したい ⇒ Lambdaの連携が必要で先ほど通り、素直にやればいいのでは、、?? ~ ~ 架電側が切断するとフロー自体が終了してしまう
  6. / /7 • 架電者側から切断しないように徹底周知! • CTR(問い合わせレコードデータモデル) のKinesis Data Firehose連携 •

    事前キックLambdaのCloudWatch Logsへの 出力によるサブスクリプションフィルターでLambdaをキック • 事前キックしたLambdaからのSQSにキューを入れて、Lambdaをキック ―― 対策(あくまで一例です!) ―― 6 ※苦労したこと:キューの削除APIのprefixは”delete”だけでなく、”purge”もある! 恒久対応としてはあるべき姿ではない ①の通話時間確認はできるが、②のSlack応答にLambdaでキャンセルができない、、 ①も実施ができ、②のSlack応答のLambdaを遅延キュー間でLambdaキックをキャンセルできる
  7. / /7 ―― まとめ ―― 7 ✓ Amazon Connectの基本的なLambda連携でベーシックなデータの受け渡し可 •

    ContactData配下に情報があり、自身で設定した値はAttributeで参照できる ✓ 外線転送後のLambdaキックは、コンタクトフローだけだとキックされない事象あり • 利用したいユースケースによるが、CTR/CloudWatch Logs/SQSのサービスと連携して対応方法をご紹介 ✓ SQSのキュー削除APIのプレフィックスは、”delete”だけでなく、”purge”もありました • 先入観でdeleteしか調べず、複数人でAPI一覧をチェックする大事さを認識できました、、! ※deleteはargで各キューの一意な値を入れる必要あり ⇒DelaySecondsを指定した場合はまだ出力されないので、purgeで一括削除だと対応できる