Modelo de documento de design técnico

Os documentos de design técnico (TDD) descrevem os detalhes de um sistema. Eles são uma parte importante do planejamento de sua integração de agente virtual personalizada. Esta página é um guia para criar um TDD para sua integração de agente virtual personalizada.

Cada seção neste modelo de TDD contém exemplos ou informações adicionais sobre o conteúdo pretendido para essa seção. Sempre que possível, os exemplos referem-se ao exemplo de integração de agente virtual de texto.

Use este guia de TDD e o exemplo de integração como ponto de partida no planejamento da sua própria integração personalizada. No entanto, como são fornecidos como exemplos, nem o TDD nem o exemplo de túnel proxy são projetados para um ambiente específico. O TDD e o túnel proxy que você criar devem levar em consideração a arquitetura e os requisitos de rede exclusivos da sua organização. Pode ser necessário adicionar ou remover seções para atender às necessidades do seu ambiente.

Visão geral

Este documento de design técnico descreve a integração personalizada do [seu agente virtual] com o NICE CXone. A integração inclui os seguintes componentes que devem ser descritos neste documento:

  • Arquitetura, incluindo o middleware do túnel proxy/gateway.
  • Requisitos de configuração do CXone, incluindo competências, pontos de contato e canais.
  • O Hub de Agente Virtual e o terminal para integrações de agentes virtuais personalizadas (Custom Exchange Endpoint).
  • Scripts do Studio, incluindo o código Snippet.
  • Requisitos de autenticação.
  • Configuração do agente virtual, terminais, detalhes de origem da mensagem.
  • Mapeamento de esquema de solicitação e resposta.
  • [outros componentes exclusivos para sua arquitetura e integração].

Visão geral da arquitetura

O que fazer: Crie um diagrama de visão geral da sua integração. Inclua todos os componentes em seu ambiente que estão envolvidos no atendimento de uma interação. Isso inclui o túnel proxy, o agente virtual, um servidor de autorização e assim por diante. Inclua uma descrição geral. Crie diagramas adicionais se precisar mostrar certas partes com mais detalhes.

Exemplo

Este é um exemplo de integração de agente virtual de texto em um canal de chat do ACD. Como este é um exemplo de integração, algumas coisas são diferentes de uma integração real:

Essa é uma integração simples que não requer nenhuma autorização.

Configuração do CXone

O que fazer: Liste o canalFechado Uma maneira de os contatos interagirem com agentes ou bots. Um canal pode ser voz, e-mail, chat, mídia social e assim por diante., as competênciasFechado Usado para automatizar a entrega de interações com base nas competências, habilidades e conhecimento do agente., os pontos de contatoFechado O ponto de entrada que um contato de entrada usa para iniciar uma interação, como um número de telefone ou endereço de email., as campanhas e quaisquer outras definições de configuração relevantes do CXone. Para obter mais informações, consulte Requisitos de configuração do CXone na página Recursos.

Exemplo

  • Canal: Chat do ACD.
  • Competência: Competência de chat chamada IBChat_CEESample.
  • Ponto de contato: Ponto de contato de chat chamado IBChat_CEESample.
  • Campanha: CEESample.

Requisitos de canal

Como essa é uma integração de exemplo, nenhum perfil de chat é necessário. No entanto, em uma integração real, esta seção especificaria os requisitos para o perfil de chat. O perfil de chat define a aparência da janela de chat. Esta seção também listaria as páginas do site onde o balão de chat estaria localizado, bem como quaisquer outros requisitos relacionados.

Configuração do Hub de Agente Virtual

O que fazer: Liste o URL do webhook para seu agente virtual e todos os parâmetros que seu agente virtual exige que sejam enviados com solicitações. Se você determinar que precisa de um tempo limite diferente, adicione-o nesta seção. O processo de configuração completo para o terminal de troca personalizado no Hub de Agente Virtual é descrito na página Implementação.

Exemplo

  • URL do webhookhttps://https://4db3-5-46-62-207.nrgok.io/proxy/performbotexchange
  • Parâmetros do terminal: Nenhum necessário
  • Cabeçalhos personalizados (somente a versão de integração 2.0.0 e 2.0.0): Nenhum necessário
  • Limite de tempo: Nenhuma alteração necessária
  • Cabeçalho de autorização: Nenhum necessário
  • Configuração Oauth:: Nenhuma necessária
    • URL do OAuth: N/A
    • Parâmetros de solicitação do OAuth: N/A
    • Cabeçalhos do OAuth: N/A

Observe que na versão de integração 1.0.0, a autenticação dinâmica deve ser configurada no script, e não no Hub de Agente Virtual.

Scripts Studio

