概要
Amazon Connectのキュー操作ができる新しいAPIが追加されました
https://aws.amazon.com/blogs/contact-center/managing-queues-with-a-new-api-in-amazon-connect/aws.amazon.com
数週間前に、クイック接続の設定を行うことができるようになりましたが、今回はキューの設定APIです
追加されたAPIを利用してキューとクイック接続を関連付けることが可能になりました
補足:AWSブログ記載のデモンストレーションWEBページ
CloudFormationデプロイする手順が紹介されていますが、日本で動作させるために2点変更が必要でした
- デプロイされたCloudFrontの設定変更
- Geo Restrictionを修正し、日本からのアクセスを許可する必要があります
- そのままだと USのみがホワイトリストに記載された状態です
- queue.jsの修正
- GUIでリージョンを設定するような仕組みになっていますが、設定したリージョンを参照していないようです(
us-west-2
とハードコーディングされている) - queue.jsを開いて、
loadConnectAPIs()
部分を修正します us-west-2
が記述されている行をコメントアウトし、次の行のコメントを外して有効にします- 手動でS3にアップロードすれば大丈夫です
- GUIでリージョンを設定するような仕組みになっていますが、設定したリージョンを参照していないようです(
なお、アクセスキー、シークレットアクセスキーもGUIで設定するようになっていますが、これらは cookieに保存されます
試す環境
手元の環境(Ubuntu20.04 on WSL2)にて、AWSCLIを利用して試してみました 本APIについてはAWS CLI バージョン2.1.23 で対応したようです(2021/2/3リリース)
$ aws --version aws-cli/2.1.23 Python/3.7.3 Linux/4.19.128-microsoft-standard exe/x86_64.ubuntu.20 prompt/off
AWS CLI v2のインストール/アップデートについては下記ページを参照してください
APIを試す
ConnectインスタンスIDを確認
操作は常にConnectインスタンスIDが必要になりますので、対象とするインスタンスIDを取得しておきます
(IDなどは伏せます)
$ aws connect list-instances { "InstanceSummaryList": [ { "Id": "zzzzzzzzzz", "Arn": "arn:aws:connect:ap-northeast-1:999999999999:instance/zzzzzzzzzz", "IdentityManagementType": "CONNECT_MANAGED", (snip)
オペレーション時間IDを確認
キューのプロパティとしてオペレーション時間が必須になるので、これも取得しておきます
$ aws connect list-hours-of-operations --instance-id zzzzzzzzzz { "HoursOfOperationSummaryList": [ { "Id": "hhhhhhhhhh", "Arn": "arn:aws:connect:ap-northeast-1:999999999999:instance/zzzzzzzzzz/operating-hours/hhhhhhhhhh", "Name": "Basic Hours" (snip)
キュー作成
新APIでキューを作成します
$ aws connect create-queue \ --instance-id zzzzzzzzzz \ --hours-of-operation-id hhhhhhhhhh \ --name APIテストキュー { "QueueArn": "arn:aws:connect:ap-northeast-1:999999999999:instance/zzzzzzzzzz/queue/qqqqqqqqqq", "QueueId": "qqqqqqqqqq" }
キュー情報の確認
作成したキューの情報を取得します
$ aws connect describe-queue --instance-id zzzzzzzzzz --queue-id qqqqqqqqqq { "Queue": { "Name": "APIテストキュー", "QueueArn": "arn:aws:connect:ap-northeast-1:999999999999:instance/zzzzzzzzzz/queue/qqqqqqqqqq", "QueueId": "qqqqqqqqqq", "HoursOfOperationId": "hhhhhhhhhh", "Status": "ENABLED", "Tags": {} } }
Connect管理画面でも確認できました
キュー情報の更新
オペレーション時間の更新
update-queue-hours-of-operation
APIでキューのオペレーション時間を更新可能です
$ aws connect update-queue-hours-of-operation \ --instance-id zzzzzzzzzz \ --queue-id qqqqqqqqqq \ --hours-of-operation-id hhhhhhhhhh2
キュー内の最大問い合わせ数の更新
update-queue-max-contacts
APIで更新可能です
$ aws connect update-queue-max-contacts \ --instance-id zzzzzzzzzz \ --queue-id qqqqqqqqqq \ --max-contacts 5
キューの名称、説明の更新
update-queue-name
APIで更新可能です
aws connect update-queue-name \ --instance-id zzzzzzzzzz \ --queue-id qqqqqqqqqq \ --name 変更されたAPIテストキュー \ --description 説明です
キューを有効化または無効化する
update-queue-status
APIで更新可能です
ステータスとして ENABLED
または DISABLED
を指定します
$ aws connect update-queue-status \ --instance-id zzzzzzzzzz \ --queue-id qqqqqqqqqq \ --status DISABLED
アウトバウンド設定の更新
update-queue-outbound-caller-config
APIで更新可能です
OutboundCallerIdNumberId
へ指定するのは電話番号IDです。list-phone-numbers
APIなどで取得します
OutboundFlowId
へ指定するのはOutBoundWisperタイプの問い合わせフローIDです。list-contact-flows
APIなどで取得します
$ aws connect update-queue-outbound-caller-config \ --instance-id zzzzzzzzzz \ --queue-id qqqqqqqqqq \ --outbound-caller-config OutboundCallerIdName=SERVERWORKS,OutboundCallerIdNumberId=nnnnnnnnnn,OutboundFlowId=ffffffffff
キューに関連するクイック接続の設定
キューで利用可能なクイック接続を関連付け
associate-queue-quick-connects
APIで追加します
クイック接続IDは list-quick-connects
APIで取得します
また、一度に複数ID指定可能となっています
$ aws connect associate-queue-quick-connects \ --instance-id zzzzzzzzzz \ --queue-id qqqqqqqqqq \ --quick-connect-ids id1 id2
キューに関連付けられているクイック接続リスト
$ aws connect list-queue-quick-connects --instance-id zzzzzzzzzz --queue-id qqqqqqqqqq { "QuickConnectSummaryList": [ { "Id": "qqqqqqqqqq-1", "Arn": "arn:aws:connect:ap-northeast-1:999999999999:instance/zzzzzzzzzz/transfer-destination/qqqqqqqqqq-1", "Name": "shinsaka", "QuickConnectType": "USER" }, { "Id": "qqqqqqqqqq-2", "Arn": "arn:aws:connect:ap-northeast-1:999999999999:instance/zzzzzzzzzz/transfer-destination/qqqqqqqqqq-2", "Name": "user2", "QuickConnectType": "USER" } (snip)
管理画面の内容と一致しています
キューとクイック接続の関連付けを解除
disassociate-queue-quick-connects
APIで解除します
(associate-queue-quick-connects
APIの逆ですね)
こちらも複数のクイック接続IDを指定可能です
$ aws connect disassociate-queue-quick-connects \ --instance-id zzzzzzzzzz \ --queue-id qqqqqqqqqq \ --quick-connect-ids id1 id2
まとめ
キューの各種設定がAPIで操作できるようになりました
設定方法がパートごとに分離しているのが不思議な感じはしますが、変更は項目ブロックごとでも問題なさそうではあります
合わせて、クイック接続の関連付け設定の操作が可能になっています
既存のAPIと組み合わせて、エージェント(オペレータ)の追加/削除に伴うクイック接続設定の自動化が完結できそうです
次はオペレーション時間の登録/更新操作APIがリリースされるかなと勝手に予想しています