Modèle de document de Conception technique

Les documents de conception technique (TDD) décrivent les détails d’un système. Ils constituent une partie importante de la planification de votre intégration d’agent virtuel personnalisée. Cette page est un guide pour créer un TDD pour votre intégration d’agent virtuel personnalisée.

Chaque section de ce modèle de TDD contient des exemples ou des informations supplémentaires sur le contenu prévu pour cette section. Dans la mesure du possible, les exemples se rapportent à l’exemple d’intégration d’agent virtuel textuel.

Utilisez ce guide de TDD et l’exemple d’intégration comme point de départ pour la planification de votre propre intégration personnalisée. Toutefois, comme ils sont fournis à titre d’exemples, ni le TDD ni le tunnel proxy exemple ne sont conçus pour un environnement spécifique. Le TDD et le tunnel proxy que vous créez doivent tenir compte de l’architecture réseau et des exigences propres à votre organisation. Vous devrez peut-être ajouter ou supprimer des sections pour répondre aux besoins de votre environnement.

Vue d’ensemble

Cette documentation de conception technique décrit l’intégration personnalisée de [votre agent virtuel] avec NiCE CXone. L’intégration comprend les éléments suivants qui doivent être décrits dans cette documentation :

  • Architecture, y compris le logiciel intermédiaire du tunnel mandataire/de la passerelle.
  • Exigences en matière de configuration NiCE CXone, y compris les compétences, les points d’accès et les canaux.
  • Virtual Agent Hub et le terminal pour les intégrations d’agents virtuels personnalisées (Terminal d’échange personnalisé).
  • Scripts Studio, y compris le code Snippet.
  • Exigences d’authentification.
  • Configuration de l’agent virtuel, terminaux, détails d’origine du Message.
  • Schémas JSON de contenu multimédia enrichi Digital Experience (DX).
  • Mappage des schémas de requête et de réponse.
  • [Autres composants propres à votre architecture et à votre intégration].

Vue d’ensemble de l’architecture

À faire : Créez un diagramme de vue d’ensemble de votre intégration. Incluez toutes les composantes de votre environnement qui interviennent dans le traitement d’une interaction. Cela comprend le tunnel proxy, l’agent virtuel, un serveur d’autorisation, etc. Incluez une description de vue d’ensemble. Créez des diagrammes supplémentaires si vous devez montrer certaines parties plus en détail.

Exemple

Voici un exemple d’intégration d’agent virtuel textuel sur un canal de clavardage ACD. Comme il s’agit d’un exemple d’intégration, certains éléments diffèrent d’une intégration réelle :

Il s’agit d’une intégration simple qui ne nécessite aucune autorisation.

Configuration NiCE CXone

À faire : Énumérez le canalClosed Divers moyens de communication vocale et numérique qui facilitent les interactions avec les clients dans un centre de contacts., les compétencesClosed Utilisé pour automatiser la livraison des interactions en fonction des compétences, des aptitudes et des connaissances de l’agent., les points de contactClosed point d’entrée qu’un contact entrant utilise pour amorcer une interaction, comme un numéro de téléphone ou une adresse courriel., les campagnes et tout autre paramètre de configuration NiCE CXone pertinent. Si votre intégration utilise un canal Digital Experience (DX) (Digital), incluez le canal Digital Experience (DX) et les compétences numériques requises ou les files d’attente de routageClosed Déterminent vers quels agents acheminer les dossiers numériques, à l’aide de critères tels que l’expertise de l’agent dans ce type de dossier.. Pour plus d’informations, consultez Exigences de configuration NiCE CXone sur la page Ressources.

Exemple

  • Canal : clavardage ACD.
  • Compétence : compétence de clavardage appelée IBChat_CEESample.
  • Point de contact : point de contact de clavardage appelé IBChat_CEESample.
  • Campagne : CEESample.

Exigences en matière de canaux

Comme il s’agit d’une intégration d’exemple, aucun profil de clavardage n’est requis. Toutefois, dans une véritable intégration, cette section préciserait les exigences relatives au profil de clavardage. Le profil de clavardage définit l’aspect de la fenêtre de clavardage. Cette section énumérerait également les pages du site Web où se trouverait la bulle de clavardage, ainsi que toute autre exigence connexe.

