Amazon Web Services ブログ
Amazon Connectで休日カレンダーを作成する
2022/10/17 追記
本ブログの CloudFormation テンプレートで作成される Lambda 関数は Node.js 12 のランタイムで立ち上がりますが、Node.js 12 の Lambda 関数は 2022/11/14 に新規作成ができなくなります(ラインタイムの非推奨化に関するポリシー参照)。テンプレートをダウンロードして、CloudFormation テンプレート内の Lambdareadholiday
の Runtime
を nodejs16.x
に変更してご利用ください。
Lambdareadholiday:
Type: 'AWS::Serverless::Function'
DependsOn: RootRolereadholiday
Properties:
FunctionName: readholiday
Handler: index.handler
Runtime: nodejs16.x
————————————-
休日では、ビジネスニーズに基づいてコンタクトセンターで異なるカスタマーサービスのメカニズムが展開されます。電話が多くかかってくることにより営業時間を延長したい場合もあれば、人員が限られるために営業時間を短縮したり、営業しないようにしたい場合もあります。どちらのシナリオでも、コンタクトセンターのマネージャーがユーザーへの影響を及ぼすことなく、セルフサービスのロジックまたは営業時間を更新できる柔軟で簡単な方法を提供することが重要となります。
Amazon Connect の利点の 1 つは、リアルタイムで変更を行い、これらの変更がコンタクトセンターに与える影響を最小限に抑えるためにお客様に提供できる俊敏性です。休日カレンダーを実装することで、コンタクトセンターは新しい営業時間やセルフサービスのロジックを顧客に知らせることができます。また、事前に定義された時間帯に異なるアナウンスを行うこともできます。
このブログ記事では、AWS CloudFormation、AWS Lambda、および Amazon DynamoDB を活用して、Amazon Connect 内で休日カレンダー機能を作成します。これにより、コンタクトセンターのマネージャーは Amazon Connect の問い合わせフローを最小限の中断で更新できます。
ソリューション概要
前述のアーキテクチャでは、顧客はコンタクトセンターに電話をかけます。Amazon Connect は、AWS Lambda 関数の実行を通じて日付をチェックします。次に、Lambda 関数は Amazon DynamoDB の「Holiday Table」をクエリし、日付が休日リストの日付と一致しているかどうかを判断します。一致する場合、Lambda 関数は関連する値を持つ以下の変数を Amazon Connect の問い合わせフローに渡します。
- publicHolliday (true か falseのいずれか)
- holidayName (もし設定されていれば、休日の名前)
ウォークスルー
前提
このウォークスルーでは、以下の前提があります。
- AWSアカウント
- Amazon Connect のインスタンス
- AWS CloudFormation の基本的な理解
- Amazon DynamoDB の基本的な理解
- AWS Lambda の基本的な理解
AWS CloudFormation を用いてAWS Lambda 関数を作成する
AWS CloudFormation を使用して、必要な Identity and Access Management (IAM) ロール、「Holidays」という Amazon DynamoDB テーブル、および Holidays DynamoDB テーブルに対して日付をチェックするために使用される AWS Lambda 関数(readholiday)を作成します。
- AWS マネジメントコンソールにログインします
- AWS リージョンが、Amazon Connect が利用可能なリージョンであることを確認します
- 以下の “Launch Stack” ボタンをクリックし、「Holiday」というスタックを作成します
- AWS CloudFormation にて、もし違う名前が良い場合はスタック名を変更します
- セキュリティのベストプラクティスに沿うために、Connect Instance Id を自身のAmazon Connect インスタンスIDに変更します。しかし、もしこのCloudFormation スタックを複数の Amazon Connect インスタンスにデプロイする場合は、この値を「*」にします
- テーブル名 (TableName) もカスタマイズできるパラメータです
- もしテーブル名を変更したら、このブログで Holiday テーブルを指し示すテキストも合わせて変更する必要があります
- Date Format ドロップダウンリストは readHoliday Lambda 関数がサポートする日付フォーマットのリストを提供します
- Time Zone パラメータは存在する IANA タイムゾーンです
- Connect インスタンスのインスタンスID を確認するために、Overview に遷移します
- Overview にはインスタンスの ARN があります。instance/ に続く36文字をコピーします
- 3つすべてのチェックボックスを選択し、Create stack をクリックします
Amazon Connect に AWS Lambda 関数の実行権限を与える
Amazon Connect インスタンスが先に作成した AWS Lambda 関数を呼び出す権限を与えるために以下のステップを踏みます。追加の情報として、Amazon Connect 管理者ガイドを参照してください。
- Amazon Connect のコンソールにて、Contact flows を選択し、ページを一番下にある AWS Lambda セクションまでスクロールします
- 以下のスクリーンショットのように、関数のドロップダウンメニューで readHoliday 関数を選択し、+Add AWS Lambda Function をクリックします
Amazon Connect の問い合わせフローをインポートし、設定する
- Holiday という問い合わせフローをダウンロードします
- Amazon Connect コンソールにログインします
- Amazon Connect コンソールの左ペインにて、Routing → Contact flow を選択します
- 右上にある Create contact flow ボタンをクリックします
- 右上にあるドロップダウンをクリックし、Import Flow を選択します
- Select ボタンをクリックし、ステップ1 でダウンロードした Holiday ファイルを選択します
- 1つ目の Invoke AWS Lambda function のヘッダーをクリックし、ドロップダウンリストから Holiday AWS Lambda関数を選択するか、AWS Lambda関数の ARN を入力します
- 問い合わせフローを Save してから Publish します
DynamoDBの Holidays テーブルを更新する
このAWS Database ブログにあるバルクアップロード方法を使って DynamoDBテーブルに直接独自のデータをアップロードすることもできます。
代わりに、もしDynamoDBで直接データを編集したい場合は、以下のステップを踏みます。
- CloudFormationテンプレートを使ったのと同じリージョンで DynamoDB を開きます
- 左のナビゲーションメニューから Table を選択します
- Holidays テーブルを選択します
- Items タブを選択します
- Create Item ボタンを選択します
- FullDate アイテムで休日の値を入力します。これはスタックをデプロイしたときに選択したフォーマットである必要があります。デフォルトでは DDMMYYYY です (スラッシュやハイフン無し)
- オプションとして、クリスマスのような休日名を加えるためには、 + 記号をクリックし、Append を選択、さらにString を選択します。
- フィールド名を HolidayName とし、値を入力して保存します
ソリューションをテストする
Amazon Connect コンソールの左画面で Routing → Phone Numbers を選択します。
電話番号をクリックし、 Contact flow / IVR のドロップダウンリストから Holiday を選択して保存します。
DynamoDB コンソールで Holiday テーブルを選択して Create Item ボタンをクリックします。
CloudFormationテンプレートをデプロイしたときに選択したフォーマットで今日の日付を入力します。
オプションで休日の名前を入力します。
休日のエントリーを保存します。
先に記述した電話番号に電話して休日アナウンスが聞こえるか確認します。(注釈: ダウンロードした問い合わせフローをそのまま使うと英語のメッセージが読み上げられます)
まとめ
このブログ記事では、Amazon Connect の問い合わせフローで休日を知らせる簡易なソリューションを実装しました。このソリューションは以下の機能を提供しました。
- 休日を判定するAmazon Connect のインバウンド問い合わせフロー
- DynamoDBテーブルのデータを参照するLambda関数
- 必要な休日を追加するために更新できるDynamoDBテーブル
これは休日のエントリーを作成する方法を示すためのベーシックなデモです。必要な要件に応じて異なるシナリオを追加してソリューションを拡張することができます。
原文: https://aws.amazon.com/jp/blogs/contact-center/create-a-holiday-calendar-in-amazon-connect/
翻訳: ソリューションアーキテクト 松本 和久