前編はこちら
まだ前編を読めていない人はこちらからご覧ください!
https://qiita.com/hagiohagi/items/cef993105f653eab9603
後編ではLambdaの設定・Slack Appの設定・Amazon Connectの問い合わせフローの設定をしていきます!
LambdaとSlack Appの設定
・Lambda関数の作成
- AWSコンソールにログインし、サービスから「Lambda」を選択
- ポリシーのフィルターの設定で「AWSLambda_FullAccess」を選択
- 任意の名前と説明を記入
- 関数の作成は「一から作成」を選択し、任意の名前を記入
- ランタイムはPython3.8を選択し、ロールは先ほど作成したロールを選択
- 公開コードを利用するため以下のリンクを開く
- 緑の「Code」ボタンをクリックし、Download ZIPをクリック
- Lambdaの画面に戻り、「アップロード元」をクリックし.zipファイルを選択
- 先ほどダウンロードしたzipファイルをアップロードする
- ドラッグ&ドロップで以下のファイルの位置を関数名の直下に移動させる
・certifi
・chardet
・inda
・requests
・urllib3
・lambda_function.py
・Slackに表示される文言を変更する
- AWSコンソールのLambdaのページで関数を選択し、コードの表示画面を開く
- Lambda_function.pyを開き、34行目の”通話の着信中”の文面を"営業時間外の時間帯に着信がありました"に変更する
・Slack Appの作成
- 以下のリンクからSlack apiを開く
https://api.slack.com/?_fsi=yHiAp51t
- 中央の「start building」をクリックし、アプリの名前とWorkspace(slackのチャンネルの場所)を入力しcreate appをクリック
・環境変数の設定
- Amazon Connectのホーム画面を開き、右上の電話のアイコンをクリック
- 表示されたウインドウのリンクをコピー
- AWS Lambdaの先ほど作成した関数を開き、「設定」→「環境変数」を選択
- キーの名前を「AMAZON_URL」、値にコピーしたリンクの名前を貼り付けて登録
- Slack apiで「Incoming Webhook」をクリックし 、「Webhook URL」の文字列をコピー
- (Webhook URLがない場合は「Add New Webhook to Workspace」を押してWorkspaceを登録)
- AWS Lambdaの先ほど作成した関数を開き、「設定」→「環境変数」を選択
- キーの名前を「SLACK_WEBHOOK」、値にWebhook URLの文字列を貼り付けて登録
- Slack(アプリ本体)を開き、botを通知させたいチャンネルを選び、右クリック
- リンクのコピーを選択して、コピーしたアドレスの後ろ11文字の文字列をコピー
- AWS Lambdaの先ほど作成した関数を開き、「設定」→「環境変数」を選択
- キーの名前を「SLACK_CHANNEL」、値にリンク名からコピーした文字列を貼り付けて登録
・Amazon ConnectにLambda関数を登録
- AWSコンソールでAmazon Connectを開く
- インスタンスエイリアス名をクリックして、概要の欄から「問い合わせフロー」をクリック
- AWS Lambdaの項目で作成したLambda関数を選択して「Add Lambda Function」をクリック
問い合わせフローの設定
・問い合わせフローの作成
- 左側アイコンの3つ矢印から問い合わせフローを選択、「コンタクトフローの作成」をクリック
- 「操作」から「プロンプトの再生」をフローにドラッグ&ドロップ
- 「設定」から「音声の設定」をフローにドラッグ&ドロップし、音声を「mizuki」に設定し、「save」をクリック
- 「ブランチ」から「オペレーション時間を確認する」をフローにドラッグ&ドロップし、パラメータに先ほど作成したオペレーション時間を設定し、「save」をクリック
- フロー上の「プロンプトの再生」をクリックテキスト読み上げ機能をチェックし、テキストの入力をチェックの上任意の文言(例:ただいま電話を繋いでおります/ただいまお電話に出ることができません)を設定し、「save」をクリック
- 「終了・転送」から「電話番号のへの転送」をフローにドラッグ&ドロップし、転送先の電話番号の記入、タイムアウトの秒数の記入、切断後に問い合わせフローを再開の所で「はい」を選択肢、「save」をクリック
- 「統合」から「AWS Lambda関数を呼び出す」をフローにドラッグ&ドロップし、関数を選択するにチェックを入れ、作成したLambda関数を選択し、「save」をクリック
- 以下の図の通りになるように矢印を結ぶ (※プロンプトは営業時間内の場合と営業時間外の場合の2つを用意する)
- 「保存」の隣の▼をクリックし「保存して発行」をクリック
・フローと電話番号を結びつける
- 左の矢印3つのアイコンから電話番号をクリックし、表示された画面から該当の電話番号をクリック
- 問い合わせフローに先程作成したフローの名前を選択する
完成したので試してみる
設定した営業時間の外のタイミングで、Amazon Connectで登録した電話番号に電話してみる。
設定の通りの音声プロンプトが流れた後、このような通知がSlackのチャンネルに届けば成功です!
最後に
本当に最後までオープンソースの情報だけでなんとかやりくり抜いた感じなので、
これからLambda関数についてより学習し、もっと柔軟に要件に応えられるようにしていきたいです!