Data Management

Les centres de contact traitent des volumes de données colossaux, des données de reporting aux listes d’appels. Il peut vous être nécessaire de transférer des données à partir de et vers NiCE CXone, et de travailler avec les données qui se trouvent dans NiCE CXone. Votre manière de travailler avec les données dans les Studio Scripts ou les API a une incidence sur les performances de votre système et sur la qualité de vos interactions. Cette page vous aide à gérer les données de manière efficace.

Un outil adapté à la tâche

Studio a pour principale finalité de contrôler l’acheminement des contacts. Tout ce que vous faites dans un script Studio devrait être axé sur les contacts. Tout traitement de données dont vous avez besoin et qui n'est pas lié aux contacts doit être effectué en dehors de Studio. Studio n'est pas conçu pour traiter de grandes quantités de données ; il a donc une limite de données de 32 Ko. Cette limite est suffisante pour travailler avec les contacts et préserver le bon fonctionnement des serveurs.

Voici une tâche nécessitant de gérer des données, avec deux exemples de réalisation.

Exemple de tâche : Analyser les données des Agent au quotidien afin d'identifier des problèmes potentiels tels que des pauses excessivement longues ou des pauses non programmées.

Solution inappropriée : Créer un script Studio programmé qui s'exécute tous les jours. Dans un premier temps, le script effectue des appels d’API pour extraire la liste d’agents du jour, puis l’historique des états d’agent sur la journée. Le script vérifie ensuite si un Agent a pris une pause de plus de 30 minutes qui n'était pas programmée. Elle recherche également toute pause manifestement longue, comme une pause toilettes de quatre heures. Le script identifie aussi les agents qui ont passé le plus de temps dans un état indisponible, et ceux qui ont passé le plus de temps dans une compétenceClosed Utilisé pour automatiser la livraison des interactions en fonction des compétences, des aptitudes et des connaissances de l’agent. particulière.

Pourquoi cette méthode est mauvaise :

  • La tâche n’est pas axée sur un contact précis ; Studio n’est pas l’outil qui convient.

  • Studio n’est pas destiné à traiter de grands volumes de données, il est conçu pour la gestion des contacts. Votre locataireClosed Regroupement organisationnel de haut niveau utilisé pour gérer le soutien technique, la facturation et les paramètres globaux de votre système NiCE CXone. risque de rencontrer des problèmes de performance, car une quantité importante de données en mémoire pèse sur le bon fonctionnement des serveurs.

  • Studio est soumis à une limite de 32 Ko. Cette méthode vous oblige à fragmenter les données afin de respecter la limite. Par conséquent, le script pourrait s'exécuter pendant une longue période, ce qui demande beaucoup de ressources.

  • Cette tâche est mieux résolue par l'ingénierie, qui peut utiliser les API NiCE CXone, plutôt qu'un script Studio.

  • Studio fonctionne de manière optimale en identifiant des informations précises, par exemple un agent qui a passé le plus de temps dans un état particulier ou qui a traité le plus petit nombre d’appels. Le traitement des données sur un serveur externe vous permet de produire des métriques plus précieuses.


Solution adaptée : il s’agit d’une méthode parmi d’autres pour résoudre la tâche. Dans votre situation, il peut être nécessaire de choisir une autre approche.

Une méthode permettant de résoudre cette tâche consiste à utiliser Python s'exécutant sur un serveur AWS, qui offre une puissance de traitement supérieure. À partir du serveur, effectuez les mêmes appels d’API pour extraire la liste d’agents et l’historique des états d’agents pour la journée. Insérez les données dans un tableau ou éventuellement dans un tableau. Une table de base de données serait préférable pour vous permettre de comparer et d'analyser plus facilement les données à l'avenir. Les données renvoyées pourraient atteindre plusieurs mégaoctets, ce qui ne pose aucun problème avec une base de données, mais dépasse la limite de données de Studio. Vous auriez en mémoire l’historique complet des états de tous les agents ; vous pourriez utiliser l’intégralité des données au même endroit, plutôt que d’avoir des fragments de données dans un script Studio.

Vous pourriez alors commencer à travailler avec les données afin de produire les métriques voulues, par exemple une liste des agents classés en fonction du temps passé dans certains états. Une base de données aide à présenter les données comme bon vous semble, plutôt que de composer avec les contraintes d’un script Studio.

Pendant les appels actifs, le centre de contact The Jungle souhaite extraire les données clients de leur CRM et les afficher dans leur application Agent. Dans Studio, ils capturent d'abord des informations d'identification de base à partir du contact, comme un numéro de compte. Ensuite, le script envoie une demande GET à leur CRM, afin de vérifier si les informations correspondent à un enregistrement client. Si un enregistrement existe, il renvoie toutes les données clients. The Jungle ne souhaite pas afficher toutes les données clients, et l'API ne leur permet pas de préciser ce qui doit être renvoyé.

