Comment dois-je procéder pour que l'état d'un agent soit automatiquement défini sur « Hors ligne » lorsque cette personne ferme la fenêtre Panneau de configuration des contacts Amazon Connect ?

Date de la dernière mise à jour : 2021-12-13

Lorsqu'un agent de mon centre de contact Amazon Connect ferme la fenêtre Panneau de configuration des contacts (CCP), je souhaite que son statut soit automatiquement défini sur Hors ligne. Comment puis-je procéder ?

Brève description

Utilisez l’API des flux Amazon Connect et l'API de l'agent pour intégrer le CCP dans une application personnalisée pour votre centre de contact.

Pour obtenir un exemple de configuration CCP personnalisée, consultez Comment afficher les attributs de contact de l'appelant dans une fenêtre contextuelle Amazon Connect ?

Remarque : lorsque vous utilisez le CCP d'Amazon Connect par défaut, sa fermeture ne modifie pas le statut d'un agent de Disponible à Hors ligne. Un agent doit modifier son statut manuellement.

Solution

Important : Les instructions suivantes fournissent des exemples et des ressources de base. Vous devez déterminer comment implémenter les flux d'API et développer le code client JavaScript pour votre propre cas d'utilisation et les exigences du centre de contact.

Configuration du CCP de votre instance Amazon Connect dans une application web personnalisée

Pour obtenir des instructions, consultez la section documentation sur les flux Amazon Connect.

Mettre à jour votre code d'application

Intégrez les appels d'API des flux suivants dans votre application web :

1.    Utilisez connect.agent() pour vous abonner aux événements de l'agent et récupérer les objets de l'agent.

let mAgent;
connect.agent(function(agent) {
 mAgent = agent;
});

2.    Appelez agent.setState() dans le gestionnaire d'événements onbeforeunload pour modifier l'état de l'agent.

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");
 }
 });
 }
});

Concevoir pour les erreurs

Le statut d'un agent peut ne pas être correctement modifié si un appel d'API échoue et qu'un contact prend la branche d'erreur de votre flux de contacts. Assurez-vous d'inclure une logique dans votre code personnalisé pour tenir compte de cette possibilité.

Vous pouvez par exemple retarder le déchargement de la page pendant que l'appel d'API est réessayé. Vous pouvez également afficher un message d'avertissement « Échec de l'appel » dans une boîte de dialogue modale contextuelle avant le déchargement de la page.