Cierre de sesión automático de los agentes cuando cierran su CCP con el CCPv1 de Amazon Connect
importante
Este tema solo se aplica a los clientes que utilizan CCPv1. La URL de CCPv1 termina en /ccp#.
Cuando se utiliza el CCPv1 de Amazon Connect predeterminado, al cerrar la ventana del CCP o al cerrar la sesión no cambia automáticamente el estado de un agente de Disponible a Sin conexión. Un agente debe cambiar su estado manualmente a Sin conexión y, a continuación, cerrar la sesión.
Para cambiar este comportamiento, puede elegir una de las siguientes opciones:
-
Utilice CCPv2. Cuando los agentes cierran sesión, su estado pasa automáticamente a Sin conexión. No obstante, tenga en cuenta que CCPv2 no cambia automáticamente los agentes a Sin conexión si solo cierran la ventana. Para obtener instrucciones sobre cómo actualizar a CCPv2, consulte Actualización de su panel de control de contacto (CCP) cuando su URL del CCP termina en /ccp#.
-
Utilice la API CreateAgentStatus: puede cambiar el estado del agente a Sin conexión.
-
Cree una CCP personalizada. Consulte API de Amazon Connect Streams
y API de agente -
Realice los pasos de este tema para actualizar el CCP de modo que cambie a los agentes a Sin conexión y cierre automáticamente la sesión de los agentes cuando cierren la ventana del CCP.
Paso 1: Configurar la API de Streams
Para obtener instrucciones, consulte la Documentación de Amazon Connect Streams
Paso 2: Actualizar el código de la aplicación para cambiar el estado del agente
Integre las siguientes llamadas a la API de Streams en su aplicación web:
-
Utilice connect.agent()
para suscribirse a eventos del agente y recuperar objetos del agente. let mAgent; connect.agent(function(agent) { mAgent = agent; });
-
Llame a agent.setState()
en el controlador de eventos onbeforeunload para cambiar el estado del agente. El agente se marca como Sin conexión después de ejecutar la función beforeunload
.Utilizar el enlace
beforeunload
es la mejor opción, pero tenga en cuenta que no funciona de forma coherente.window.addEventListener("beforeunload", function(event) { if (mAgent != null) { let states = mAgent.getAgentStates(); // "states" is an array of changeable states. You can filter the desired state to change by name. let offlineState = states.filter(state => state.name === "Offline")[0]; // Change agent state mAgent.setState(offlineState, { success: function() { console.log("SetState succeeded"); }, failure: function() { console.log("SetState failed"); } }); } });
Paso 3: Diseñar teniendo en cuenta los errores
Si una llamada a la API no se ejecuta la primera vez y un contacto toma la rama de error de su flujo, existe la posibilidad de que el estado de un agente no cambie como se esperaba. Asegúrese de incluir lógica para dar cuenta de esta posibilidad. Por ejemplo, podría retrasar la descarga de la página mientras se intenta de nuevo la llamada a la API. Otra posibilidad es mostrar un mensaje de advertencia "Call failed" (La llamada no se realizó correctamente) en un cuadro de diálogo modal antes de descargar la página.