Building a contact survey solution for Amazon Connectというワークショップをやる – Amazon Connect アドベントカレンダー 2022

こんにちは!エンジニアの君島です。

このエントリは、Amazon Connect Advent Calendar 2022の4日目の記事です。

ギークフィードとクラスメソッドさんの有志が著者となっているアドベントカレンダーです。

本記事では、Building a contact survey solution for Amazon Connectというワークショップを実際にやってみました。

 

はじめに

1日目の記事でも紹介したAmazon Connectの学習リソースの中のワークショップ、Building a contact survey solution for Amazon Connectを実践してみました。

 

前提条件

ブラウザ

以下のブラウザで、最新の3バージョンがサポートされています。

  • GoogleChrome
  • Mozilla Firefox

Amazon Connect

  • インスタンスを作成していること
  • 番号を取得していること※

※日本の番号を取るのには各種書類を用意した申請が必要なので、予め用意しておきましょう。米国番号でもよければ、そちらをご利用ください

使用するサービス

  • Amazon Connect
  • AWS Lambda
  • Amazon DynamoDB
  • IAM

ゴール

構成図

ワークショップより参照。

 

Lambda関数の一覧

関数名 用途
surveyUtils コンタクトフロー内で呼ばれる関数で、ヘルパ関数です。getNextSurveyQuestionとvalidateInputという操作を実装しています。
getSurveryConfig コンタクトフロー内で呼ばれるLambda関数で、DynamoDBからsurveyIdをキーにレコードを取得します。
writeResults コンタクトフロー内で呼ばれるLambda関数で、顧客の回答をDynamoDBに書き込みます。

 

得られるもの

データストアとしてDyanamoDBを採用し、Lambdaで情報を取得したり、書き込んだりするといいったAmazon Connectの問い合わせフローの中でよくある連携サービスの使い方を学ぶことができます。

 

実際にやってみた

DynamoDBテーブル作成

テーブル一覧

テーブル名 用途
surveyConfig surveyの構成を格納
surveyResults surveyの結果を書き込み格納

 

surveyConfig

設定 備考
テーブル名 surveyConfig 値は任意の文字列でも構いません。
パーティションキー surveyId 型はString(文字列)
ソートキー 設定無し

その他はデフォルトのままでテーブル作成をします。

続いて、このテーブルの属性を追加してきましょう。この表がアンケートの構成を表していると言えます。シンプルなアンケート

値はJSONで表現されていましたので、以下に記載しておきます。

surveyResults

設定 備考
テーブル名 surveyResults 値は任意の文字列でも構いません。
パーティションキー contactId 型はString(文字列)
ソートキー 設定無し

その他はデフォルトのままでテーブル作成をします。

 

Lambdaの実行ロールの作成

DynamoDBとAmazon Connectに関するポリシーを作成します。

作成したポリシーとAWSLambdaBasicExecutionRoleというポリシーを持つ、contactSurveyLambdaRoleという名前のIAMロールを作成します。

 

Lambda関数の作成

getSurveryConfig、writeResults、surveyUtilsというLambda関数を作成します。

ワークショップにて用意されているLambda関数は、ランタイムはNode16.x、実行ロールは上記で作成したcontactSurveyLambdaRole、ソースコードはページに記載されているものを貼り付けて作成しましょう。

AWS Lambda 関数を Amazon Connect インスタンスに関連付ける

作成したLambda関数をAmazon Connectインスタンスに関連付けます。

 

問い合わせフローのモジュールの作成

ファイルが用意されているので、問い合わせフローのモジュールのインポートを行いましょう。

4か所のLambdaを設定する箇所があり、それぞれの箇所にLambda関数を設定しましょう。

詳細はワークショップを確認しましょう。

 

 

テスト

上で作ったモジュールだけでは、surveyConfigテーブルの"surveyId": "123456"を指定することができません。

このモジュールを含む問い合わせフローを作成し、その手前に、surveyId=123456のSet contact attributesブロックを作成して公開しておきます。

Channels > Phone numbersで入電可能な電話番号のContact flow/IVRに新たに作成した問い合わせフローを設定します。

入電可能な電話番号にかけてアンケートに回答していきましょう。

 

クリーンアップ

作成した以下のリソースは削除しておきましょう。

  • Amazon Connect
  • AWS Lambda
  • Amazon DynamoDB
  • IAM

 

まとめ

AWS公式のワークショップ、Building a contact survey solution for Amazon Connectを実践してみました。

コンタクトセンターシステムにおいて、Amazon Connectを単体のみで利用するケースは少なく何らかのサービスと連携したり、取得したデータを保存し、活用します。

このワークショップではsurveyを例として、DyanamoDBとLambdaというAmazon Connectで良く使用する組み合わせ例を、問い合わせフローで動的に接続させて動作するアーキテクチャを実践することができました。

 

公式のワークショップではAmazon Quicksightを用いたワークショップを続編としていましたが、Lambdaを書き換えて別の情報を取得したり、問い合わせフローを切り替えるということをするとAmazon Connectについての理解が進むと思います。

この記事が気に入ったら
いいね ! しよう

Twitter で
The following two tabs change content below.
君島翔
君島翔
AI事業部事業部長株式会社ギークフィード
Java, .NET系の言語が得意。Laravelも使います。 エディタはvim派。 自分が楽するためにテストやビルド、デプロイを自動化させたい。 2022-2023 AWS Ambassador / 2022-2023 Japan AWS Top Engineer / 2022-2023 Japan AWS ALL Certifications Engineer

【採用情報】一緒に働く仲間を募集しています

採用情報
ページトップへ