O que fazer: Adicione capturas de tela dos scripts que você criar para sua integração de agente virtual personalizada, juntamente com as explicações. Inclua descrições das variáveis, código snippet e outros detalhes conforme necessário. Para obter mais informações, consulte as diretrizes e requisitos do script.

Script de chat de exemplo

Esse é o mesmo script usado na integração de amostra. Você pode usá-lo como base para seu próprio script. Scripts de exemplo também são fornecidos para agentes e de voz.

Baixe este script.

Este script começa com uma ação Snippet que cria vários objetos de dados dinâmicos necessários para uma integração de agente virtual:

  • intentInfo
  • nextPromptSequence
  • nextPromptBehaviors
  • customPayload
  • botSessionState

A primeira ação Textbot Exchange define a 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. para o agente virtual responder como a intenção Boas-vindas. Quando o agente virtual responde, ele preenche os objetos botSessionState e customPayload os converte em JSON usando a função .asjson().

A primeira ação Textbot Exchange tem três ramificações:

  • Error: A ramificação de erro processa o erro e fornece uma mensagem apropriada ao contato.
  • Return Control to Script: Essa ramificação é feita quando o agente virtual sinaliza que a conversa foi encerrada ou que o contato precisa ser transferido para um agente presencial.
  • Prompt and Collect Next Response: Essa ramificação continua a conversa, conforme descrito abaixo.

O script passa os dados recebidos do agente virtual nos objetos botsessionState, customPayloadFromBot, intentInfo e nextPrompt. A ação Askcaller solicita o contato com a resposta do agente virtual (nextPrompt). Esta ação tem quatro ramificações:

  • Error
  • Return Control to Script
  • Caller Responded
  • Default

Todas as ramificações vão para a segunda ação Textbot Exchange, que envia as informações apropriadas ao agente virtual, incluindo a próxima solicitação do contato na variável RES. Essa Textbot Exchange tem as mesmas ramificações da primeira instância da ação no script.

Autorização do terminal de serviço

O que fazer: Determine os requisitos de autorização de seu serviço de agente virtual. Se for necessária autorização, preencha esta seção do TDD. Crie um diagrama que ilustre os requisitos de autorização para seu ambiente. Inclua os detalhes do que é necessário para solicitações de autorização. Isso pode incluir:

  • O tipo de autorização (cabeçalhos ou tokens).
  • Os pares de chave-valor para todos os cabeçalhos obrigatórios. Se você estiver usando a versão 1.0.0 do terminal de troca personalizado, precisará apenas do valor do cabeçalho.
  • Quaisquer requisitos de configuração para o serviço de agente virtual se você estiver usando cabeçalhos ou o servidor de autorização se estiver usando tokens.
  • O URL do servidor de autorização, se você estiver usando tokens.
  • Pares de valor-chave necessários para o corpo e os cabeçalhos da solicitação OAuth.
  • Se você precisar ou quiser personalizar outras configurações de OAuth, especifique essas alterações. Você pode alterar o nome do cabeçalho, o prefixo do valor do cabeçalho e o tempo de expiração do token.

Para obter mais informações, consulte a seção Autorização na página Recursos.

Exemplo de terminais de serviços não autorizados (públicos)

A integração de amostra não precisa de autorização. O diagrama a seguir mostra um exemplo da aparência de um terminal de serviço público.

Neste exemplo, a solicitação se origina do Hub de Agente Virtual. Ele interage primeiro com o gateway da API e depois com o serviço do agente virtual.

Exemplo de terminais de serviços autorizados

Quando um serviço de agente virtual requer autorização para receber solicitações, você deve enviar cabeçalhos de autorização com cada solicitação. Você também pode usar a autenticação dinâmica, que requer um servidor de autorização (provedor de token). A arquitetura para uma integração que usa cabeçalhos seria semelhante à do exemplo de um terminal de serviço público na seção anterior. O diagrama a seguir mostra um exemplo de uma implementação de autenticação dinâmica.

Neste exemplo, quando o script começa, uma solicitação REST é feita ao servidor de autorização, que fornece um token. O token é enviado para o terminal de troca personalizado. Desde que o token seja válido, as solicitações podem ser enviadas ao serviço do agente virtual.

Túnel proxy

O que fazer: Determine os detalhes do seu túnel proxy, incluindo:

  • Como seu túnel proxy será hospedado.
  • Em qual linguagem o túnel proxy será desenvolvido e quaisquer aplicativos, dependências, SDKs, pacotes de extensão necessários e assim por diante.
  • Uma estratégia de failover de túnel proxy.

Exemplo

Hospedagem do túnel proxy

O túnel proxy de exemplo será hospedado na máquina local da pessoa que configurar a integração de agente virtual de exemplo.

