[Amazon Connect]Lambdaを使って動的に特定のエージェントに転送する

2019.02.27

はじめに

こんにちは、中村です。

本日もAmazon Connectについてです。昨年12月にドキュメントに追加されていた、エージェントへ直接転送する方法についてまとめておきます。 Transferring Calls Directly to a Specific Agent - Amazon Connect

特定のエージェントに転送する

今回は特定のエージェントへの転送機能を利用して、問い合わせ体験の改善になりそうなフローを作成します。 ユーザーは以前にも電話サポートを利用している場合を想定し、その時に対応したエージェントへ転送を行います。

完成形はこのような形になります。

着信後まずAWS Lambdaで前回担当したエージェント名を検索します。(コールセンター内のオペレーションで電話の後データベースを更新するような運用をイメージしています。) Lambdaを作成後、ARNをAWS Lambdaのブロックに入力します。またインスタンスの設定にある問い合わせフロー > AWS Lambdaにて関数を追加します。

次にキューの設定です。Lambdaからは前回担当したエージェント名が返されます。エージェント別のラジオボタンをクリックし、属性を使用するをクリックします。タイプ属性を入力します。Lambdaから返される値を利用するので、タイプを外部・属性は関数内でエージェント名を返す時のプロパティ名を記載しましょう。

最後に人員の確認です。キューにエージェントを設定後すぐキューへ転送も可能ですが、エージェントがオフラインだった場合延々と呼び出し中になります。そのため人員の確認を行い担当エージェントがいない場合はデフォルトのキューに転送し対応できるようにします。今回は特殊な設定はなく、利用可能かどうかのみ確認します。

あとは、切断やエラー時の処理を追加して保存して発行をクリックし完了です。

テスト

適切にルーティングできてるか電話して確認してみます。テストにあたってcm-testというエージェントを作成しました。Lambdaからもcm-testが返ってくるようにしておきましょう。 電話してみて問い合わせフローログを確認してみます。(利用するために問い合わせフロー内でログ記録動作の設定を有効化、インスタンスの設定にある問い合わせフロー > 問い合わせフローログを有効化してください)

まずは、cm-testが利用可能な場合です。Lambdaから渡されたcm-testがキューにセットされています。

{
    "ContactId": "8b9a47ad-7f8a-48df-af0f-60a9da48f2ff",
    "ContactFlowId": "arn:aws:connect:ap-northeast-1:xxxxxx:instance/xxx-xxx/contact-flow/xxxxxx",
    "ContactFlowModuleType": "SetQueue",
    "Timestamp": "2019-02-27T07:36:43.250Z",
    "Parameters": {
        "Agent": "cm-test"
    }
}

人員確認は、cm-testが利用可能なためResults = trueとなっています。

{
    "Results": "true",
    "ContactId": "8b9a47ad-7f8a-48df-af0f-60a9da48f2ff",
    "ContactFlowId": "arn:aws:connect:ap-northeast-1:xxxxxx:instance/xxx-xxx/contact-flow/xxxxxx",
    "ContactFlowModuleType": "CheckStaffing",
    "Timestamp": "2019-02-27T07:36:43.294Z",
    "Parameters": {}
}

次にcm-testがオフラインの場合です。この場合は、BasicQueueに転送されます。オフラインのため人員確認のResults = falseとなりそのあとのブロックでBasicQueueがキューにセットされています。

{
    "Results": "false",
    "ContactId": "eaf12f91-9e6f-462e-8413-d32c6bec2890",
    "ContactFlowId": "arn:aws:connect:ap-northeast-1:xxxxxx:instance/xxx-xxx/contact-flow/xxxxxx",
    "ContactFlowModuleType": "CheckStaffing",
    "Timestamp": "2019-02-27T07:41:42.764Z",
    "Parameters": {}
}
{
    "ContactId": "eaf12f91-9e6f-462e-8413-d32c6bec2890",
    "ContactFlowId": "arn:aws:connect:ap-northeast-1:xxxxxx:instance/xxx-xxx/contact-flow/xxxxxx",
    "ContactFlowModuleType": "SetQueue",
    "Timestamp": "2019-02-27T07:41:42.775Z",
    "Parameters": {
        "Queue": "arn:aws:connect:ap-northeast-1:xxxxxx:instance/xxx-xxx/queue/xxxxxx"
    }
}

無事に特定のエージェントへの転送が確認できました。

今回はエージェント指定に使用したのは、エージェント名ですがエージェントIDでも指定が可能です。インスタンス上ではエージェントIDは確認できないのでListUsers APIを利用してみてください。

まとめ

問い合わせの種類によって対応するエージェントを同一にすることは、よりより体験の1つ鍵になるのではないでしょうか。

弊社ではAmazon Connectのキャンペーンを行なっております。

また音声を中心とした各種ソリューションの開発支援も行なっております。