Determinar o horário de ACW (trabalho pós-contato) do atendente da central de atendimento
Não há nenhum evento no fluxo de eventos do agente que informa quanto tempo um contato permanece no estado de ACW e, consequentemente, quanto tempo um atendente gasta fazendo ACW. No entanto, há outros dados no fluxo de eventos do agente que você pode usar para descobrir essa informação.
Primeiro, identifique quando o contato entrou em ACW. Veja como fazer isso:
-
Identifique quando a conversa entre o contato e o agente
ENDED
. -
Visualize o
StateStartTimeStamp
para o evento.
Por exemplo, na saída de fluxo de eventos do agente a seguir, o contato entra no estado de ACW em "StateStartTimestamp": "2019-05-25T18:55:27.017Z".
dica
No fluxo de eventos do agente, os eventos são listados em ordem cronológica inversa. Recomendamos ler os exemplos a seguir, começando pela parte inferior de cada exemplo.
{ "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" }
Depois, determine quando um contato saiu do ACW. Veja como fazer isso:
-
Encontre onde o
CurrentAgentSnapshot
não tem contatos, e o estado do contato listado noPreviousAgentSnapshot
é igual a ENDED.Como um evento STATE_CHANGE também ocorre quando a configuração do agente é alterada, por exemplo, quando ele recebe um perfil de roteamento diferente, esta etapa confirma que você está vendo o evento correto.
-
Encontre onde o
EventType
= "STATE_CHANGE". -
Visualize o
EventTimeStamp
dele.
Por exemplo, no arquivo de fluxo de eventos do agente a seguir, o contato sai do ACW em "EventTimestamp": "2019-05-25T18:55:32.022Z".
{ "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" }
Por fim, para calcular a quantidade de tempo em que o contato permaneceu no estado de ACW e, consequentemente, quanto tempo o agente gastou trabalhando nele:
-
Subtraia "StateStartTimestamp": "2019-05-25T18:55:27.017Z" do "EventTimestamp": "2019-05-25T18:55:32.022Z".
Neste exemplo, o agente passou 5,005 segundos fazendo o ACW para o ContactId-1.