Leur solution consiste à concevoir un logiciel intermédiaire entre Studio et le CRM. L’API renvoie le JSON au logiciel intermédiaire, qui analyse et extrait les données client voulues. Ensuite, les informations sont transmises à Studio. Cela permet également à The Jungle de rester dans la limite de données de 32 Ko.

Mode Push ou interrogation

En général, vous souhaitez utiliser une architecture basée sur le push. L’interrogation à répétition est coûteuse en ressources, alors qu’en mode Push, les données sont transmises à la demande. Aucune ressource n’est consommée si elle n’est pas nécessaire. En poussant les données, vous pouvez traiter des blocs de données plus petits. La transmission de données est souvent effectuée pour des besoins en temps réel, comme un seul contact actif. L’interrogation est souvent utilisée pour les intégrations et elle ne permet pas le même niveau de décomposition ou de segmentation.

Vous pouvez, par exemple, vouloir actualiser l’interface de l’agent lorsqu’il met un appel téléphonique en attente. If vous avez utilisé le /get-next-event API dans un script pour écouter (ou interroger) l'événement de mise en attente provenant du client agent, cela bloquerait constamment un thread. Il est plus judicieux de pousser les données dans une seule instance pour éviter d’utiliser constamment des ressources serveur. Dans des cas similaires, peut-être avec des intégrations CRM, au lieu d'attendre le retour d'une demande, effectuez un Appel API qui transmet les données et libère le thread. Ensuite, utilisez le signal API renvoie les données au script. Vous pourriez également effectuer un Appel API pour vérifier si cette demande est terminée et, si oui, envoyer les données.

Traitement de grandes quantités de données

Si vous souhaitez gérer de grands ensembles DE données, comme les données historiques de l'ensemble de votre centre de contact, utilisez les NiCE CXone API ou NiCE CXone Data Share. Sur une grande échelle, vous pouvez utiliser Snowflake pour extraire toutes les données de votre unité commerciale; Data Share vous offre un pipeline direct pour les données de votre centre de contact, de sorte que vous n'êtes pas limité à effectuer des Appels API pour extraire des données.

Sur une échelle plus réduite, l’exemple de tâche présenté ci-dessus peut se révéler optimal. Les petites entreprises qui ne disposent pas d'un volume important de données, ou les entreprises qui souhaitent trouver des Metrics spécifiques, peuvent créer de Petites applications pour des tâches similaires. Par exemple, vous pouvez créer une application qui envoie des e-mails aux responsables s'ils ont des employés ayant passé trop de temps dans un certain état.

Exemple – Éviter les grands Ensembles DE données dans les scripts

Les exemples qui suivent présentent des cas de figure où il est possible d’éviter d’utiliser des grands ensembles DE données dans les scripts Studio. Vous pouvez également vous reporter à l'exemple ci-dessus, qui évite de transférer trop de données clients d'un CRM vers Studio.

  • Filtres des réponses de l'API par champ :

    Certaines API offrent la possibilité de filtrer les informations renvoyées. Par exemple, si vous demandez à un CRM de renvoyer des informations pour un cas, certaines API CRM vous permettent de préciser exactement quels champs d'informations vous souhaitez obtenir en retour. Si l’API que vous utilisez offre cette fonctionnalité, vous pouvez éviter d’utiliser des grands ensembles DE données simplement en travaillant avec les données dont vous avez vraiment besoin. Si une API ne propose pas cette fonctionnalité, il est judicieux de demander à l’éditeur de l’API d’ajouter cette option. Sinon, vous pouvez concevoir un logiciel intermédiaire. Le middleware peut recevoir les données avant Studio, vous pouvez filtrer ce qui est inutile, puis renvoyer les données à Studio.

  • Filtres des réponses API par période :

    Si une API vous permet de filtrer par une durée, utilisez cette fonctionnalité pour minimiser la quantité de données. Si vous n'avez besoin que des données d'une journée ou d'une semaine, veillez à filtrer la réponse pour inclure uniquement les données comprises dans cette plage horaire.

  • Filtre des données pour des contacts individuels :

    Studio n'est pas un outil de gestion des données, c'est un outil de gestion des contacts. Grâce aux capacités de Studio et des actions Studio, vous pouvez travailler avec des données qui concernent principalement un contact particulier. Pour cibler les données des différents contacts, vous pouvez notamment recueillir des informations par le biais d’un IVR ou en extrayant les données CRM d’un seul dossier.

Stockage de données

Vous disposez de plusieurs options pour stocker les données. Si vous disposez d'un compte Snowflake, vous pouvez déplacer les données de votre centre de contact de NiCE CXone vers Snowflake à l'aide de Studio. NiCE stocke vos données pendant 24 mois, que vous pouvez récupérer depuis Snowflake. Vous pouvez également utiliser le Cloud Storage Services pour stocker des fichiers tels que des enregistrements de l’appel ou des transcriptions du clavardage, ou les déplacer vers vos propres serveurs. Contactez votre représentant de compte NiCE CXone pour plus d'informations.

