VoiceBot Exchange

Integra um agente virtual de autoatendimentoFechado Um aplicativo de software que interage com os clientes no lugar de um agente humano ao vivo. com scripts de voz. Esta ação é utilizada em um loop no script. Um script deve conter pelo menos duas ações VoiceBot Exchange . Seu agente virtual deve oferecer suporte para esta ação.

A ação Voicebot Exchange é para agentes virtuais complexos ou para quando você precisa personalizar o comportamento do agente virtual de um turno para outro. Ela monitora a conversa entre o contato e o agente virtual, turno a turno. Ela envia todo enunciadoFechado O que um contato diz ou digita. para o agente virtual. O agente virtual analisa o enunciado quanto à intençãoFechado O significado ou propósito por trás do que um contato diz/digita; o que o contato quer comunicar ou alcançar. e ao contexto e determina qual resposta dar. A ação passa a resposta do agente virtual ao contato. Quando a conversa é concluída, a ação continua o script.

Esta é a ação preferencial para uso com agentes virtuais de voz. Se você deseja configurar interromper ou nenhuma entrada, scripts adicionais serão necessários. Caso esteja usando uma conexão de retorno de canal SIPFechado Protocolo usado para sinalizar e controlar sessões de comunicação multimídia, como chamadas de voz e vídeo., você deve usar a ação Voicebot Conversation.

Clicar duas vezes nesta ação abre o Hub de Agente Virtual, onde você pode gerenciar todos os seus agentes virtuais.

Dependencies

  • Um script deve conter pelo menos duas ações VoiceBot Exchange conectadas em um loop.
  • Para usar esta ação, o seu agente virtual deve suportar personalização de conversas turno a turno.
  • Um turno de conversação é definido como:

    1. O enunciado do contato que está sendo enviado ao agente virtual.
    2. O agente virtual processando o enunciado e definindo qualquer informação de carga útil personalizada.
    3. A resposta retornando ao contato.
    4. Quaisquer ações adicionais a serem tomadas (como um banco de dados ou chamada de API externo) que são determinadas na propriedade nextPromptBehaviors. Você também pode configurar o loop de conversação para sair após a conclusão da interação ou transferência do contato para um agente em tempo real.
  • Caso esteja incluindo carga útil personalizada com agentes virtuais Google Dialogflow ES ou Google Dialogflow CX, siga as boas práticas e diretrizes da carga útil personalizada.  As diretrizes para CX e ES são fornecidas nesta página.

Supported Script Types

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

Telefone

Comparison of Similar Actions

As ações a seguir têm funções semelhantes, mas com algumas diferença importantes.

  • 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: esta action é usada para interações de agentes virtuais complexos. Ela permite incluir parâmetros de troca e personalizar vários aspectos da conversa entre contato e agente virtual.
  • Voicebot Conversation: esta action é adequada apenas para agentes virtuais muito simples. Ela não permite a personalização do comportamento do agente virtual de turno para turno. Se quiser usar uma conexão de canal de retorno SIP e seu agente suportá-la, você deverá usar Voicebot Conversation.
  • Voicebot Exchange: esta action é usada para interações de agentes virtuais complexos. Ela permite incluir parâmetros de troca e personalizar vários aspectos da conversa entre contato e agente virtual.

Supported Virtual Agents

Esta ação é compatível com os seguintes agentes virtuais:

Antes de atribuir um bot de agente virtual a essa ação, você deve adicionar e configurar um app para o agente virtual no Hub de Agente Virtual. Você precisa de apenas um app para cada agente virtual que usa. Você pode atribuir o mesmo app para várias ações de agente virtual nos seus scripts. Consulte a página de ajuda do fornecedor do agente virtual que você está usando para ver detalhes de configuração.

Input Properties

Estas propriedades definem dados que a ação usa durante a execução.

Uma ou mais das propriedades desta ação exigem uma ação Snippet com código personalizado.

Propriedade

Descrição

Caption

Insira uma frase curta que identifica exclusivamente esta ação no script. A legenda aparece na tela do script no ícone da ação. The default is the action name.

