VoiceBot Exchange

Intègre un agent virtuelFermé Une application logicielle qui gère les interactions avec les clients à la place d'un agent humain en direct. de libre-service avec des scripts vocaux. Cette action est utilisée dans une boucle dans le script. Un script doit contenir au moins deux actions VoiceBot Exchange . Votre agent virtuel doit prendre en charge cette action.

L’action Voicebot Exchange est destinée aux agents virtuels complexes ou aux situations où vous devez personnaliser le comportement de l’agent virtuel d’une étape à l’autre. Elle surveille tour à tour la conversation entre le contact et l’agent virtuel. Elle envoie chaque énoncéFermé Ce qu'un contact dit ou tape. à l’agent virtuel. L’agent virtuel analyse l’énoncé pour identifier l’intentionFermé La signification ou le but derrière ce qu'un contact dit/tape ; ce que le contact veut communiquer ou accomplir et le contexte, puis détermine la réponse à donner. L’action transmet la réponse de l’agent virtuel au contact. Lorsque la conversation est terminée, l'action continue le script.

Il s’agit de l'action à utiliser de préférence avec les agents virtuels vocaux. Si vous souhaitez configurerdébarquement ou pas d'entrée, des scripts supplémentaires sont requis. Si vous utilisez une connexion SIPFermé Protocole utilisé pour signaler et contrôler les sessions de communication multimédia telles que les appels vocaux et vidéo. backchannel, vous devez utiliser l’action Voicebot Conversation.

Double-cliquez sur cette action pour ouvrir le Virtual Agent Hub, où vous pouvez gérer tous vos agents virtuels.

Dependencies

  • Un script doit contenir au moins deux actions VoiceBot Exchange reliées dans une boucle.
  • Pour utiliser cette action, votre agent virtuel doit prendre en charge la personnalisation des conversations tour par tour.
  • Un tour de conversation est défini comme suit :

    1. L'énoncé de contact est envoyé à l'agent virtuel.
    2. L'agent virtuel traite l'énoncé et définit toute information de charge utile personnalisée.
    3. La réponse revenant au contact.
    4. Toutes les actions supplémentaires à entreprendre (telles qu'une base de données ou un appel d'API externe) qui sont déterminées dans la propriété nextPromptBehaviors. Vous pouvez également configurer la boucle conversationnelle afin de quitter lorsque l'interaction est terminée ou le si le contact est transféré à un agent humain.
  • Si vous incluez des charges utiles personnalisées au moyen d’agents virtuels Google Dialogflow ES ou Google Dialogflow CX, suivez les meilleures pratiques et les consignes relatives aux charges utiles personnalisées.  Les consignes pour CX et ES sont fournies sur cette page.

Supported Script Types

The icon for the Phone script type - an old-style phone handset with curved lines indicating sound coming out of it.

Téléphone

Comparison of Similar Actions

Les actions suivantes ont des fonctions similaires, mais présentent quelques différences essentielles :

  • Textbot Conversation: This action is only suitable for very simple virtual agents. It doesn't allow for customization of the virtual agent's behavior from turn to turn. It's not currently supported in CXone.
  • Textbot Exchange : cette action est destinée aux interactions d’agents virtuels complexes. Elle vous permet d'inclure des paramètres d'échange et de personnaliser divers aspects de la conversation entre le contact et l’agent virtuel.
  • Voicebot Conversation : cette action ne convient qu’aux agents virtuels très simples. Il ne permet pas de personnaliser le comportement de l’agent virtuel d’un tour à l'autre. Si vous voulez utiliser une connexion SIP backchannel et que votre agent virtuel la prend en charge, vous devez utiliser Voicebot Conversation.
  • Voicebot Exchange : cette action est destinée aux interactions d’agents virtuels complexes. Elle vous permet d'inclure des paramètres d'échange et de personnaliser divers aspects de la conversation entre le contact et l’agent virtuel.

Supported Virtual Agents

Cette action prend en charge les agents virtuels suivants :

