📝
Amazon Connect のハンズオンを AWS CLI でやってみる #3
Amazon Connect のハンズオンを AWS CLI でやってみるシリーズの 3 回目です。
各回については以下のリンクからご覧ください。
今から始める Amazon Connect 入門 #3 | DevelopersIO
前回は電話番号の取得を行いました。
今回は問い合わせフローの作成を行います。
前提
- AWS CLI の実行環境は CloudShell
- 使用リージョンはバージニア北部
01. オペレーション時間の作成
create-hours-of-operation — AWS CLI 2.31.22 Command Reference
$ INSTANCE_ID="your-instance-id"
$ aws connect create-hours-of-operation \
--instance-id "$INSTANCE_ID" \
--name "Handson Business Hours" \
--description "Handson Business Hours" \
--time-zone "Asia/Tokyo" \
--config '[
{
"Day": "MONDAY",
"StartTime": {
"Hours": 9,
"Minutes": 0
},
"EndTime": {
"Hours": 18,
"Minutes": 0
}
},
{
"Day": "TUESDAY",
"StartTime": {
"Hours": 9,
"Minutes": 0
},
"EndTime": {
"Hours": 18,
"Minutes": 0
}
},
{
"Day": "WEDNESDAY",
"StartTime": {
"Hours": 9,
"Minutes": 0
},
"EndTime": {
"Hours": 18,
"Minutes": 0
}
},
{
"Day": "THURSDAY",
"StartTime": {
"Hours": 9,
"Minutes": 0
},
"EndTime": {
"Hours": 18,
"Minutes": 0
}
},
{
"Day": "FRIDAY",
"StartTime": {
"Hours": 9,
"Minutes": 0
},
"EndTime": {
"Hours": 18,
"Minutes": 0
}
}
]'
$ HOURS_OF_OPERATION_ID="your-operation-id"
02. キューの作成
create-queue — AWS CLI 2.31.22 Command Reference
$ aws connect list-phone-numbers \
--instance-id "$INSTANCE_ID" \
--query "PhoneNumberSummaryList[0].Id"
"xxx"
$ PHONE_NUMBER_ID="your-phone-number-id"
$ aws connect create-queue \
--instance-id "$INSTANCE_ID" \
--name "Handson Book Queue" \
--description "Handson Book Queue" \
--hours-of-operation-id "$HOURS_OF_OPERATION_ID" \
--outbound-caller-config OutboundCallerIdNumberId="$PHONE_NUMBER_ID"
$ BOOK_QUEUE_ID="your-book-queue-id"
$ aws connect create-queue \
--instance-id "$INSTANCE_ID" \
--name "Handson Music Queue" \
--description "Handson Music Queue" \
--hours-of-operation-id "$HOURS_OF_OPERATION_ID" \
--outbound-caller-config OutboundCallerIdNumberId="$PHONE_NUMBER_ID"
$ MUSIC_QUEUE_ID="your-music-queue-id"
# BasicQueue にアウトバウンド ID を指定するための設定
$ aws connect list-queues \
--instance-id "$INSTANCE_ID" \
--query "QueueSummaryList[?Name=='BasicQueue'].Id"
[
"xxx"
]
$ BASIC_QUEUE_ID="your-BasicQueue-id"
$ aws connect update-queue-outbound-caller-config \
--instance-id "$INSTANCE_ID" \
--queue-id "$BASIC_QUEUE_ID" \
--outbound-caller-config OutboundCallerIdNumberId="$PHONE_NUMBER_ID"
03. ルーティングプロファイルの作成
create-routing-profile — AWS CLI 2.8.7 Command Reference
$ aws connect create-routing-profile \
--instance-id "$INSTANCE_ID" \
--name "Handson Book Profile" \
--description "Handson Book Profile" \
--default-outbound-queue-id "$BOOK_QUEUE_ID" \
--queue-configs '[
{
"QueueReference": {
"Channel": "VOICE",
"QueueId": "$BOOK_QUEUE_ID"
},
"Priority": 1,
"Delay": 0
}
]' \
--media-concurrencies '[
{
"Channel": "VOICE",
"Concurrency": 1,
"CrossChannelBehavior": {
"BehaviorType": "ROUTE_CURRENT_CHANNEL_ONLY"
}
}
]' \
--agent-availability-timer TIME_SINCE_LAST_ACTIVITY
$ BOOK_PROFILE_ID="your-book-profile-id"
$ aws connect create-routing-profile \
--instance-id "$INSTANCE_ID" \
--name "Handson Music Profile" \
--description "Handson Music Profile" \
--default-outbound-queue-id "MUSIC_QUEUE_ID" \
--queue-configs '[
{
"QueueReference": {
"Channel": "VOICE",
"QueueId": "MUSIC_QUEUE_ID"
},
"Priority": 1,
"Delay": 0
}
]' \
--media-concurrencies '[
{
"Channel": "VOICE",
"Concurrency": 1,
"CrossChannelBehavior": {
"BehaviorType": "ROUTE_CURRENT_CHANNEL_ONLY"
}
}
]' \
--agent-availability-timer TIME_SINCE_LAST_ACTIVITY
$ MUSIC_PROFILE_ID="your-music-profile-id"
04. ユーザーの作成
create-user — AWS CLI 2.31.22 Command Reference
# Agent のセキュリティプロファイルの ID を取得
$ aws connect list-security-profiles \
--instance-id "$INSTANCE_ID" \
--query "SecurityProfileSummaryList[?Name=='Agent'].Id"
[
"xxx"
]
$ AGENT_PROFILE_ID="your-agent-profile-id"
$ aws connect create-user \
--instance-id "$INSTANCE_ID" \
--username "Book" \
--password "your-password" \
--identity-info FirstName=Book,LastName=Handson \
--phone-config PhoneType=SOFT_PHONE,AutoAccept=false,AfterContactWorkTimeLimit=0,PersistentConnection=true \
--security-profile-ids "$AGENT_PROFILE_ID" \
--routing-profile-id "$BOOK_PROFILE_ID"
$ aws connect create-user \
--instance-id "$INSTANCE_ID" \
--username "Music" \
--password "your-password" \
--identity-info FirstName=Music,LastName=Handson \
--phone-config PhoneType=SOFT_PHONE,AutoAccept=false,AfterContactWorkTimeLimit=0,PersistentConnection=true \
--security-profile-ids "$AGENT_PROFILE_ID" \
--routing-profile-id "$MUSIC_PROFILE_ID"
05. 問い合わせフローの作成
create-contact-flow — AWS CLI 2.31.22 Command Reference
# 顧客キューの作成
$ aws connect create-contact-flow \
--instance-id "$INSTANCE_ID" \
--name "Handson customer queue" \
--type CUSTOMER_QUEUE \
--content '{
"Version": "2019-10-30",
"StartAction": "action-1",
"Metadata": {
"entryPointPosition": {
"x": 242.4,
"y": 172
},
"ActionMetadata": {
"action-1": {
"position": {
"x": 432.8,
"y": 236
},
"parameters": {
"Messages": []
}
},
"action-2": {
"position": {
"x": 678.4,
"y": 264.8
}
}
}
},
"Actions": [
{
"Identifier": "action-1",
"Type": "MessageParticipantIteratively",
"Parameters": {
"Messages": [
{
"Text": "お電話ありがとうございます。\nしばらくお待ちください。"
}
],
"ContinueMessagingDuringInterrupt": "false"
},
"Transitions": {
"NextAction": "action-2",
"Errors": [
{
"ErrorType": "NoMatchingError",
"NextAction": "action-2"
}
]
}
},
{
"Identifier": "action-2",
"Type": "DisconnectParticipant",
"Parameters": {},
"Transitions": {}
}
]
}'
$ CUSTOMER_QUEUE_ID="your-customer-queue-id"
# コンタクトフローの作成
$ aws connect create-contact-flow \
--instance-id "$INSTANCE_ID" \
--name "Handson inbound flow" \
--type CONTACT_FLOW \
--content '{
"Version": "2019-10-30",
"StartAction": "action-1",
"Metadata": {
"entryPointPosition": {
"x": 40,
"y": 40
},
"ActionMetadata": {
"action-1": {
"position": {
"x": 148,
"y": 36
},
"parameters": {
"TextToSpeechVoice": {
"languageCode": "ja-JP"
}
},
"overrideConsoleVoice": true
},
"action-2": {
"position": {
"x": 372,
"y": 46.4
},
"parameters": {
"EventHooks": {
"CustomerQueue": {
"displayName": "Handson customer queue"
}
}
},
"contactFlow": {
"text": "Handson customer queue",
"id": "$CUSTOMER_QUEUE_ID"
},
"customerOrAgent": true
},
"action-3": {
"position": {
"x": 736.8,
"y": 327.2
}
},
"action-4": {
"position": {
"x": 153.6,
"y": 271.2
},
"parameters": {
"QueueId": {
"displayName": "Handson Book Queue"
}
},
"queue": {
"text": "Handson Book Queue"
}
},
"action-5": {
"position": {
"x": 403.2,
"y": 276.8
}
}
}
},
"Actions": [
{
"Parameters": {
"TextToSpeechEngine": "Neural",
"TextToSpeechStyle": "None",
"TextToSpeechVoice": "Kazuha"
},
"Identifier": "action-1",
"Type": "UpdateContactTextToSpeechVoice",
"Transitions": {
"NextAction": "action-2",
"Errors": [
{
"NextAction": "action-3",
"ErrorType": "NoMatchingError"
}
]
}
},
{
"Parameters": {
"EventHooks": {
"CustomerQueue": "CUSTOMER_QUEUE_ID"
}
},
"Identifier": "action-2",
"Type": "UpdateContactEventHooks",
"Transitions": {
"NextAction": "action-4",
"Errors": [
{
"NextAction": "action-3",
"ErrorType": "NoMatchingError"
}
]
}
},
{
"Parameters": {},
"Identifier": "action-3",
"Type": "DisconnectParticipant",
"Transitions": {}
},
{
"Parameters": {
"QueueId": "$BASIC_QUEUE_ID"
},
"Identifier": "action-4",
"Type": "UpdateContactTargetQueue",
"Transitions": {
"NextAction": "action-5",
"Errors": [
{
"NextAction": "action-3",
"ErrorType": "NoMatchingError"
}
]
}
},
{
"Parameters": {},
"Identifier": "action-5",
"Type": "TransferContactToQueue",
"Transitions": {
"NextAction": "action-3",
"Errors": [
{
"NextAction": "action-3",
"ErrorType": "QueueAtCapacity"
},
{
"NextAction": "action-3",
"ErrorType": "NoMatchingError"
}
]
}
}
]
}'
$ CONTACT_FLOW_ID="your-contact-flow-id"
06. 電話番号にフローを関連付ける
associate-phone-number-contact-flow — AWS CLI 2.31.22 Command Reference
$ aws connect associate-phone-number-contact-flow \
--instance-id "$INSTANCE_ID" \
--phone-number-id "$PHONE_NUMBER_ID" \
--contact-flow-id "$CONTACT_FLOW_ID"
07. 動作確認
CCP から架電して日本語の音声が聞こえれば OK です。
まとめ
今回は Amazon Connect のハンズオンを AWS CLI でやってみるシリーズの 3 回目として、問い合わせフローの作成を行いました。
次回は問い合わせフローの作成の続きからやっていきます。
参考資料
- 今から始める Amazon Connect 入門 #3 | DevelopersIO
- create-hours-of-operation — AWS CLI 2.31.22 Command Reference
- create-queue — AWS CLI 2.31.22 Command Reference
- create-routing-profile — AWS CLI 2.8.7 Command Reference
- create-user — AWS CLI 2.31.22 Command Reference
- create-contact-flow — AWS CLI 2.31.22 Command Reference
- associate-phone-number-contact-flow — AWS CLI 2.31.22 Command Reference
Discussion