Amazon ConnectにUser Management APIが追加されました
事業開発部の酒匂です。
Amazon Connectにユーザーアカウント情報を操作するAPIが追加されたようなので、内容を確認してみました。
Amazon Connect Adds User Management API
Amazon Connect now provides a new user management API that lets you automate creation and deletion of user accounts, changes to user configurations, and updates to security settings, based on your business needs. You can also use the API to make changes to routing profiles assigned to users, which lets you easily move agents to busier queues during periods of high call volume. To learn more see the API documentation.
記載されている内容は、以下のようなことです。
- Amazon Connectは、ユーザー管理APIを新たなAPIとして追加します。
- これらのAPIによって、(システムなどから)ユーザーを作成、削除したり、設定情報の変更ができるようになります。
- ユーザーのセキュリティプロファイル情報を変更したりもできます。
- ユーザーに紐付けるルーティングプロファイルを変更することもできます。
- 例えばキューに呼が集中している時間帯は、ユーザーに紐付けするルーティングプロファイルを変更したい、といった要求に応えることができます。(これは、従来のコールセンターでユーザーに付与するスキルを付け替えするというのと同様だと思います)
このAPIがあると、何が嬉しいのか?
現状ですと、Amazon Connect内部でユーザーアカウント情報を保持する場合は、Amazon Connectの管理画面上から1件ずつ登録していくしかないです。
ユーザー数が多くなると大変です。多くなる場合は、Active Directory連携にしたり、SAML認証にするといった方法を採った方がいいかもしれません。
しかし、このユーザー管理APIがあれば、APIをコールするバッチを作成したり、CRMシステムなどでユーザー登録する時に、「 コールセンターユーザーとしても登録する」といった機能を追加して、APIをコールしてもらえば、一緒に登録できるようになります。もちろん変更や削除、パスワード変更もできるので、一通りの管理機能を実装することも可能です。
APIを呼び出してみる
今回はPHPでサンプルを用意してみようと思います。
AWS SDK for PHPのインストール
composerを使ってインストールします。
composer require aws/aws-sdk-php
APIのコールスクリプトの作成
必要項目を設定してユーザーを作成してみます。
<?php require 'vendor/autoload.php'; // 認証情報 $credentials = new Aws\Credentials\Credentials( '{key}', '{secret}' ); // クライアントの作成 $client = new Aws\Connect\ConnectClient([ 'version' => 'latest', 'region' => 'ap-southeast-2', 'credentials' => $credentials ]); // ユーザーの作成 $result = $client->createUser([ 'DirectoryUserId' => null, 'HierarchyGroupId' => null, 'IdentityInfo' => [ 'Email' => 'user1@domain.com', 'FirstName' => 'テスト', 'LastName' => 'ユーザー1', ], 'InstanceId' => '{Amazon ConnectのインスタンスID}', // REQUIRED 'Password' => '{ユーザーのパスワード}', 'PhoneConfig' => [ // REQUIRED 'AfterContactWorkTimeLimit' => 0, 'AutoAccept' => false, 'DeskPhoneNumber' => null, 'PhoneType' => 'SOFT_PHONE', // REQUIRED ], 'RoutingProfileId' => '{ユーザーに紐付けするルーティングプロファイル}', // REQUIRED 'SecurityProfileIds' => ['{ユーザーに紐付けるセキュリティプロファイル}'], // REQUIRED 'Username' => 'user1', // REQUIRED ]); echo $result;
APIの実行結果
上記のスクリプトの実行結果はこのようになります。
{ "UserId": "{Amazon Connectで採番されたユーザーID}", "UserArn": "arn:aws:connect:ap-southeast-2:{AWSアカウントID}:instance\/{Amazon ConnectのインスタンスID}\/agent\/{Amazon Connectで採番されたユーザーID}", "@metadata": { "statusCode": 200, "effectiveUri": "https:\/\/connect.ap-southeast-2.amazonaws.com\/users\/{Amazon ConnectのインスタンスID}", "headers": { "content-type": "application\/json", "content-length": "194", "connection": "keep-alive", "date": "Mon, 06 Aug 2018 13:47:37 GMT", "x-amzn-requestid": "*****************************", "x-amz-apigw-id": "*************", "x-amzn-trace-id": "Root=1-*******-*****************;Sampled=1", "x-cache": "Miss from cloudfront", "via": "1.1 ********************.cloudfront.net (CloudFront)", "x-amz-cf-id": "*****************_***-*_*********************==" }, "transferStats": { "http": [ [] ] } } }
補足
- インスタンスID(InstanceId)はAmazon Connectのインスタンス画面で確認できます。
- ルーティングプロファイルID(RoutingProfileId)はAmazon Connectの画面上で該当のルーティングプロファイルを表示した際のURLの「routing-profile/**********************」の部分で確認できます。
- セキュリティプロファイルID(SecurityProfileIds)はAmazon Connectの画面上で該当のセキュリティプロファイルを表示した際のURLの「security-profile/**********************」の部分で確認できます。
その他のUser Management API
他には下記のAPIがあります。
API | 内容 |
---|---|
CreateUser | ユーザーを作成する |
DeleteUser | ユーザーを削除する |
DescribeUser | ユーザー情報を表示する |
DescribeUserHierarchyGroup | ユーザー階層グループを表示する |
DescribeUserHierarchyStructure | ユーザー階層構造を表示する |
GetFederationToken | フェデレーショントークンを取得する |
ListRoutingProfiles | ルーティングプロファイルを一覧表示する |
ListSecurityProfiles | セキュリティプロファイルを一覧表示する |
ListUserHierarchyGroups | ユーザー階層グループを一覧表示する |
ListUsers | ユーザーを一覧表示する |
UpdateUserHierarchy | ユーザー階層を更新する |
UpdateUserIdentityInfo | ユーザーのUserIdentityInfo(email, first name, last name)を更新する |
UpdateUserPhoneConfig | ユーザーの電話設定に関する情報(UserPhoneConfig)を更新する |
UpdateUserRoutingProfile | ユーザーのルーティングプロファイルを更新する |
UpdateUserSecurityProfiles | ユーザーのセキュリティプロファイルを更新する |
さいごに
ユーザー管理APIが出てきたので、コール情報やエージェントイベント情報などもAPIでも取得できるようになると便利になるかもしれないと思いました。
参考
- Amazon Connect API Reference
- AWS SDK for PHP(Amazon Connect API)