Avant de pouvoir affecter un agent virtuel à cette action, vous devez ajouter et configurer une application pour l’agent virtuel dans Virtual Agent Hub. Vous n’avez besoin que d’une application pour chaque agent virtuel que vous utilisez. Vous pouvez assigner la même application à plusieurs actions d'agent virtuel dans vos scripts. Reportez-vous à la page d'aide du fournisseur d'agent virtuel que vous utilisez pour obtenir des détails sur la configuration.

Input Properties

Ces propriétés définissent les données que l'action utilise lors de son exécution.

Certaines des propriétés de cette action nécessitent une action Snippet avec du code personnalisé.

Propriété

Description

Caption

Entrez une courte phrase qui identifie cette action dans le script de manière unique. La légende est affichée sur le canevas de script sous l’icône de l’action. The default is the action name.

virtualAgentID Nom de l'agent virtuel sélectionné dans le Virtual Agent Hub. Lorsque vous affectez une application d'agent virtuel à une action Studio dans Virtual Agent Hub, cette propriété est automatiquement remplie. Le nom est celui utilisé dans le champ Virtual Agent (Bot) Name dans l'application Virtual Agent Hub.
customPayload

Ne configurez cette propriété que si vous devez transmettre des données de charge personnalisées à l'agent virtuel. L'objet de charge personnalisé est rempli à partir du script Studio. Vous pouvez l'utiliser pour transmettre des informations telles que le nom du contact, issu d’un CRMFermé Systèmes tiers qui gèrent des éléments tels que les contacts, les informations sur les ventes, les détails de l'assistance et les historiques de cas. à utiliser dans un message de bienvenue.

Entrez le nom de l'objet JSON qui transmet les données du script à l'agent virtuel. Vous devez définir l'objet de charge personnalisé dans une action Snippet. L'objet doit être converti en JSON, soit dans le snippet, soit dans la propriété customPayload.

Exigences pour les fournisseurs d'agents virtuels spécifiques :

N'utilisez pas cette propriété si vous devez traiter des données que l’agent virtuel renvoie au script. À la place, utilisez la variable customPayloadVarName (out).

nextPromptSequence

La réponse reçue de l'agent virtuel qui sera jouée pour le contact. Configurez cette propriété avec la variable spécifiée dans nextPromptSequenceVarName (out) et la fonction asJSON(). Vous pouvez aussi convertir le contenu de nextPromptSequenceVarName (out) en JSON dans une action Snippet et configurez cette propriété avec la variable qui contient le JSON.

nextPromptBehaviors

Spécifie la configuration et le comportement de la prochaine invite dans une conversation. Définissez les comportements que vous souhaitez voir à l'aide d'une action Snippet et en suivant l’exemple de snippet Comportements d'invite suivante par défaut ou Comportements d’invite suivante. Cet exemple décrit les propriétés que vous pouvez utiliser pour configurer le bruit de confort, la collecte DTMF et autoriser le contact à parler via l'audio pendant la lecture (insertion).

Configurez la propriété nextPromptBehavior avec le nom de l'objet que vous avez utilisé dans le code snippet. Cela permet de transmettre des paramètres à cette propriété et à son action. Par exemple, si vous utilisez l’exemple de snippet Comportements d’invite suivante, vous entrez {nextPromptBehaviorsOutjson} pour cette propriété. Vous devez uniquement configurer cette propriété si vous utilisez cette action pour activer un agent virtuel textuel pour traiter les interactions vocales..

botSessionState

Le fournisseur d'agent virtuel attribue un identifiant unique à chaque conversation entre un contact et un agent virtuel. L'identifiant empêche qu'une nouvelle session soit créée à chaque tournure de la conversation. Le fournisseur crée l'identifiant au début de la conversation et le transmet au script avec la première réponse. Le script stocke l’identifiant dans la variable nommée dans la propriété botSessionStateVarName (out) de cette action Exchange. Il transmet ensuite l’identifiant à la propriété botSessionState.

Cette propriété doit être configurée correctement pour que votre agent virtuel fonctionne comme prévu. Vous trouverez plus d’informations sur sa configuration sur la page d’aide du snippet État de session du robot.

