エージェント階層を管理できるAPIが公開されました

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

はじめに

こんにちは。孔子の80代目子孫兼技術4課の孔です。11月だとは思えない暖かい日々が続いてますね。お出かけ日和が続いてますが、このような状況だと遊びにいくのも難しいので、Youtubeで海外旅行をしてたYoutuberの動画をみながら満足しています。

それでは、久々にAmazon Connectに関するアップデートを持ってきました。発表内容は以下のリンクとなります。

Amazon Connect が API を起動して、ユーザー階層をプログラムで設定

それでは、本題に入りましょう。

※ Amazon Connectの概要を知っている前提で話を進めていきます。Amazon Connectがどのようなものなのかは、以下のリンクをご覧ください。 ※ エージェント階層に関する紹介のあと、アップデートの内容を取り扱っています。アップデート内容のみ知りたい方は「アップデート内容」からお読みください。

Amazon Connect(クラウドベースのコンタクトセンター)| AWS

エージェント階層とは?

Amazon Connectの機能として、エージェント階層をAmazon Connectインスタンスで定義できる機能があります。エージェント階層は以下のようなものとなります。

エージェント階層は、レポート作成のためにエージェントをチームやグループに整理する方法です。エージェントの場所およびスキルセットに基づいて整理すると便利です。たとえば、特定の大陸で働くすべてのエージェントなどの大きなグループや、特定の部門で働くすべてのエージェントなどのより小さなグループを作成できます。(公式ドキュメントより)

つまり複数のエージェントを登録しているAmazon Connectインスタンス上で、ユーザーを束ねる仕組みとなります。まず以下の図をみてください。

f:id:swx-kong:20201119144353p:plain

独断と偏見で作成した株式会社KONGの人事部の体制図です。一般的に人事部長がいて、その下にいくつか課と課長がいて、その下に係があるような体制が一般的かと思います。階層(Hierarchy)はこのような「一番上に何があって、その下の枝はどうなっていて、その下の枝は…」を表す図となります。このような階層をAmazon Connectインスタンスに登録したユーザーに対して適用することができます。以下のAmazon Connect UIをご覧ください。

f:id:swx-kong:20201125182804p:plain

こちらの画面はAmazon Connectでエージェント階層を定義する画面となります。レベル1に部(Department)、レベル2に課(Division)などを設定して、階層を定義することができます。さらに下のところをみていただきますと、DepartmentのHRの中には2つの課があることがわかりますね。人事課と採用課をHRというDepartmentの中に作成したものとなります。このようにエージェント階層を定義したら、個々のユーザーがどの階層に当たるものなのかを定義する必要があります。それではAmazon Connectのユーザー管理画面で、あるユーザーを編集してみましょう。

f:id:swx-kong:20201125183210p:plain

新卒採用担当の田中さんです。下のところに注目ください。「エージェント階層」欄で、HR.Recruit.Freshに割り当てられたことがわかります。これでAmazon Connectに登録されたユーザー、田中さんはどこの所属なのか管理ができるようになりました!

エージェント階層がどのようなものなのかご理解いただけたかと思いますので、アップデートの内容をみてみましょう!

アップデート内容

今回のアップデートはエージェント階層を管理するためのAPIが複数公開されたことになります。百聞は一見に如かず、早速使ってみましょう。Pythonを使って、まずはエージェント階層をリストしてみます。

import boto3

connect = boto3.client('connect')

response = connect.list_user_hierarchy_groups(
    InstanceId='Amazon ConnectのインスタンスIDを入力する'
)

print(response)

すると、responseの中のUserHierarchyGroupSummaryListの中身はこのようになります。

# レベル2までの階層を表示しています。
  "UserHierarchyGroupSummaryList": [
    {
      "Id": "519c5c08-d4b9-42be-a3a5-9def456ba49e",
      "Arn": "XXXX",
      "Name": "Recruit"
    },
    {
      "Id": "642ba070-b561-4d37-96b5-4aa71e458157",
      "Arn": "XXXX",
      "Name": "HR"
    },
    {
      "Id": "8714ddc2-6999-4be2-a040-9cfc53bdd9ce",
      "Arn": "XXXX",
      "Name": "HR"
    }
  ]

こちらで取得したIDを元に、鈴木さんをユーザーをRecruit部門に割り当ててみましょう。以下のように鈴木さんをユーザー作成しました。

f:id:swx-kong:20201125190127p:plain

まず鈴木さんを特定の階層に割り当てるためには、鈴木さんのユーザーIDを知る必要があるので、それを取得してから割り当ててみます。

import boto3

connect = boto3.client('connect')

user_list = connect.list_users(
    InstanceId='XXXX'
)
# 結果から鈴木さんのIDである`9870648f-f2a5-469d-bc11-d2c78313ffc4`を取得

user_allocation = connect.create_user_hierarchy_group(
    Name='Recruit',  # 階層の名前
    ParentGroupId='642ba070-b561-4d37-96b5-4aa71e458157',  # 親階層のID
    InstanceId='XXXX'
)

user_allocationのResponseMetadata.HTTPStatusCodeが200であれば成功となります!これで何十人がAmazon Connectに登録されていて、大規模な人事異動があっても怖くないですね!

最後に

まだまだ未対応なAPIがたくさんありますが、少しずつAmazon ConnectのAPIも公開されてきましたね。どんどん運用や開発が楽になっていくのではないかと思います。それでは、新しいAmazon Connectのアップデートがあったらまた持ってきます!