Amazon Connectのシステムメトリクスに新しい問い合わせ属性が追加されました

2018.06.25

事業開発部の酒匂です。 Amazon Connectに下記のオプションが追加されたので、試してみました。

Amazon Connect が、システムメトリクスに新しい問い合わせ属性を追加 より抜粋

Amazon Connect は、システムメトリクスの新しい問い合わせ属性を使用して、顧客の待ち時間を最短にするキューや、エージェントの使用率を高めるためにアイドル状態のエージェントのキューへコールを動的にルーティングするオプションを追加しました。Amazon Connect の問い合わせ属性は、顧客とのやりとりに関するデータであり、問い合わせフローで参照され、顧客の体験をカスタマイズまたはパーソナライズすることができます。これらの新しい属性を使用して、定義したキューのしきい値に基づいて特定のコールをルーティングする場所を決定することができます。

つまりは、コールフロー上で待ち呼の時間や受付可能なエージェントの数を取得し、その結果をもとに呼をルーティングできるようになったということです。実際に見て頂いた方がわかりやすいと思います。

システムメトリクス情報を取得する

問い合わせフローエディタのメニューから「設定」を選択し、「Get metrics」ブロックを選択します。

「Get metrics」ブロックでは、下記のようにメトリクス情報を取得する対象のキューを指定できます。指定しない場合は、「Get metrics」ブロックを配置する前に配置されている「キューの設定」ブロックで指定したキュー(=current queue)が対象になります。

メトリクス情報は、「問い合わせ属性の設定」ブロックで取得します。

下記のように、「属性としてテキストを保存する」を選択し、「宛先キー」は任意の値を設定します。値については、「$.メトリクスの属性値」を指定します。

コンタクトフローログを有効にしておくと、以下のように値が取得されていることが分かります。

{
    "Parameters": {
        "Value": "0",
        "Key": "queueSize"
    },
    "ContactFlowId": "arn:aws:connect:ap-southeast-2:************:instance/*************/contact-flow/dee64834-b211-43a2-8dd5-041ea256cb2d",
    "Timestamp": "2018-06-25T05:21:07.027Z",
    "ContactFlowModuleType": "SetAttributes",
    "ContactId": "b76f7821-b11d-4e46-bf0b-f9590909f2f4"
}
{
    "Parameters": {
        "Value": "0",
        "Key": "queueOldestContactAge"
    },
    "ContactFlowId": "arn:aws:connect:ap-southeast-2:************:instance/*************/contact-flow/dee64834-b211-43a2-8dd5-041ea256cb2d",
    "Timestamp": "2018-06-25T05:21:07.029Z",
    "ContactFlowModuleType": "SetAttributes",
    "ContactId": "b76f7821-b11d-4e46-bf0b-f9590909f2f4"
}
{
    "Parameters": {
        "Value": "1",
        "Key": "queueAvailableCount"
    },
    "ContactFlowId": "arn:aws:connect:ap-southeast-2:************:instance/*************/contact-flow/dee64834-b211-43a2-8dd5-041ea256cb2d",
    "Timestamp": "2018-06-25T05:21:07.033Z",
    "ContactFlowModuleType": "SetAttributes",
    "ContactId": "b76f7821-b11d-4e46-bf0b-f9590909f2f4"
}

今回の例では、最初に着信させようとしたキューに受付可能なエージェントが存在しない場合に、別のキューに転送するようにフローを設定しました。

取得したメトリクス情報は、「User Defined」を選択し、「$.Attributes.属性値」を指定することで参照できます。

このようにすることで、問い合わせ受付のキューにかかってきた呼を、別のキュー(この例では契約手続き受付)に転送し、そちらで受付できるようになります。

フローを設定する際の話ですが、契約手続き受付に転送された呼が、もともと契約手続き受付にかかってきたものなのか、別のキューから転送された呼としてのものなのかどうかを分かるようにしておくと、レポート集計の際に内訳を把握することができるようになります。

取得可能なシステムメトリクス

現時点で取得可能なシステムメトリクスは下記になります。

System Metrics Attributes