automatedIntent

Entrez une intention spécifique par nom à laquelle l’agent virtuel doit répondre, plutôt que de laisser l’agent virtuel interpréter les entrées utilisateur collectées. Un cas d'utilisation courant consiste à obtenir le message de bienvenue initial depuis l’agent virtuel. Welcome est la chaîne standard pour les salutations initiales.

Output Properties

Ces propriétés contiennent des variables qui stockent les données renvoyées par l'exécution de l'action. Elles sont disponibles à des fins de référence et d’utilisation lorsque l'action est terminée.

Propriété

Description

nextPromptBehaviorsVarName (out)

Définit les comportements pour inviter l'utilisateur au prochain tour de conversation.

nextPromptSequenceVarName (out)

Retient la réponse de l'agent virtuel et la transmet à la propriété nextPromptSequence.

customPayloadVarName (out)

Renvoie les données JSON personnalisées de l'agent virtuel au script. Utilisez cette variable lorsque vous souhaitez que le script traite les données fournies par l’agent virtuel Peut contenir des données d'exécution.

Si vous voulez fournir des données à l’agent virtuel, utilisez la propriété customPayload.

errorDetailsVarName (out)

Invite la séquence d'intention d'erreur ; peut conduire à un transfert vers un agent en direct.

intentInfoVarName (out)

Une variable qui contient les détails de l’agent virtuel indiquant l'intention actuelle de l'utilisateur.

botSessionStateVarName (out)

Contient la variable dans laquelle le script stocke l’identifiant d’état de session du robot envoyé par le fournisseur de l'agent virtuel. Le contenu de la variable est transmis à la propriété botSessionState.

Cette propriété doit être configurée correctement pour que votre agent virtuel fonctionne comme prévu. Vous trouverez plus d’informations sur sa configuration sur la page d’aide du snippet État de session du robot.

Result Branch Conditions

Les conditions de branche de résultat vous permettent de créer des branches dans votre script afin de gérer différents résultats lors de l'exécution d'une action.

Condition

Description

Default Chemin parcouru sauf si le script remplit une condition qui l'oblige à emprunter l'une des autres branches. Il est également suivi si les autres branches de l’action ne sont pas définies.
OnPromptAndCollectNextResponse

Chemin emprunté si l’agent virtuel a déterminé que l'interaction doit se poursuivre et est prêt pour une intervention plus humaine depuis le contact. Demande le tour suivant de la conversation.

OnError Chemin emprunté en cas de problème inattendu (par exemple, mauvaise connectivité, erreurs de syntaxe, etc.). La variable _ERR doit être renseignée avec une explication condensée du problème.
OnReturnControlToScript Path taken if the virtual agent indicated that the conversation finished and gives control back to the Studio script to transfer or end the call. There may be fulfillment data to be processed in the customPayload result.
OnDTMFBreakout

Chemin emprunté lorsqu'une règle DTMFFermé Tonalités de signalisation générées lorsqu'un utilisateur appuie ou appuie sur une touche de son clavier téléphonique. dans le script a été respectée.

OnUserInputTimeout