Configuration Virtual Agent Hub

À faire : Énumérez l’url webhook de votre agent virtuel et tout paramètre que votre agent virtuel exige que l’on envoie avec les demandes. Si vous déterminez que vous avez besoin d’un dépassement de délai différent, ajoutez-le à cette section. Le processus de configuration complet du terminal d’échange personnalisé dans Virtual Agent Hub est décrit sur la page Implémentation.

Exemple

  • Url webhook : https://https://4db3-5-46-62-207.nrgok.io/proxy/performbotexchange
  • Paramètres de Terminal : Aucun paramètre requis
  • En-têtes personnalisés (version d’Intégration 2.0.0 et 3.0.0 uniquement) : Aucun en-tête requis
  • Dépassement de délai : Aucune modification nécessaire
  • En-tête d’autorisation : Aucun en-tête requis
  • OAuth Configuration: None required
    • URL OAuth : N/A
    • Paramètres de Demande OAuth : N/A
    • En-têtes OAuth : N/A

Notez que dans la version d’intégration 1.0.0, l’authentification dynamique doit être configurée dans le script, et non dans Virtual Agent Hub.

Scripts Studio

À faire : Ajoutez des captures d’écran des scripts que vous concevez pour votre intégration d’agent virtuel personnalisée, ainsi que des explications. Incluez des descriptions des variables, des extraits de code et d’autres détails si nécessaire. Pour plus de renseignements, consultez les directives et exigences relatives aux scripts.

Exemple de script de clavardage

Il s’agit du même script utilisé dans l’intégration d’exemple. Vous pouvez l’utiliser comme base pour votre propre script. Des scripts d’exemple sont également fournis pour les agents virtuels voix et numériques .

télécharger ce script.

Ce script commence par une action Snippet qui crée plusieurs objets de données dynamiques requis pour une intégration d'agent virtuel :

  • intentInfo
  • nextPromptSequence
  • nextPromptBehaviors
  • customPayload
  • botSessionState

La première action Échange textbot définit l'intentionClosed La signification ou le but derrière ce qu’un contact dit/tape ; ce que le contact veut communiquer ou accomplir. à laquelle l'agent virtuel doit répondre comme l'intention de bienvenue. Lorsque l'agent virtuel répond, il remplit les objets botSessionState et customPayload et les convertit en JSON à l'aide de la fonction .asjson().

La première action Échange textbot comporte trois branches :

  • Erreur : la branche d'erreur traite l'erreur et fournit un message approprié au contact.
  • Redonner le contrôle au Script : cette branche est empruntée lorsque l'agent virtuel signale que la Conversation est terminée ou que le contact doit être transféré à un Agent en direct.
  • Inviter et recueillir la Réponse suivante : cette branche poursuit la conversation, comme décrit ci-dessous.

Le script transmet les données reçues de l'agent virtuel dans les objets botsessionState, customPayloadFromBot, intentInfo et nextPrompt. L'action Askcaller invite le contact avec la réponse de l'agent virtuel (nextPrompt). Cette action comporte quatre branches :

  • Erreur
  • Redonner le contrôle au Script
  • L'Appelant a répondu
  • Par défaut

Toutes les branches mènent à la deuxième action Échange textbot, qui envoie les informations appropriées à l'agent virtuel, y compris la prochaine demande du contact dans la Variable RES. Cet Échange textbot comporte les mêmes branches que la première instance de l'action dans le script.

Autorisation du Terminal de service

À faire : Déterminez les exigences d'autorisation de votre service d'agent virtuel. Si une autorisation est requise, remplissez cette Section du TDD. Créez un diagramme illustrant les exigences en matière d'autorisation pour votre environnement. Incluez les détails de ce qui est requis pour les demandes d'autorisation. Cela peut inclure :

  • Le type d’autorisation (en-têtes ou jetons).
  • Les paires clé-valeur pour tous les en-têtes requis. Si vous utilisez la version personnalisée de l'échange 1.0.0, vous avez uniquement besoin de la valeur pour l'en-tête.
  • Toute configuration requise pour le service d’agent virtuel si vous utilisez des en-têtes ou le serveur d’autorisation si vous utilisez des jetons.
  • L’URL du serveur d’autorisation, si vous utilisez des jetons.
  • Les paires clé-valeur nécessaires pour le corps et les en-têtes de la requête OAuth.
  • Si vous devez ou souhaitez personnaliser d'autres paramètres de OAuth, précisez ces changements. Vous pouvez modifier le nom de l'en-tête, le préfixe de la valeur de l'en-tête et le délai d'expiration du jeton.

