2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【AmazonConnect】Lambdaを利用して受付時間外の電話着信をSlackに通知させてみた(後編)

Last updated at Posted at 2021-05-07

前編はこちら

まだ前編を読めていない人はこちらからご覧ください! [https://qiita.com/hagiohagi/items/cef993105f653eab9603](https://qiita.com/hagiohagi/items/cef993105f653eab9603)

後編ではLambdaの設定・Slack Appの設定・Amazon Connectの問い合わせフローの設定をしていきます!

LambdaとSlack Appの設定

・Lambda関数の作成

1. AWSコンソールにログインし、サービスから「Lambda」を選択 2. ポリシーのフィルターの設定で「AWSLambda_FullAccess」を選択 3. 任意の名前と説明を記入 4. 関数の作成は「一から作成」を選択し、任意の名前を記入 5. ランタイムはPython3.8を選択し、ロールは先ほど作成したロールを選択 6. 公開コードを利用するため以下のリンクを開く

https://github.com/hackjapan/amazonconnect_slack

7. 緑の「Code」ボタンをクリックし、Download ZIPをクリック 8. Lambdaの画面に戻り、「アップロード元」をクリックし.zipファイルを選択 9. 先ほどダウンロードしたzipファイルをアップロードする 10. ドラッグ&ドロップで以下のファイルの位置を関数名の直下に移動させる

 ・certifi
 ・chardet
 ・inda
 ・requests
 ・urllib3
 ・lambda_function.py
accd24855a45722be250f617aa3058cf.png

・Slackに表示される文言を変更する

1. AWSコンソールのLambdaのページで関数を選択し、コードの表示画面を開く 2. Lambda_function.pyを開き、34行目の”通話の着信中”の文面を"営業時間外の時間帯に着信がありました"に変更する ![6758b67720a56d232359b8706b134dc9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678858/19607a17-e7fc-3e90-072e-26cc168b9d7d.png)

・Slack Appの作成

1. 以下のリンクからSlack apiを開く

https://api.slack.com/?_fsi=yHiAp51t

![10e702b5c08a02b7c6870e8302227799.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678858/bd16527c-60ca-e751-fffd-0be3e423f8c3.png) 2. 中央の「start building」をクリックし、アプリの名前とWorkspace(slackのチャンネルの場所)を入力しcreate appをクリック

・環境変数の設定

1. Amazon Connectのホーム画面を開き、右上の電話のアイコンをクリック 2. 表示されたウインドウのリンクをコピー 3. AWS Lambdaの先ほど作成した関数を開き、「設定」→「環境変数」を選択 4. キーの名前を「AMAZON_URL」、値にコピーしたリンクの名前を貼り付けて登録 5. Slack apiで「Incoming Webhook」をクリックし 、「Webhook URL」の文字列をコピー 6. (Webhook URLがない場合は「Add New Webhook to Workspace」を押してWorkspaceを登録) 7. AWS Lambdaの先ほど作成した関数を開き、「設定」→「環境変数」を選択 8. キーの名前を「SLACK_WEBHOOK」、値にWebhook URLの文字列を貼り付けて登録 9. Slack(アプリ本体)を開き、botを通知させたいチャンネルを選び、右クリック 10. リンクのコピーを選択して、コピーしたアドレスの後ろ11文字の文字列をコピー 11. AWS Lambdaの先ほど作成した関数を開き、「設定」→「環境変数」を選択 12. キーの名前を「SLACK_CHANNEL」、値にリンク名からコピーした文字列を貼り付けて登録 ![307520909a6b83731afb15d8a430c0d6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678858/47ecb32e-9442-8397-ef7a-7d48280885c8.png)

・Amazon ConnectにLambda関数を登録

1. AWSコンソールでAmazon Connectを開く 2. インスタンスエイリアス名をクリックして、概要の欄から「問い合わせフロー」をクリック 3. AWS Lambdaの項目で作成したLambda関数を選択して「Add Lambda Function」をクリック ![080c89b4eb67e42374adcd852d579f7d.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678858/58657047-b7bf-20f9-541b-355fd9b2e026.png)

問い合わせフローの設定

・問い合わせフローの作成

1. 左側アイコンの3つ矢印から問い合わせフローを選択、「コンタクトフローの作成」をクリック ![6bcd5409f5891a8e8e6fe7648ee9f501.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678858/ed8bb566-c092-8e44-6742-349c6800a844.png) 2. 「操作」から「プロンプトの再生」をフローにドラッグ&ドロップ 3. 「設定」から「音声の設定」をフローにドラッグ&ドロップし、音声を「mizuki」に設定し、「save」をクリック 4. 「ブランチ」から「オペレーション時間を確認する」をフローにドラッグ&ドロップし、パラメータに先ほど作成したオペレーション時間を設定し、「save」をクリック 5. フロー上の「プロンプトの再生」をクリックテキスト読み上げ機能をチェックし、テキストの入力をチェックの上任意の文言(例:ただいま電話を繋いでおります/ただいまお電話に出ることができません)を設定し、「save」をクリック 6. 「終了・転送」から「電話番号のへの転送」をフローにドラッグ&ドロップし、転送先の電話番号の記入、タイムアウトの秒数の記入、切断後に問い合わせフローを再開の所で「はい」を選択肢、「save」をクリック 7. 「統合」から「AWS Lambda関数を呼び出す」をフローにドラッグ&ドロップし、関数を選択するにチェックを入れ、作成したLambda関数を選択し、「save」をクリック 8. 以下の図の通りになるように矢印を結ぶ (※プロンプトは営業時間内の場合と営業時間外の場合の2つを用意する) ![7182f9f83631756e236c0fe48409d8e2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678858/b8f839aa-4d0b-ac12-f87f-8abd6c09917a.png) 9. 「保存」の隣の▼をクリックし「保存して発行」をクリック

・フローと電話番号を結びつける

1. 左の矢印3つのアイコンから電話番号をクリックし、表示された画面から該当の電話番号をクリック 2. 問い合わせフローに先程作成したフローの名前を選択する

完成したので試してみる

設定した営業時間の外のタイミングで、Amazon Connectで登録した電話番号に電話してみる。 設定の通りの音声プロンプトが流れた後、このような通知がSlackのチャンネルに届けば成功です! ![ce1756601f78ac323918fa4dc90c799a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/678858/fb9e1c5e-ed01-26cd-1f71-70008615b8d9.png)

最後に

本当に最後までオープンソースの情報だけでなんとかやりくり抜いた感じなので、 これからLambda関数についてより学習し、もっと柔軟に要件に応えられるようにしていきたいです!
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?