Chemin emprunté lorsqu'il n'y a pas de réponse de l'utilisateur dans le délai spécifié dans le snippet Comportement de l'invite (le snippet Comportement de l'inviteDefault ou Next).

Pour Google Dialogflow, vous pouvez configurer l'événement que vous souhaitez voir se produire dans la Virtual Agent Hub Dialogflow application. Pour Dialogflow ES, configurez le champ Timeout Event . Pour Dialogflow CX, configurez le Timeout Event Handler. Si aucun événement n'est configuré, la valeur par défaut consiste à utiliser l'intention de secours par défaut telle que configurée dans la console Dialogflow.

Si vous le souhaitez, vous pouvez configurer cette branche pour utiliser différents événements à différents moments de votre script.

OnUserInputNotUnderstood

Chemin emprunté lorsque l’agent virtuel ne comprend pas la réponse du contact ou lorsque le délai d’attente du contact expire.

Required SNIPPET Action Code

Certaines des propriétés de cette action nécessitent une  Snippet avec du code personnalisé.

Best Practices for Custom Payload with Google Dialogflow CX

When using this action with Google Dialogflow CX follow these best practices for integrating custom payloads:

  • Dialogflow CX n'utilise pas de contextes pour transmettre des données aux DialogflowintentionsFermé La signification ou le but derrière ce qu'un contact dit/tape ; ce que le contact veut communiquer ou accomplir commeDialogflowES.
  • Vous pouvez transmettre des données personnalisées à Dialogflow CX utilisant des paires clé-valeur JSON. Dans une actionaction Snippet de votre script, créez un objet customPayload dynamique et ajoutez-y les paires clé-valeur. Par exemple :

    DYNAMIC customPayload
    customPayload.ani = ani
    customPayload.contactID = contactId
    customPayload.masterContactId = masterId
    customPayloadJSON = "{customPayload.asJSON()}"	
  • Dans l’action Exchange ou Conversation de votre script, configurez la propriété customPayload avec la variable incluant la fonction asJSON()comme valeur. Vous trouverez cette variable dans l’objet customPayload.
  • Transférez le code JSON customPayload à l’agent virtuel en utilisant la propriété Payload de QueryParameters. Reportez-vous à la documentation Google concernant QueryParameters Un carré avec une flèche pointant du centre vers le coin supérieur droit. pour Google Dialogflow CX.
  • Les données transférées via QueryParameters sont reçues par un webhook dans Dialogflow CX. Vous pouvez écrire du code dans la Dialogflow Console CX pour gérer les données transmises.
  • N’imbriquez pas d’objet dans l’objet customPayload. Les objets imbriqués sont envoyés sous forme de chaînes littérales.
  • Pour renvoyer des données personnalisées de votre agent virtuel Dialogflow CX dans votre script, utilisez le champ Charge utile personnalisée de la console Dialogflow CX. Vérifiez que vous vous trouvez dans la console de l’agent virtuel que vous utilisez avec CXone. Mappez ceci à votre script en utilisant la variable customPayloadVarName (out) dans l'action voix ou chat Studio de votre script. Par exemple, vous pouvez l'utiliser pour définir les comportements de l'invite suivante.
  • Les paramètres définis en utilisant customPayload peuvent uniquement être utilisés dans le webhook externe. Si vous souhaitez définir des paramètres à utiliser en dehors du webhook externe, faites-le dans une action Snippet avec le champ session_params. Par exemple :

    {
    	"session_params":
    	{ 
    		"name": "Winnie Le Pooh"
    		"job": "Food critic"
    		"location": "Hundred Acre Wood"
    	}
    }

    Accédez aux paramètres de session dans l’intention de l’agent Dialogflow CX à l’aide de la syntaxe suivante :

    $session.params.name = Winnie Le Pooh

    $session.params.job = Food critic

    $session.params.location = 100 Acre Wood

    Les paramètres de session sont uniquement utilisés avec les agents virtuels Dialogflow CX. Pour obtenir un résultat similaire avec Dialogflow ES, utilisez les contextes.

  • Les conseils de contexte vocal peuvent être transmis avec la charge utile dans le paramètre speechContexts. La valeur de speechContexts.phrases doit être un jeton de classe Google Un carré avec une flèche pointant du centre vers le coin supérieur droit. correspondant au conseil à donner. Le jeton doit correspondre à la langue et aux paramètres régionaux de vos contacts. Par exemple :

    DYNAMIC customPayload
    customPayload.speechContexts.phrases="$OOV_CLASS_ALPHANUMERIC_SEQUENCE"
    customPayload.speechContexts.boost=10		
  • pour configurer la durée d’attente de l’agent virtuel lorsque le contact fait une pause dans son énoncé, ajoutez le paramètre maxPostEnergySilenceMS à l’action Next Prompt Behaviors ou Default Next Prompt Behaviors Snippet.

Best Practices for Custom Payload with Google Dialogflow ES

When using this action with Google Dialogflow ES, follow these best practices for integrating custom payloads:

  • CustomPayload est utilisé pour transférer du contexte à une intentionFermé La signification ou le but derrière ce qu'un contact dit/tape ; ce que le contact veut communiquer ou accomplir. Le contexte aide l'agent virtuel à comprendre l'intention de l'utilisateur. Les contextes ne sont pas obligatoires, mais ils aident l'agent virtuel à faire correspondre un énoncéFermé Ce qu'un contact dit ou tape. à une intention.
  • Dans une Snippet action de votre script, créez un objet customPayload qui suive le format défini dans la documentation de Google Dialogflow ES Icône indiquant que le lien va vers un site web externe pour la ressource REST : projects.agent.sessions.context. L’aide en ligne Studiofournit des informations supplémentaires sur les objets de données dynamiques.
  • Vous pouvez également transmettre des données personnalisées avec customPayload sans contexte. Pour ce faire, incluez des paires clé-valeur JSON standard dans un objet de données dynamique.
  • Les contextes vocaux sont transmis dans la charge utile personnalisée avec le paramètre speech_contact. Vous pouvez afficher le contenu de ce paramètre dans les traces Studio et les journaux d’application.
  • L’objet dynamique customPayload est transféré en tant que paramètre d'agent virtuel au format JSON, comme indiqué dans l’exemple de script.
  • Les conseils de contexte vocal peuvent être transmis avec la charge utile dans le paramètre speechContexts. La valeur de speechContexts.phrases doit être un jeton de classe Google Un carré avec une flèche pointant du centre vers le coin supérieur droit. correspondant au conseil à donner. Le jeton doit correspondre à la langue et aux paramètres régionaux de vos contacts. Par exemple :

    DYNAMIC customPayload
    customPayload.speechContexts.phrases="$OOV_CLASS_ALPHANUMERIC_SEQUENCE"
    customPayload.speechContexts.boost=10		

Tips and Tricks

Si aucun son de voix n’est entendu entre Virtual Agent Hub et l’agent virtuel, vérifiez la trace du script pour voir s’il existe une transcription. S’il y a bien une transcription, l’agent virtuel Google Dialogflow doit être ajusté.

Script Example

Cet exemple n’est pas un script entier. Une rédaction de script complémentaire est requise pour l’utilisation de cette action.

VoiceBot Exchange actions must be used in a loop. This means that you must use at least two in a script. The first action initiates the call to the virtual agent's API and must be preceded by the Default Next Prompt Behavior Snippet action. The first action is the Welcome Default, which begins the first scripted loop, or one conversational 'turn'.

An example of a script that uses the VoicebotExchange action.

Download this script.

Example Script for CustomPayload with Google Dialogflow ES

Cet exemple n’est pas un script entier. Une rédaction de script complémentaire est requise pour l’utilisation de cette action.

Ce script illustre comment intégrer des charges utiles personnalisées dans des agents virtuels Google Dialogflow ES. Ce script utilise l’action Voicebot Exchange, mais il peut aussi fonctionner avec l’action TEXTBOT EXCHaNGE.

Un exemple de script montrant comment traiter la charge utile personnalisée avec Google Dialogflow CX.

Télécharger ce script.

Example Script for Alternate Timeout Events

Cet exemple n’est pas un script entier. Une rédaction de script complémentaire est requise pour l’utilisation de cette action.

Vous pouvez utiliser différents événements de délai d'attente à différents points de votre script. Par exemple, vous souhaiterez peut-être utiliser des événements de délai d'attente différents la première et la deuxième fois que la propriété UserInputTimeout est déclenchée. Cet exemple de script montre une manière possible d'y parvenir.

Dans ce script, les actions Snippet sont utilisées pour créer et incrémenter un compteur de temporisation. Après la deuxième temporisation, une action Snippet est utilisée pour définir un événement de temporisation différent. L'événement de délai d'attente alternatif est passé de l'action Snippet à l'action voicebot via la propriété automatedIntent .

Télécharger ce script.