Idioma

O túnel proxy será desenvolvido em C#. Isso exigirá o editor VS Code e um SDK do .NET.

Estratégia de failover

Como esta é uma integração de exemplo, nenhuma estratégia de failover é necessária.

Caso de uso de agente virtual – Mapeamento de proxy para terminal de agente virtual

O que fazer: Crie um diagrama de sequência detalhado que ilustre as respostas e solicitações usadas em cada ponto durante uma interação. Documente os esquemas de solicitação e resposta no CXone e em seu serviço de agente virtual que sua integração personalizada exige. O exemplo nesta seção mostra apenas esquemas para o CXone. Para obter mais informações, consulte a seção Túnel proxy e a seção Diagramas de sequência na página Recursos.

Exemplo

O diagrama de sequência e tudo que vem depois é um exemplo baseado no Swagger disponível no momento da publicação. Sempre use os esquemas documentados no arquivo Swagger Um quadrado com uma seta apontando para o centro e para fora. publicamente disponível para integrações de agentes virtuais personalizadas. Os esquemas de terminal de troca personalizados podem ser atualizados periodicamente. Para obter mais informações sobre como isso afeta sua integração personalizada, consulte a página Recursos.

Esquemas de solicitação e resposta

Os esquemas para solicitações estão incluídos nesta página, como um exemplo de esquemas de documentação. Para obter explicações detalhadas sobre os esquemas de integração de agente virtual personalizada, consulte a página Esquemas.

Solicitação - ExternalIntegrationBotExchangeRequest

Parâmetro

Tipo

Descrição

virtualAgentId Comando

O nome dado ao aplicativo de configuração Custom Exchange Endpoint no Hub de Agente Virtual. Esse nome identifica o agente virtual que o aplicativo invoca.

botConfig Object Os parâmetros definidos no botConfig são abordados em outras seções deste documento.
userInput Comando A entrada de texto do usuário recebida pelo ponto de contatoFechado O ponto de entrada que um contato de entrada usa para iniciar uma interação, como um número de telefone ou endereço de email. ao qual o script está atribuído.
userInputType Enum O tipo de entrada do usuário fornecido pelo script.
executionInfo ActionExecutionInfo Dados de telemetria para a execução de uma açãoFechado Executa um processo dentro de um script do Studio, como coletar dados do cliente, reproduzir uma mensagem ou música ou rotear um contato para um agente. dentro de um script.
systemTelemetryData SystemTelemetryData Os dados que podem ser usados para depuração. Contém informações sobre a infraestrutura do CXone.
base64wavFile Comando Contém o arquivo WAV codificado em Base 64 que tem o cabeçalho da solicitação e o áudio do enunciadoFechado O que um contato diz ou digita. do usuário.
botSessionState Object Pode ser usado para variáveis de informações de sessões round-trip recebidas do agente virtual.
customPayload Object Pode ser usado para enviar variáveis e parâmetros adicionais do contexto do script do Studio.
mediaType Comando Indica o tipo de mídia do script que está em execução.

Solicitação - ActionExecutionInfo

Parâmetro

Tipo

Descrição

contactID Inteiro O identificador exclusivo para a interação.
busNo Inteiro O identificador exclusivo para o unidade de negóciosFechado Alto nível de agrupamento organizacional usado para gerenciar o suporte técnico, cobrança e configurações globais para o seu ambiente CXone .
requestId Inteiro

Um número interativo que identifica cada solicitação em uma interação específica.

 

actionType Comando O tipo de ação que faz a solicitação para o terminal de troca personalizado.
actionId Inteiro O identificador exclusivo da açãoFechado Executa um processo dentro de um script do Studio, como coletar dados do cliente, reproduzir uma mensagem ou música ou rotear um contato para um agente. no script. Os IDs de ação são baseados na ordem em que as ações foram adicionadas ao script.
scriptName Comando O nome do script.

Solicitação - SystemTelemetryData

Parâmetro

Tipo

Descrição

consumerProccessHost Comando O nome do host do aplicativo que está chamando a API.
consumerProcessName Comando O nome do processo ou aplicativo do chamador da API. Por exemplo, EsnMediaServer.exe.
consumerProcessVersion Comando Qualquer informação de versão sobre o aplicativo que está chamando a API.
inContactClusterAlias Comando Se aplicável e disponível, forneça o alias do cluster NICE CXone, como C7 ou M33.
inContactScriptEngineHost Comando Se aplicável e disponível, forneça o nome do host do mecanismo de script NICE CXone, como lax-c4cor01 ou aoa-c32cor01.
consumerMetaData Object Dados arbitrários e extensíveis sobre o consumidor da API.