はじめに
AmazonConnectを利用してLambdaから架電する場合のサンプルコードを載せています。
初心者向け
※ AmazonConnectのフローやキュー作成などの詳細は省いてます
AWS構成
流れ
- 事前準備
- Amazon Connect概略
- Lambdaコード
1. 事前準備
・1. AmazonConnectで利用する架電元の電話番号をtwillioなどの無料で電話番号を取得できるサービスなどで取得しておきます。
https://www.twilio.com/ja/docs/usage/tutorials/how-to-use-your-free-trial-account
・2. 日本の電話に架電したい場合、クォーターの制限緩和が必要です
https://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/country-code-allow-list.html#prefixes-not-allowed
2.Amazon Connect概略
Amazon Connectのインスタンスを作成し「キュー」と「フロー」を作成しておきます。
3. Lambdaコード
最後に、AmazonConnectを呼び出すLambdaコードのサンプル
import AWS from 'aws-sdk';
const connect = new AWS.Connect();
// 電話をかける関数
async function makeCall(): Promise<void> {
// 電話のパラメータを設定
const params = {
InstanceId: 'YOUR_INSTANCE_ID',
ContactFlowId: 'YOUR_CONTACT_FLOW_ID',
DestinationPhoneNumber: '架電先のスマホの電話番号 (例: +81xxxxのE164形式か通常の形式)',
};
try {
// 電話をかけるリクエストを送信
await connect.startOutboundVoiceContact(params).promise();
console.log('Call initiated successfully');
} catch (error) {
console.error('Error initiating call:', error);
}
}
// 電話をかける
makeCall();
これで、CloudwatchでS3トリガーなどでCSVファイルを取得して対象の電話番号に電話をかけるかんたんな自動化ができあがり
メモ
AmazonConnectに流れてくるユーザーが電話を切ったかどうかなどは、CTRのログを見ればわかります。
問い合わせレコードデータモデル
https://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/ctr-data-model.html
架電する際のAttributesは以下の文字しか使えない(日本語不可)
There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters.