この記事は公開されてから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でエージェントのステータスを変更してみました。業務終了時など、管理者によるステータス変更の自動化や、カスタムダッシュボードの作り込み等で利用できるのではないでしょうか。