virtualAgentID O nome do agente virtual selecionado no Hub de Agente Virtual. Quando você atribui um aplicativo de agente virtual a uma ação Studio no Hub de Agente Virtual, ele preenche automaticamente esta propriedade. O nome é o nome usado no campo Virtual Agent (Bot) Name no aplicativo Hub de Agente Virtual.
customPayload

Configure esta propriedade apenas se precisar passar dados de carga útil personalizados ao agente virtual. O objeto de carga útil personalizada é preenchido a partir do script Studio. Você pode usá-lo para passar informações como o nome do contato de um CRMFechado Sistemas de terceiros que gerenciam itens como contatos, informações de vendas, detalhes de suporte e históricos de casos. para ser usado em uma mensagem de boas-vindas.

Insira o nome de um objeto JSON que passa dados do script para o agente virtual. Você deve definir o objeto de carga útil personalizada em uma ação Snippet. O objeto deve ser convertido para JSON no snippet ou na propriedade customPayload.

Requisitos para fornecedores de agentes virtuais específicos:

Não use essa propriedade se precisar processar dados que o agente virtual retorna ao script. Em vez disso, use a variável customPayloadVarName (out).

nextPromptSequence

A resposta recebida pelo agente virtual que será reproduzida para o contato. Configure esta propriedade com a variável especificada em nextPromptSequenceVarName (out) com a função asJSON(). Você também pode converter o conteúdo de nextPromptSequenceVarName (out) para JSON em uma ação Snippet e configurar esta propriedade com a variável que armazena o JSON.

nextPromptBehaviors

Especifica a configuração e o comportamento do próximo prompt em uma conversa. Defina os comportamentos que deseja ver usando uma action Snippet e seguindo o exemplo de snippet Comportamentos padrão do próximo prompt ou Comportamentos do próximo prompt. Este exemplo descreve as propriedades que você pode usar para configurar o ruído de conforto, a coleta de DTMF e permitir que o contato fale por cima do áudio enquanto este estiver sendo reproduzido (interrupção).

Configure a propriedade nextPromptBehavior com o nome do objeto que usou no código snippet. Isto passa as configurações para esta propriedade e sua ação. Por exemplo, usando o exemplo de snippet Comportamento do próximo prompt, você inseriria {nextPromptBehaviorsOutjson} para essa propriedade. Você somente precisa configurar esta propriedade se estiver usando esta ação para habilitar um agente virtual de texto a lidar com interações de voz.

botSessionState

O fornecedor do agente virtual atribui um identificador exclusivo a cada conversa entre um contato e um agente virtual. O identificador impede que uma nova sessão seja criada para cada turno da conversa. O fornecedor cria o identificador quando a conversa começa e o passa ao script com a primeira resposta. O script armazena o identificador na variável nomeada na propriedade botSessionStateVarName (out) desta ação. Ele passa então o identificador à propriedade botSessionState.

A propriedade deve ser configurada adequadamente para que seu agente virtual funcione corretamente. Mais informações sobre como configurá-la estão disponíveis na página de ajuda Snippet do Estado da sessão de bot.

automatedIntent

Insira uma intenção específica pelo nome para o agente virtual responder, em vez de fazer com que o agente virtual interprete a entrada coletada do usuário. Um caso de uso comum para isso é obter a mensagem de boas-vindas inicial do agente virtual. Welcome é a string padrão para saudações iniciais.

Output Properties

Estas propriedades contêm variáveis que armazenam dados retornados da execução da ação. Elas estão disponíveis para referência e uso quando a ação é concluída.

Propriedade

Descrição

nextPromptBehaviorsVarName (out)

Define os comportamentos para avisar o usuário no próximo turno de conversação.

nextPromptSequenceVarName (out)

Segura a resposta do agente virtual e a passa para a propriedade nextPromptSequence.

customPayloadVarName (out)

Retorna dados JSON personalizados do agente virtual para o script. Use essa variável quando quiser que o script processe os dados fornecidos pelo agente virtual. Pode conter dados de preenchimento.

Se você quiser fornecer dados ao agente virtual, use a propriedade customPayload.

errorDetailsVarName (out)

Solicita a sequência de intenção de erro; pode levar a uma transferência para um agente vivo.

intentInfoVarName (out)

Uma variável que contém detalhes do agente virtual, indicando a intenção atual do usuário.

