エージェントが ACW を実行する時間を決める - Amazon Connect

エージェントが ACW を実行する時間を決める

エージェントイベントストリームには、問い合わせが ACW 状態になっている時間と、エージェントが ACW の実行に費やす時間を示すイベントはありません。ただし、エージェントイベントストリームには、これらを把握するために使用できる他のデータが存在します。

まず、いつ問い合わせが ACW に入ったかを特定します。その方法を以下に示します。

  1. 問い合わせとエージェント間の会話が ENDED になったタイミングを特定します。

  2. イベントの StateStartTimeStamp を表示します。

例えば、次のエージェントイベントストリーム出力の例では、問い合わせは "StateStartTimestamp": "2019-05-25T18:55:27.017Z" に ACW 状態になります。

ヒント

エージェントイベントストリームでは、イベントは古い順にリスト化されます。各例の下部から開始して、以下の例を読み込むことをお勧めします。

{ "AWSAccountId": "012345678901", "AgentARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/agent/agent-ARN", "CurrentAgentSnapshot": { "AgentStatus": { "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/agent-state/agent-state-ARN", "Name": "Available", //This just refers to the status that the agent sets manually in the CCP. It means they are ready to handle contacts, not say, on Break. "StartTimestamp": "2019-05-25T18:43:59.049Z" }, "Configuration": { "AgentHierarchyGroups": null, "FirstName": "(Removed)", "LastName": "(Removed)", "RoutingProfile": { "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/routing-profile/routing-profile-ARN", "DefaultOutboundQueue": { "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN-for-BasicQueue", "Name": "BasicQueue" }, "InboundQueues": [ { "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN-for-BasicQueue", "Name": "BasicQueue" }, { "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN-for-PrimaryQueue", "Name": "PrimaryQueue" } ], "Name": "Basic Routing Profile" }, "Username": "(Removed)" }, "Contacts": [ { "Channel": "VOICE", "ConnectedToAgentTimestamp": "2019-05-25T18:55:21.011Z", "ContactId": "ContactId-1", //This is the same contact the agent was working on when their state was CONNECTED (below). Since it's still the same contact but they aren't connected, we know the contact is now in ACW state. "InitialContactId": null, "InitiationMethod": "OUTBOUND", //This indicates how the contact was initiated. OUTBOUND means the agent initiated contact with the customer. INBOUND means the customer initiated contact with your center. "Queue": { "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN-for-BasicQueue", "Name": "BasicQueue" }, "QueueTimestamp": null, "State": "ENDED", //This shows the conversation has ended. "StateStartTimestamp": "2019-05-25T18:55:27.017Z" //This is the timestamp for the ENDED event (above), which is when the contact entered ACW state. } ] }, "EventId": "EventId-1", "EventTimestamp": "2019-05-25T18:55:27.017Z", "EventType": "STATE_CHANGE", //This shows that the state of the contact has changed; above we can see the conversation ENDED. "InstanceARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111", "PreviousAgentSnapshot": { "AgentStatus": { "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/agent-state/agent-state-ARN", "Name": "Available", //This just refers to the status that the agent sets manually in the CCP. It means they were ready to handle contacts, not say, on Break. "StartTimestamp": "2019-05-25T18:43:59.049Z" }, "Configuration": { "AgentHierarchyGroups": null, "FirstName": "(Removed)", "LastName": "(Removed)", "RoutingProfile": { "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/routing-profile/routing-profile-ARN", "DefaultOutboundQueue": { "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN-for-BasicQueue", "Name": "BasicQueue" }, "InboundQueues": [ { "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN-for-BasicQueue", "Name": "BasicQueue" }, { "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN-for-PrimaryQueue", "Name": "PrimaryQueue" } ], "Name": "Basic Routing Profile" }, "Username": "(Removed)" }, "Contacts": [ { "Channel": "VOICE", //This shows the agent and contact were talking on the phone. "ConnectedToAgentTimestamp": "2019-05-25T18:55:21.011Z", "ContactId": "ContactId-1", //This shows the agent was working with a contact identified as "ContactId-1". "InitialContactId": null, "InitiationMethod": "OUTBOUND", "Queue": { "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN-for-BasicQueue", "Name": "BasicQueue" }, "QueueTimestamp": null, "State": "CONNECTED", //This shows the contact was CONNECTED to the agent, instead of say, MISSED. "StateStartTimestamp": "2019-05-25T18:55:21.011Z" //This shows when the contact was connected to the agent. } ] }, "Version": "2019-05-25" }

次に、いつ問い合わせが ACW から退出したかを判断します。その方法を以下に示します。

  1. CurrentAgentSnapshot に問い合わせがなく、PreviousAgentSnapshot にリストされている問い合わせの状態が ENDED と一致する箇所を検索します。

    STATE_CHANGE イベントは、エージェントの設定が変更されたときにも発生するため (別のルーティングプロファイルが割り当てられている場合など)、適切なイベントがあることを確認します。

  2. EventType = "STATE_CHANGE" の箇所を検索します。

  3. EventTimeStamp を表示します。

例えば、次のエージェントイベントストリームファイルの例では、問い合わせは "StateStartTimestamp": "2019-05-25T18:55:32.022Z" に ACW 状態ではなくなりました。

{ "AWSAccountId": "012345678901", "AgentARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/agent/agent-ARN", "CurrentAgentSnapshot": { "AgentStatus": { "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/agent-state/agent-state-ARN", "Name": "Available", //This just refers to the status that the agent sets manually in the CCP. It means they are ready to handle contacts, not say, on Break. "StartTimestamp": "2019-05-25T18:43:59.049Z" }, "Configuration": { "AgentHierarchyGroups": null, "FirstName": "(Removed)", "LastName": "(Removed)", "RoutingProfile": { "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/routing-profile/routing-profile-ARN", "DefaultOutboundQueue": { "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN-for-BasicQueue", "Name": "BasicQueue" }, "InboundQueues": [ { "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN-for-BasicQueue", "Name": "BasicQueue" }, { "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN-for-PrimaryQueue", "Name": "PrimaryQueue" } ], "Name": "Basic Routing Profile" }, "Username": "(Removed)" }, "Contacts": [] //Since a contact isn't listed here, it means ACW for ContactId-1 (below) is finished, and the agent is ready for a new contact to be routed to them. }, "EventId": "477f2c4f-cd1a-4785-b1a8-97023dc1229d", "EventTimestamp": "2019-05-25T18:55:32.022Z", //Here's the EventTimestamp for the STATE_CHANGE event. This is when the contact left ACW. "EventType": "STATE_CHANGE", //Here's the STATE_CHANGE "InstanceARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111", "PreviousAgentSnapshot": { "AgentStatus": { "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/agent-state/agent-state-ARN", "Name": "Available", //This just refers to the status that the agent sets manually in the CCP. It means they were at work, not say, on Break. "StartTimestamp": "2019-05-25T18:43:59.049Z" }, "Configuration": { "AgentHierarchyGroups": null, "FirstName": "(Removed)", "LastName": "(Removed)", "RoutingProfile": { "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/routing-profile/routing-profile-ARN", "DefaultOutboundQueue": { "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN-for-BasicQueue", "Name": "BasicQueue" }, "InboundQueues": [ { "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN-for-BasicQueue", "Name": "BasicQueue" }, { "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN-for-PrimaryQueue", "Name": "PrimaryQueue" } ], "Name": "Basic Routing Profile" }, "Username": "(Removed)" }, "Contacts": [ { "Channel": "VOICE", "ConnectedToAgentTimestamp": "2019-05-25T18:55:21.011Z", "ContactId": "ContactId-1", //This is the ContactId of the customer the agent was working on previously. "InitialContactId": null, "InitiationMethod": "OUTBOUND", "Queue": { "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN-for-BasicQueue", "Name": "BasicQueue" }, "QueueTimestamp": null, "State": "ENDED", //The ACW for ContactId-1 has ended. "StateStartTimestamp": "2019-05-25T18:55:27.017Z" } ] }, "Version": "2019-05-25" }

最後に、問い合わせが ACW 状態であった時間、つまり、エージェントがそれに費やした時間を計算します。

  • "StateStartTimestamp": "2019-05-25T18:55:27.017Z" を "EventTimestamp" : "2019-05-25T18:55:32.022Z" から減算します。

この例では、エージェントは ContactId-1 の ACW の実行に 5.005 秒かかりました。