[アップデート]Amazon Connect API経由でエージェントのステータス変更が可能になりました

API経由でエージェントのステータス変更が可能になりました。ステータス変更の自動化など業務が捗りそうです。
2022.04.30

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Amazon Connect(以下、Connect)にて、API経由でエージェントのステータス変更が可能になりました。

エージェントにはステータスがあり、Availableステータスにすることで、通話等の業務をエージェントにルーティングすることが可能です。

これまで、ステータスの変更はCCPから手動で変更、リアルタイムメトリクスから変更することが可能でした。

▲ CCPからステータスを変更している様子

今回のアップデートで、こちらのステータス変更がAPI経由で行えるようになりました。本ブログでは、AWS CLIを利用してエージェントのステータスを変更してみたいと思います。

前提

  • Connectインスタンスが構築済みであること
  • AWS CLI 2.6.1以上が利用可能であること

やってみた

エージェントのステータス変更には、以下のコマンドを利用します。

put-user-statusコマンドの実行には、ConnectインスタンスのID等をパラーメタに指定する必要があります。指定する値をコンソールから確認しても問題ありませんが、ここではAWS CLIで必要な値を取得したいと思います。

まずは、list-instancesコマンドでインスタンスIDを取得します。ここでは、構築済みのConnectインスタンスの名前を変数に指定し、コマンドの実行結果も変数に入れています。(AWSアカウントIDはマスクしています)

$ INSTANCE_NAME=test-sakamaki
$ INSTANCE_ID=`aws connect list-instances \
--query "InstanceSummaryList[?InstanceAlias=='${INSTANCE_NAME}'].Arn" \
--output text`
$ echo $INSTANCE_ID
arn:aws:connect:ap-northeast-1:XXXXXXXXXXXX:instance/f248cbab-9769-4766-bd6d-bd42de1168ea

次は、list-usersコマンドで、ユーザIDを取得します。

$ aws connect list-users \
--instance-id $INSTANCE_ID
{
    "UserSummaryList": [
        {
            "Id": "04f6d9f9-06fc-4f05-971f-4f7a12753e4e",
            "Arn": "arn:aws:connect:ap-northeast-1:XXXXXXXXXXXX:instance/f248cbab-9769-4766-bd6d-bd42de1168ea/agent/04f6d9f9-06fc-4f05-971f-4f7a12753e4e",
            "Username": "admin"
        },
        {
            "Id": "79f21b87-3113-4124-9a9e-d02ab9bc9724",
            "Arn": "arn:aws:connect:ap-northeast-1:XXXXXXXXXXXX:instance/f248cbab-9769-4766-bd6d-bd42de1168ea/agent/79f21b87-3113-4124-9a9e-d02ab9bc9724",
            "Username": "music"
        }
    ]
}

複数ユーザが存在していました。ここではadminユーザのIDを取得します。

$ ADMIN_USER_ID=`aws connect list-users \
--instance-id $INSTANCE_ID \
--query "UserSummaryList[?Username=='admin'].Id" \
--output text`
$ echo $ADMIN_USER_ID
04f6d9f9-06fc-4f05-971f-4f7a12753e4e

続いて、list-agent-statusesコマンドで、ステースIDを取得します。

$ aws connect list-agent-statuses \
--instance-id $INSTANCE_ID
{
    "AgentStatusSummaryList": [
        {
            "Id": "b73b67c8-2d39-4c6a-8240-918826aee6d4",
            "Arn": "arn:aws:connect:ap-northeast-1:XXXXXXXXXXXX:instance/f248cbab-9769-4766-bd6d-bd42de1168ea/agent-state/b73b67c8-2d39-4c6a-8240-918826aee6d4",
            "Name": "Lunch",
            "Type": "CUSTOM"
        },
        {
            "Id": "e1265897-2926-4a8e-a319-a359df2514db",
            "Arn": "arn:aws:connect:ap-northeast-1:XXXXXXXXXXXX:instance/f248cbab-9769-4766-bd6d-bd42de1168ea/agent-state/e1265897-2926-4a8e-a319-a359df2514db",
            "Name": "Available",
            "Type": "ROUTABLE"
        },
        {
            "Id": "2fd0eaa0-cd62-48ac-9dfb-d96792148aa4",
            "Arn": "arn:aws:connect:ap-northeast-1:XXXXXXXXXXXX:instance/f248cbab-9769-4766-bd6d-bd42de1168ea/agent-state/2fd0eaa0-cd62-48ac-9dfb-d96792148aa4",
            "Name": "Offline",
            "Type": "OFFLINE"
        }
    ]
}

複数ステータスが存在していますが、ここでは通話等の業務がルーティングされるAvailableのIDを取得しました。

$ STATUS_AVAILABLE_ID=`aws connect list-agent-statuses \
--instance-id $INSTANCE_ID \
--query "AgentStatusSummaryList[?Name=='Available'].Id" \
--output text`
$ echo $STATUS_AVAILABLE_ID
e1265897-2926-4a8e-a319-a359df2514db

これで準備が整いました。put-user-statusコマンドの実行前に、ステータス変更を行う該当ユーザのステータスを確認しました。

▲ Offline

put-user-statusコマンドにて、ステータスをAvailableに変更します。

aws connect put-user-status \
--user-id $ADMIN_USER_ID \
--instance-id $INSTANCE_ID \
--agent-status-id $STATUS_AVAILABLE_ID

API経由でエージェントのステータス変更が行えました。

▲ Available

リアルタイムメトリクスからもステータスが確認できました。

▲ リアルタイムメトリクス/エージェント

さいごに

AWS CLIでエージェントのステータスを変更してみました。業務終了時など、管理者によるステータス変更の自動化や、カスタムダッシュボードの作り込み等で利用できるのではないでしょうか。

参考