botSessionStateVarName (out)

Contém a variável onde o script armazena o identificador de estado da sessão de bot enviiado pelo fornecedor do agente virtual. O conteúdo da variável é passado para a propriedade botSessionState.

A propriedade deve ser configurada adequadamente para que seu agente virtual funcione corretamente. Mais informações sobre como configurá-la estão disponíveis na página de ajuda Snippet do Estado da sessão de bot.

Result Branch Conditions

Condições de ramal resultante permitem que você crie ramais no seu script para atender diferentes resultados quando uma ação é executada.

Condição

Descrição

Default Caminho percorrido, a menos que o script atenda a uma condição que exige que ele percorra um dos outros ramais. Também é percorrido se os outros ramais da ação não estiverem definidos.
OnPromptAndCollectNextResponse

Caminho tomado se o agente virtual determinar que a interação deve continuar e está pronto para mais entradas de dados humanos do contato. Prompts para o próximo turno da conversa.

OnError Caminho percorrido quando há um problema inesperado (por exemplo, conectividade ruim, erros de sintaxe e assim por diante). A variável _ERR deve ser preenchida com uma explicação condensada do problema.
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

Caminho tomado quando uma regra DTMFFechado Tons de sinalização gerados quando um usuário pressiona ou toca em uma tecla do teclado do telefone. no script foi cumprida.

OnUserInputTimeout

Caminho tomado quando não há resposta do usuário no tempo especificado no snippet de Comportamento de prompt (seja ele Padrão ou o snippet de Próximo comportamento de prompt).

Para o Google Dialogflow, você pode configurar o evento que deseja que aconteça no aplicativo Hub de Agente Virtual Dialogflow. Para o ES Dialogflow, configure o campo Timeout Event . Para o CX Dialogflow, configure o Timeout Event Handler. Se nenhum evento estiver configurado, o padrão é usar a intenção de fallback padrão conforme configurado no console Dialogflow.

Se desejar, você pode configurar esse ramal para usar eventos diferentes em pontos diferentes do seu script.

OnUserInputNotUnderstood

Caminho tomado quando o agente virtual não entende a resposta do contato ou quando o contato expira.

Required SNIPPET Action Code