Pour plus d’informations, voir la section Autorisation sur la page Ressources.

Exemple de terminaux de service non autorisés (publics)

L'exemple d'intégration n'a pas besoin d'autorisation. Le diagramme suivant montre un exemple de ce à quoi pourrait ressembler un terminal de service public.

Dans cet exemple, la demande provient de Virtual Agent Hub. Elle interagit d'abord avec la passerelle API, puis avec le service d'agent virtuel.

Exemple de terminaux de service autorisés

Lorsqu'un service d'agent virtuel exige une autorisation pour recevoir des demandes, vous devez envoyer des en-têtes d'autorisation avec chaque demande. Vous pouvez également utiliser l'authentification dynamique, qui nécessite un serveur d'autorisation (fournisseur de jetons). L'architecture d'une intégration qui utilise des en-têtes ressemblerait à celle de l'exemple de terminal de service public présenté dans la section précédente. Le diagramme suivant montre un exemple d'implémentation de l'authentification dynamique.

Dans cet exemple, lorsque le script commence, une demande REST est envoyée au serveur d'autorisation, qui fournit un jeton. Le jeton est envoyé au terminal d'échange personnalisé. Tant que le jeton est valide, les demandes peuvent être envoyées au service d'agent virtuel.

Tunnel mandataire

À faire : Déterminez les détails de votre tunnel mandataire, y compris :

  • Comment votre tunnel mandataire sera hébergé.
  • Le langage dans lequel le tunnel mandataire sera développé et les applications, dépendances, SDK, packs d’extension, etc. nécessaires.
  • Une stratégie de basculement du tunnel mandataire.

Exemple

Hébergement du tunnel mandataire

L'exemple de tunnel mandataire sera hébergé sur la machine locale de la personne qui met en place l'exemple d'intégration d'un agent virtuel textuel.

Langage

Le tunnel mandataire sera développé en C#. Il nécessitera l'éditeur VS Code et un SDK .NET.

Stratégie de basculement

Comme il s’agit d’un exemple d’intégration, aucune stratégie de basculement n’est nécessaire.

Cas d'utilisation de l'Agent virtuel - Mappage du mandataire au Terminal de l'Agent virtuel

À faire : Créez un diagramme de séquence détaillé qui illustre les réponses et les demandes utilisées à chaque point pendant une interaction. Documentez les schémas de demande et de réponse dans NiCE CXone et dans votre service d'agent virtuel que nécessite votre intégration personnalisée. L'exemple de cette section montre uniquement les schémas pour NiCE CXone. Pour plus d'informations, consultez la section Tunnel mandataire et la section Diagrammes de Séquence sur la page Ressources.

Exemple

Le diagramme de séquence et tout ce qui suit est un exemple basé sur Swagger disponible au moment de la publication. Utilisez toujours les schémas documentés dans le Swagger Un carré avec une flèche partant du centre vers l'extérieur. accessible publiquement pour les intégrations d'agent virtuel personnalisées. Les schémas du terminal d'échange personnalisé peuvent être mis à jour périodiquement. Pour plus d'informations sur l'impact de ces mises à jour sur votre intégration personnalisée, consultez la page Ressources.

Schémas de Demande et de Réponse

Les schémas des demandes sont inclus dans cette page, à titre d'exemple de documentation des schémas. Pour obtenir des explications détaillées sur les schémas d'intégration de l'agent virtuel personnalisé, consultez la page Schémas.

Requête — ExternalIntegrationBotExchangeRequest

Paramètre

Catégorie

Description

virtualAgentId String

Le nom donné à l'application de configuration du Terminal d'échange personnalisé dans Virtual Agent Hub. Ce nom identifie l'agent virtuel que l'application invoque.