Coûts imprévus

En général, vous ne subirez pas de surcoût si vous effectuez un trop grand nombre d’appels d’API ou autre opération similaire. En revanche, les modalités de stockage de certaines données peuvent entraîner des frais. Voici quelques exemples où le stockage inadapté des données a abouti à la facturation de frais imprévus :

  • Création de nombreuses variables de script qui sont ensuite stockées dans un fichier texte pour chaque contact sans prévoir de processus pour purger ces fichiers.

  • Enregistrement chemin de frappe IVR informations dans des fichiers pour une utilisation ultérieure. par exemple pour compiler des rapports.

  • Stockage des résultats d’API dans un fichier qui s’accroît à mesure que les résultats sont ajoutés. Au fil du temps, comme le fichier devient plus volumineux, cela génère des coûts de stockage.

  • Storing files on NiCE CXone Cloud Storage. If you use Cloud Storage, be sure you're aware of any parameters around storage. You can reference the help content for Cloud Storage or contact a support representative.

Appels API depuis Studio

Les API vous permettent de travailler avec les données de manière efficace et performante. Vous pouvez effectuer des appels d’API à partir de Studio grâce aux actions répertoriées ci-dessous. La liste suivante explique ce qui différencie l’utilisation de ces actions d’un point de vue technique :

  • SNIPPET : Vous permet d'ajouter du code personnalisé à un script. Vous pouvez utiliser cette action pour effectuer des appels d’API, préparer des charges utiles, analyser des objets de données dynamiques, etc. Lorsque vous effectuez des appels d’API avec cette action, méfiez-vous de la vitesse de réponse. Cette action utilise un thread pendant toute la période où elle est active. Si la réponse est lente, ce qui signifie que le thread est bloqué pendant toute la durée, cela peut avoir un impact négatif sur les performances du serveur. Par exemple, un appelant pourra entendre des silences si tous les threads sont utilisés en même temps.

  • REST API : permet d'effectuer des appels REST API et utilise moins de ressources serveur. Il est recommandé d’utiliser cette action pour effectuer des appels d’API dès que possible ; cependant, elle accepte uniquement des fichiers JSON. Si une API ne renvoie pas de JSON, il peut être nécessaire d'utiliser l'action SNIPPET à la place. Selon votre tâche, il peut être nécessaire d'utiliser cette action en combinaison avec SNIPPET, car SNIPPET peut effectuer des opérations telles que la préparation de charges utiles.

  • CONNECTAUTH : authentifie un connecteur créé dans Integration Hub. Integration Hub est une source centralisée permettant de créer, gérer et exécuter des intégrations depuis NiCE CXone vers des plateformes tierces. Cette action ne bloque pas de threads.

  • CONNECTREQUEST : déclenche une demande Integration Hub après son authentification. Cette action ne bloque pas de threads.

Autres Studio Actions liées aux données

Studio propose plusieurs actions qui stockent temporairement et récupèrent de petites quantités de données dans une table de base de données pour qu’elles soient accessibles à d’autres scripts. Ces actions ont un comportement semblables à une liste de champs ou de valeurs. Utilisez-les pour stocker plusieurs valeurs ou des valeurs nécessaires plus loin dans d'autres scripts. La liste complète des actions est la suivante : PUTVALUE, GETVALUE, REMVALUE, GETLIST, et CLEARLIST.

Ces actions utilisent un type de données unique accessible uniquement à l'aide de cet ensemble deStudio Actions. Les données ne sont pas accessibles autrement. Les utilisateurs ne peuvent pas accéder à cette base de données et l'utiliser, quelles que soient leurs autorisations.

Les valeurs sont répertoriées dans une table de base de données pendant une durée limitée, telle que configurée dans la propriété TTL en heures (durée de vie) de l'action PUTVALUE.La valeur par défaut est de 24 heures, mais elle peut varier d'une heure à 168 heures (sept jours). Vous pouvez utiliser l'action REMVALUE pour supprimer des données avant l'expiration du TTL.Cela vous donne un contrôle complet sur les données au sein de vos Scripts. La meilleure pratique consiste à supprimer les valeurs qui ne vont plus servir et à conserver la durée de vie TTL par défaut (24 h).

Remarques :

  • Si plusieurs variables doivent être accessibles par d'autres Scripts ou contacts, une base de données est généralement la meilleure solution.
  • Les variables publiques non persistantes peuvent être partagées par d'autres scripts ou contacts pendant toute la durée de vie du script qui définit ces variables. Les variables sont automatiquement supprimées une fois qu'elles sont libérées.
  • Ces actions ont une limite de 1 000 éléments dans la « liste ».
  • Un seul élément, ou élément de données, est également limité à 5 Ko.