Uma ou mais propriedades desta ação exigem uma action Snippet com o seguinte código personalizado:

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 O CX não usa contextos para passar dados para DialogflowintentsFechado O significado ou propósito por trás do que um contato diz/digita; o que o contato quer comunicar ou alcançar. como o DialogflowES faz.
  • Você pode passar dados personalizados para o CX Dialogflowusando pares de valores-chave JSON. Em uma actionação Snippet no seu script, crie um objeto customPayload dinâmico e adicione os pares de chave-valor a ele. Por exemplo:

    DYNAMIC customPayload
    customPayload.ani = ani
    customPayload.contactID = contactId
    customPayload.masterContactId = masterId
    customPayloadJSON = "{customPayload.asJSON()}"	
  • Na ação Exchange ou Conversation no seu script, configure a propriedade customPayload com a variável que tem a função asJSON() em seu valor. Você pode encontrar essa variável no objeto customPayload.
  • Passe o JSON customPayload para o agente virtual usando a propriedade Payload de QueryParameters. Consulte a documentação do Google sobre QueryParameters Um quadrado com uma seta apontando do centro para o canto superior direito. para Google Dialogflow CX.
  • Os dados passados por QueryParameters são recebidos por um webhook no Dialogflow CX. Você pode escrever código no console CX Dialogflowpara manipular os dados passados.
  • Não aninhe um objeto dentro do objeto customPayload. Os objetos são enviados como strings literais.
  • Para passar dados personalizados do agente virtual Dialogflow CX de volta ao script, use o campo Carga útil personalizada no console Dialogflow CX. Verifique se você está no console do agente virtual que está usando CXone. Mapeie isso para o seu script usando a variável customPayloadVarName (out) na ação voice ou chat Studio no seu script. Por exemplo, você pode usar isso para definir os comportamentos do próximo prompt.
  • Os parâmetros definidos usando customPayload só podem ser usados no webhook externo. Se você quiser definir parâmetros para uso fora do webhook externo, defina-os em uma ação Snippet com o campo session_params. Por exemplo:

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

    Acesse os parâmetros de sessão no intent do agente  CX Dialogflow usando a seguinte sintaxe:

    $session.params.name = Winnie Le Pooh

    $session.params.job = Food critic

    $session.params.location = 100 Acre Wood

    Os parâmetros de sessão são usados apenas com agentes virtuais Dialogflow CX. Para obter um resultado semelhante com Dialogflow ES, use contextos.

  • Dicas de contexto de fala pode ser passadas com carga útil personalizada no parâmetro speechContexts. O valor de speechContexts.phrases deve ser um token da classe Google Um quadrado com uma seta apontando do centro para o canto superior direito. para a dica que você quer dar. O token deve corresponder ao idioma e à localidade dos seus contatos. Por exemplo:

    DYNAMIC customPayload
    customPayload.speechContexts.phrases="$OOV_CLASS_ALPHANUMERIC_SEQUENCE"
    customPayload.speechContexts.boost=10		
  • Para configurar quanto tempo o agente virtual espera quando o contato pausa enquanto fala, adicione o parâmetro maxPostEnergySilenceMS à ação 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 é usado para passar contexto para uma intençãoFechado O significado ou propósito por trás do que um contato diz/digita; o que o contato quer comunicar ou alcançar.. O contexto ajuda o agente virtual a entender a intenção do usuário. Os contextos não são obrigatórios, mas ajudam o agente virtual corresponder um enunciadoFechado O que um contato diz ou digita. a uma intenção.
  • Em uma ação Snippet em seu script, crie um objeto customPayload que segue o formato descrito na documentação do Google Dialogflow ES Ícone indicando que o link leva a um site externo para o recurso REST: projects.agent.sessions.context. A ajuda online do Studio fornece informações adicionais sobre objetos de dados dinâmicos.
  • Você também pode passar dados personalizados com customPayload sem contextos. Para fazer isso, inclua pares de chave-valor JSON padrão em um objeto de dados dinâmicos.
  • Os contextos de fala são passados na carga útil personalizada no parâmetro speech_contact. Você pode ver o conteúdo desse parâmetro em rastreios do Studio e logs do aplicativo.
  • O objeto dinâmico customPayload é passado como um parâmetro de agente virtual como JSON, conforme mostrado no script de exemplo.
  • Dicas de contexto de fala pode ser passadas com carga útil personalizada no parâmetro speechContexts. O valor de speechContexts.phrases deve ser um token da classe Google Um quadrado com uma seta apontando do centro para o canto superior direito. para a dica que você quer dar. O token deve corresponder ao idioma e à localidade dos seus contatos. Por exemplo:

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

Tips and Tricks

Se o áudio de voz não puder ser ouvido entre o Hub de Agente Virtual e o agente virtual, verifique o trace de script para ver se há uma transcrição. Caso haja uma, o agente virtual do Google Dialogflow precisa ser ajustado.

Script Example

Este exemplo não é um script completo. Trabalho de script adicional é necessário para usar esta ação.

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

Este exemplo não é um script completo. Trabalho de script adicional é necessário para usar esta ação.

Este script é um exemplo de como integrar cargas úteis personalizadas com agentes virtuais do Google Dialogflow ES. Este script usa a ação Voicebot Exchange, mas também funcionará se você usar TEXTBOT EXCHaNGE.

Um exemplo de script mostrando como lidar com carga útil personalizada usando o Google Dialogflow CX.

Baixe este script.

Example Script for Alternate Timeout Events

Este exemplo não é um script completo. Trabalho de script adicional é necessário para usar esta ação.

Você pode usar diferentes eventos de tempo limite em diferentes pontos do seu script. Por exemplo, você pode querer usar eventos de tempo limite diferentes na primeira e na segunda vez que a propriedade UserInputTimeout for acionada. Este script de exemplo mostra uma maneira possível de fazer isso acontecer.

Neste script, as ações Snippet são usadas para criar e incrementar um contador de tempo limite. Após o segundo tempo limite, uma ação Snippet é usada para definir um evento de tempo limite diferente. O evento de tempo limite alternativo é passado da ação Snippet para a ação do voicebot por meio da propriedade automatedIntent .

Baixe este script .