botConfig Objet Les paramètres définis dans botConfig sont traités dans d'autres sections de ce document.
userInput String L’entrée de texte de l’utilisateur reçue du point d’accèsClosed point d’entrée qu’un contact entrant utilise pour amorcer une interaction, comme un numéro de téléphone ou une adresse courriel. auquel le script est assigné.
userInputType Énumération Le type d’entrée utilisateur fourni par le script.
executionInfo ActionExecutionInfo Données télémétriques pour l’exécution d’une actionClosed Exécute un processus dans un script Studio, comme la collecte de données clients ou la lecture de musique. dans un script.
systemTelemetryData SystemTelemetryData Données pouvant être utilisées pour le débogage. Contient des informations sur l'infrastructure NiCE CXone.
base64wavFile String Contient le fichier WAV codé en base 64 qui contient l’en-tête de la requête et l’audio de l’énoncéClosed Ce qu’un contact dit ou tape. de l’utilisateur.
botSessionState Objet Peut être utilisé pour les variables d’information de session aller-retour reçues de l’agent virtuel.
customPayload Objet Peut être utilisé pour envoyer des variables et des paramètres supplémentaires à partir du contexte du script Studio.
mediaType String Indique le type de support du script en cours d’exécution.

Requête — ActionExecutionInfo

Paramètre

Catégorie

Description

contactID Nombre entier L’identifiant unique de l’interaction.
busNo Nombre entier L’identifiant unique du 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..
requestId Nombre entier

Un numéro itératif qui identifie chaque demande dans une interaction particulière.

 

type d'action String Le type d’action qui effectue la requête auprès du terminal d’échange personnalisé.
ID d'action Nombre entier L'identifiant unique de l'actionClosed Exécute un processus dans un script Studio, comme la collecte de données clients ou la lecture de musique. dans le script. Les ID d'action sont basés sur l'ordre dans lequel les actions ont été ajoutées au script.
scriptName String Le nom du script.

Requête — SystemTelemetryData

Paramètre

Catégorie

Description

consumerProccessHost String Le nom d’hôte de l’application qui appelle l’API.
consumerProcessName String Le nom du processus ou de l'application de l'appelant API. Par exemple, EsnMediaServer.exe.
consumerProcessVersion String Toute information sur la version de l’application qui appelle l’API.
inContactClusterAlias String Le cas échéant et si disponible, indiquez l’alias du cluster NiCE CXone, tel que C7 ou M33.
inContactScriptEngineHost String Le cas échéant et si disponible, indiquez le nom de l’hôte du moteur de script NiCE CXone, tel que lax-c4cor01 ou aoa-c32cor01.
consumerMetaData Objet Données arbitraires et extensibles sur le consommateur d’API.

Contenu multimédia enrichi pour Digital Channels

Si vous configurez une intégration personnalisée d'agent virtuel pour un canal Digital Experience (DX) (Digital), vous pouvez choisir de prendre en charge le contenu multimédia enrichi dans les Messages. Le contenu multimédia enrichi comprend des éléments tels que des sélecteurs de liste, des Images, des sélecteurs d'heure, etc.

À faire : Configurez votre script numérique pour envoyer du contenu multimédia enrichi. Déterminez quel contenu multimédia enrichi vous souhaitez prendre en charge et ajoutez les schémas du contenu à cette Section de votre TDD.

Exemple

L'exemple d'intégration n'utilise pas de canal Digital Experience (DX). Toutefois, voici un exemple de schéma JSON pour les réponses rapides sur un canal de clavardage numérique :

"messageContent": {

"type": "PLUGIN",

"payload": {

	"elements": [

	 {

		"id": "Ukm0hRAiA",

		"type": "QUICK_REPLIES",

		"elements": [

				{

					"id": "Akm0hRAiX",

					"type": "TEXT",

					"text": "This is some text"

				},

				{

					"id": "Nkm0hRAiE",

					"type": "BUTTON",

					"text": "Button 1",

					"postback": "click-on-button-1"

				},

				{

				

					"id": "TkGJ6CAiN",

					"type": "BUTTON",

					"text": "Button 2",

					"postback": "click-on-button-2"

				},

				{

					"id": "EyCyTRCi4",

					"type": "BUTTON",

					"text": "Button 3",

					"postback": "click-on-button-3"

				}

			 ]

			}

		]

 	}

}