【Amazon Connect】一定数以上キューに滞留させない設定

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

コールセンターでは、オペレーターが全員対応中の場合はお客様にキュー(待ち行列)で待機していただき、オペレーターの状況によって順番に対応するような構成が一般的かと思います。
ただし、待機しているお客様が多すぎる場合、電話口で長時間お待たせするよりも、時間をおいて掛けていただくようご案内するほうが親切な場合もあります。
これを実現するフロー設定例を紹介します。

要件

下記の想定とします。

  • お客様からの入電はすべてサポートキューへ転送します
  • ただし、サポートキューでお待ちのお客様が2人以上の場合は混雑アナウンス後、切断します

※検証を容易にするため待ち制限は2人としています

設定

入電時のコンタクトフロー

  • No1: 作業キューの設定
    • 対応するキューとして「サポート」キューを設定します
  • No2: キューメトリクスの取得
    • デフォルト設定で、現在のキュー(ここでは直前で指定した「サポート」キュー)のすべてのチャネルを取得します
  • No3: コンタクト属性の設定
    • 動作検証のため、No2で取得したキューメトリクスから「キューに保存されたコンタクト」をコンタクト属性へ保存します
  • No4: コンタクト属性を確認する
    • キューメトリクス「キューに保存されたコンタクト」の値が2未満か否か判定、分岐します
  • No5: キューへ転送
    • 「キューに保存されたコンタクト」が2未満 の場合に遷移します
    • 作業キューである「サポート」キューへ転送します
  • No6: プロンプトの再生
    • 「キューに保存されたコンタクト」が2以上 の場合に遷移します
    • 混雑しているためお掛け直しすることをアナウンスします
    • アナウンス後、No7へ遷移します
  • No7: 電話を切断します

動作検証

3つ電話を準備し、順番に架電し、期待する動作となるか確認します。

1番目と2番目は待ち状態となり、保留音が流れます。
3番目はアナウンス・切断のフローとなりました。

コールフローログを確認

それぞれの入電について、メトリクス取得ブロック移行のフロー遷移を確認します。

1番目の入電

コンタクトフロー No2からNo5へ遷移、キュー転送されています。
今回の検証では対応エージェント不在の状態での入電でした。
キューに関連する情報が無い場合はメトリクス取得ブロックでエラー判定になるようです。
(対応可能エージェントを判定するか、エラー時の分岐をキュー転送にするのが良さそうです)

#フローブロックNo2
{
    "Results": "Error",
    "ContactId": "c8e342f9-****",
    "ContactFlowId": "arn:aws:connect:ap-northeast-1:****",
    "ContactFlowName": "LimitQueueInbound",
    "ContactFlowModuleType": "GetMetricData",
    "Timestamp": "2022-11-19T06:49:33.143Z",
    "Parameters": {}
}
#フローブロックNo5
{
    "Results": "false",
    "ContactId": "c8e342f9-****",
    "ContactFlowId": "arn:aws:connect:ap-northeast-1:****",
    "ContactFlowName": "LimitQueueInbound",
    "ContactFlowModuleType": "Transfer",
    "Timestamp": "2022-11-19T06:49:33.201Z",
    "Parameters": {}
}

2番目の入電

既に1番目の入電がキューへ転送されている状態です。
コンタクトフローNo2 のメトリクス取得は成功しています。
No3 でコンタクト属性へ値を保存しています。
No4 で「キューに保存されたコンタクト」の値が2未満であると判定され、No5へ遷移、キュー転送されています。