属性値 内容 属性のタイプ
Metrics.Queue.Name キューの名前(Get Metricsで指定したもの) System
Metrics.Queue.ARN キューのARN System
Metrics.Queue.Size キューに存在している呼の数 System
Metrics.Queue.OldestContactAge キューに存在する呼で、一番待ち時間の長い呼の待ち時間(秒) System
Metrics.Agents.Online.Count オンラインの状態になっているエージェントの数(つまり、受付可、後処理、離席など、オフライン状態を除くもの). System
Metrics.Agents.Available.Count 受付可の状態になっているエージェントの数 System
Metrics.Agents.Staffed.Count 受付可、後処理(After Call Work)、通話中の状態にあるエージェントの数 System
Metrics.Agents.AfterContactWork.Count 後処理(After Call Work)の状態になっているエージェントの数 System
Metrics.Agents.Busy.Count 通話中の状態になっているエージェントの数 System
Metrics.Agents.Missed.Count 呼に応答しようしたが、切断された状態にあるエージェントの数(*1) System
Metrics.Agents.NonProductive.Count 非稼動状態("non-productive state")にあるエージェントの数(*2) System

(*1)再現しづらいため、試せてはおりません。

(*2)非稼動状態についての補足

エージェントが稼動状態にあるというのは、「受付可」、「後処理」のステータスにあることを意味します。つまり非稼動状態とは、この状態になっていないエージェントを意味します。

下記のパターンで確認しました。

後処理状態のエージェントが2人の場合

コールフロー上でチェックした値は「0」 → 2人とも後処理(After Call Work)の状態になっているので、非稼動状態はゼロ

{
    "ContactFlowId": "arn:aws:connect:ap-southeast-2:**********:instance/**************/contact-flow/dee64834-b211-43a2-8dd5-041ea256cb2d",
    "ContactId": "35cd8b76-e1db-4b14-9507-2054ece610eb",
    "ContactFlowModuleType": "SetAttributes",
    "Timestamp": "2018-06-25T05:27:53.802Z",
    "Parameters": {
        "Value": "0",
        "Key": "queueNonProductiveCount"
    }
}
後処理状態のエージェントが1人、受付可のエージェントが1人の場合

コールフロー上でチェックした値は「0」 → 後処理(After Call Work)と受付可の状態になっているエージェントの数

{
    "Parameters": {
        "Value": "0",
        "Key": "queueNonProductiveCount"
    },
    "ContactFlowId": "arn:aws:connect:ap-southeast-2:**********:instance/**************/contact-flow/dee64834-b211-43a2-8dd5-041ea256cb2d",
    "Timestamp": "2018-06-25T05:21:07.037Z",
    "ContactFlowModuleType": "SetAttributes",
    "ContactId": "b76f7821-b11d-4e46-bf0b-f9590909f2f4"
}
離席と受付可のエージェントが2人の場合

コールフロー上でチェックした値は「1」 → 離席の状態になっているエージェントの数

{
    "ContactFlowId": "arn:aws:connect:ap-southeast-2:**********:instance/**************/contact-flow/dee64834-b211-43a2-8dd5-041ea256cb2d",
    "ContactId": "cf8e08ef-18f1-4d92-8cb2-ccc04037277c",
    "ContactFlowModuleType": "SetAttributes",
    "Timestamp": "2018-06-25T05:33:40.286Z",
    "Parameters": {
        "Value": "1",
        "Key": "queueNonProductiveCount"
    }
}
受付可のエージェントが2人の場合

コールフロー上でチェックした値は「0」 → 2人とも受付可の状態になっているので、非稼動状態はゼロ

{
    "ContactId": "811354b8-88d1-464b-81a6-c650f58ec193",
    "Parameters": {
        "Value": "0",
        "Key": "queueNonProductiveCount"
    },
    "ContactFlowModuleType": "SetAttributes",
    "Timestamp": "2018-06-25T05:35:03.521Z",
    "ContactFlowId": "arn:aws:connect:ap-southeast-2:**********:instance/**************/contact-flow/dee64834-b211-43a2-8dd5-041ea256cb2d",
}

さいごに

コールフロー上で色々と値を取得できるようになったことで、例えば平日の日中帯に5人待ち呼になっている場合は、「待ち時間がおおよそ30分です」などといったアナウンスを流すなどができると思います。

参考