Amazon ConnectにUser Management APIが追加されました

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

事業開発部の酒匂です。

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でも取得できるようになると便利になるかもしれないと思いました。

参考