#フローブロックNo2
{
    "ContactId": "6c4d3813-****",
    "ContactFlowId": "arn:aws:connect:ap-northeast-1:****",
    "ContactFlowName": "LimitQueueInbound",
    "ContactFlowModuleType": "GetMetricData",
    "Timestamp": "2022-11-19T06:49:44.322Z",
    "Parameters": {}
}
#フローブロックNo3
{
    "ContactId": "6c4d3813-****",
    "ContactFlowId": "arn:aws:connect:ap-northeast-1:****",
    "ContactFlowName": "LimitQueueInbound",
    "ContactFlowModuleType": "SetAttributes",
    "Timestamp": "2022-11-19T06:49:44.344Z",
    "Parameters": {
        "Value": "1",
        "Key": "ContactsCountInQueue"
    }
}
#フローブロックNo4
{
    "Results": "true",
    "ContactId": "6c4d3813-****",
    "ContactFlowId": "arn:aws:connect:ap-northeast-1:****",
    "ContactFlowName": "LimitQueueInbound",
    "ContactFlowModuleType": "CheckAttribute",
    "Timestamp": "2022-11-19T06:49:44.346Z",
    "Parameters": {
        "Value": "1",
        "SecondValue": "2",
        "ComparisonMethod": "LessThan"
    }
}
#フローブロックNo5
{
    "Results": "false",
    "ContactId": "6c4d3813-****",
    "ContactFlowId": "arn:aws:connect:ap-northeast-1:****",
    "ContactFlowName": "LimitQueueInbound",
    "ContactFlowModuleType": "Transfer",
    "Timestamp": "2022-11-19T06:49:44.348Z",
    "Parameters": {}
}

3番目の入電

1番目と2番目の入電がキューへ転送されている状態です。
コンタクトフローNo2 のメトリクス取得は成功し、No3 でコンタクト属性へ値を保存しています。
No4 で「キューに保存されたコンタクト」の値が2未満ではないと判定され、No6へ遷移、混雑アナウンスが再生されます。

#フローブロックNo2
{
    "ContactId": "37c22522-****",
    "ContactFlowId": "arn:aws:connect:ap-northeast-1:****",
    "ContactFlowName": "LimitQueueInbound",
    "ContactFlowModuleType": "GetMetricData",
    "Timestamp": "2022-11-19T06:50:08.896Z",
    "Parameters": {}
}
#フローブロックNo3
{
    "ContactId": "37c22522-****",
    "ContactFlowId": "arn:aws:connect:ap-northeast-1:****",
    "ContactFlowName": "LimitQueueInbound",
    "ContactFlowModuleType": "SetAttributes",
    "Timestamp": "2022-11-19T06:50:08.913Z",
    "Parameters": {
        "Value": "2",
        "Key": "ContactsCountInQueue"
    }
}
#フローブロックNo4
{
    "Results": "false",
    "ContactId": "37c22522-****",
    "ContactFlowId": "arn:aws:connect:ap-northeast-1:****",
    "ContactFlowName": "LimitQueueInbound",
    "ContactFlowModuleType": "CheckAttribute",
    "Timestamp": "2022-11-19T06:50:08.916Z",
    "Parameters": {
        "Value": "2",
        "SecondValue": "2",
        "ComparisonMethod": "LessThan"
    }
}
#フローブロックNo6
{
    "ContactId": "37c22522-****",
    "ContactFlowId": "arn:aws:connect:ap-northeast-1:****",
    "ContactFlowName": "LimitQueueInbound",
    "ContactFlowModuleType": "PlayPrompt",
    "Timestamp": "2022-11-19T06:50:08.917Z",
    "Parameters": {
        "TextToSpeechType": "text",
        "SpeakingStyle": "None",
        "Text": "ただ今大変混雑しております\n時間をおいておかけ直しください",
        "Voice": "Takumi",
        "GlobalEngine": "Neural"
    }
}

コンタクト詳細を確認

2番目の入電コンタクトは、その時点の 「キューに保存されたコンタクト」の値 1 が属性値へ保存されています。
同様に、3番目の入電コンタクトは 2 が保存されています。

※今回は検証のため、コンタクト属性値へ値を保存しましたが、実際の運用であっても、その時点の状態や判定結果を保持しておくことで、後から分析などに利用できそうです。

最後に

キューでお待ちいただく通話数をフロー内の判定によって制限する設定を紹介いたしました。
ご参考になれば幸いです。