Amazon Connectのキュー設定APIを試してみました

記事タイトルとURLをコピーする

概要

Amazon Connectのキュー操作ができる新しいAPIが追加されました

aws.amazon.com

数週間前に、クイック接続の設定を行うことができるようになりましたが、今回はキューの設定APIです
追加されたAPIを利用してキューとクイック接続を関連付けることが可能になりました

blog.serverworks.co.jp

補足:AWSブログ記載のデモンストレーションWEBページ

CloudFormationデプロイする手順が紹介されていますが、日本で動作させるために2点変更が必要でした

  • デプロイされたCloudFrontの設定変更
    • Geo Restrictionを修正し、日本からのアクセスを許可する必要があります
    • そのままだと USのみがホワイトリストに記載された状態です
  • queue.jsの修正
    • GUIでリージョンを設定するような仕組みになっていますが、設定したリージョンを参照していないようです(us-west-2 とハードコーディングされている)
    • queue.jsを開いて、 loadConnectAPIs() 部分を修正します
    • us-west-2 が記述されている行をコメントアウトし、次の行のコメントを外して有効にします
    • 手動でS3にアップロードすれば大丈夫です

なお、アクセスキー、シークレットアクセスキーも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のインストール/アップデートについては下記ページを参照してください

docs.aws.amazon.com

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管理画面でも確認できました

f:id:swx-shinsaka:20210203161137p:plain

キュー情報の更新

オペレーション時間の更新

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

f:id:swx-shinsaka:20210204155013p:plain

キューに関連するクイック接続の設定

キューで利用可能なクイック接続を関連付け

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)

管理画面の内容と一致しています

f:id:swx-shinsaka:20210204155352p:plain

キューとクイック接続の関連付けを解除

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がリリースされるかなと勝手に予想しています