Plantilla de documentación de diseño técnico

Los documentos de diseño técnico (TDD) describen los detalles de un sistema. Son una parte importante de la planificación de su integración personalizada de agente virtual. Esta página es una guía para crear una TDD para su integración personalizada de agente virtual.

Cada sección de esta plantilla de TDD contiene ejemplos o información adicional sobre el contenido previsto para esa sección. Siempre que sea posible, los ejemplos se refieren a la integración del agente virtual de texto de ejemplo.

Use esta guía de TDD y la integración de ejemplo como punto de partida para planificar su propia integración personalizada. Sin embargo, como se ofrecen a modo de ejemplo, ni la TDD ni el túnel de proxy de muestra están diseñados para un entorno específico. La TDD y el túnel de proxy que usted cree deben tomar en cuenta la arquitectura y los requisitos únicos de su organización. Quizás deba agregar o eliminar secciones para adaptarse a las necesidades de su organización.

Perspectiva general

La presente documentación de diseño técnico describe la integración personalizada de [su agente virtual] con NICE CXone. La integración abarca los componentes a continuación, que se deben describir en este documento:

  • La arquitectura, con el middleware del túnel de proxy/puerta de enlace.
  • Los requisitos de configuración de CXone, como habilidades, puntos de contacto y canales.
  • Centro de Agente Virtual y el terminal para las integraciones personalizadas de agente virtual (Terminal personalizado de intercambio).
  • Los scripts de Studio, como el código de Snippet.
  • Requisitos de autenticación.
  • La configuración del agente virtual, los terminales, los detalles del origen de los mensajes.
  • Los esquemas JSON del contenido multimedia enriquecido de Digital Experience.
  • El mapeado del esquema de solicitudes y respuestas.
  • [Otros componentes particulares de su arquitectura e integración].

Perspectiva general de la arquitectura

Para hacer: Cree un diagrama general de su integración. Incluya todos los componentes de su entorno que participen en la gestión de una interacción. Esto abarca el túnel de proxy, el agente virtual, un servidor de autorización, etcétera. Incluya una descripción general. Si necesita mostrar ciertas partes con más detalle, cree otros diagramas.

Ejemplo

Esta es una integración del agente virtual de texto de ejemplo en un canal de chat ACD. Como la integración es de ejemplo, algunas cosas serán distintas de una integración en la vida real:

Esta es una integración simple que no necesita ninguna autorización.

CXone Configuración

Para hacer: Enumere el canalCerrado Una forma de que los contactos interactúen con agentes o bots. Un canal puede ser de voz, correo electrónico, chat, redes sociales, etc., las habilidadesCerrado Se utiliza para automatizar la entrega de interacciones basadas en las habilidades, capacidades y conocimientos de los agentes, los puntos de contactoCerrado El punto de entrada que utiliza un contacto entrante para iniciar una interacción, como un número de teléfono o una dirección de correo electrónico., las campañas y cualquier otro ajuste relevante de la configuración de CXone. Si su integración usa un canal Digital Experience (Digital), incluya el canal Digital Experience y las habilidades digitales o colas de enrutamientoCerrado El sistema utiliza colas de enrutamiento para determinar a qué agentes enrutar los casos. El administrador del sistema crea colas de enrutamiento para que ciertos casos se enruten a agentes con experiencia en ese tipo de caso. necesarias. Para obtener más información, consulte Requisitos de configuración de CXone en la página Recursos.

Ejemplo

  • Canal: Chat ACD.
  • Habilidad: Habilidad de chat llamada IBChat_CEESample.
  • Punto de contacto: Punto de contacto de chat llamado IBChat_CEESample.
  • CampañaCEESample.

Requisitos del canal

Como esta es una integración de ejemplo, no se necesita un perfil de charla. Sin embargo, en una integración real, esta sección especificaría los requisitos del perfil de charla. El enlace descarga un archivo ZIP que contiene la versión XML del script de vozEl perfil de charla define cómo lucirá la ventana de chat. Esta sección debe indicar también las páginas del sitio web donde estará la burbuja de conversación, así como cualquier otro requisito relacionado.

Centro de Agente Virtual Configuración

Para hacer: Enumere la URL de webhook de su agente virtual y cualquier parámetro que su agente virtual necesite que se envíe con las solicitudes. Si determina que necesita un tiempo límite distinto, agréguelo a esta sección. El proceso completo de configuración del terminal personalizado de intercambio de Centro de Agente Virtual se describe en la página Implementación.

Ejemplo

  • URL de Webhookhttps://https://4db3-5-46-62-207.nrgok.io/proxy/performbotexchange
  • Parámetros del terminal: No se necesitan
  • Encabezados personalizados (versión de integración 2.0. 0 y 3.0.0 solamente): No se necesitan
  • Tiempo límite: No necesita cambios
  • Encabezado de autorización: No se necesita
  • Configuración OAuth: No se necesita
    • OAuth URL: N/A
    • Parámetros de solicitud de Oauth:: N/A
    • Encabezados de OAuth Headers: N/A

Tenga en cuenta que en la versión de integración 1.0.0, la autenticación dinámica se debe configurar en el script, no en Centro de Agente Virtual.

Studio Scripts

Para hacer: Agregue capturas de pantalla a los scripts que diseñe para integración personalizada de agente virtual, junto con explicaciones. Incluya la descripción de las variables, el fragmento de código y otros detalles, según sea necesario. Para obtener más información, consulte los requisitos y directrices para la creación de scripts.

Ejemplo de script de chat

Este es el mismo script utilizado en la integración de muestra. Puede usarlo como base para su propio script. También hay scripts de ejemplo para agentes virtuales de voz y digitales.

Descargue este script.

Este script comienza con una acción Snippet que crea varios objetos dinámicos de datos, necesarios para la integración del agente virtual:

  • intentInfo
  • nextPromptSequence
  • nextPromptBehaviors
  • customPayload
  • botSessionState

La primera acción Textbot Exchange establece la intenciónCerrado El significado o propósito detrás de lo que dice/escribe un contacto; lo que el contacto quiere comunicar o lograr a la que el agente virtual de respondes como la intención de Bienvenida. Cuando el agente virtual responde, rellena los objetos de botSessionState y customPayload y los convierte a JSON usando la función .asjson().

La primera acción Textbot Exchange tiene tres ramas:

  • Error: La rama de error procesa el error y ofrece un mensaje adecuado al contacto.
  • Return Control to Script: Esta rama se toma cuando el agente virtual indica que la conversación ha finalizado o que el contacto necesita ser transferido a un agente en directo.
  • Prompt and Collect Next Response: Esta rama continúa con la conversación, según se describe más adelante.

El script transmite los datos recibidos del agente virtual en los objetos de botsessionState, customPayloadFromBot, intentInfo y nextPrompt. La acción Askcaller indica al contacto la respuesta del agente virtual (nextPrompt). Esta acción tiene cuatro ramas:

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

Todas las ramas van a la segunda acción Textbot Exchange, que envía la información adecuada al agente virtual, como la siguiente solicitud del contacto en la variable RES. Esta Textbot Exchange tiene las mismas ramas que en la primera instancia de la acción en el script.

Autorización del terminal de servicio

Para hacer: Determine los requisitos de autorización de su servicio de agente virtual. Si necesita una autorización, complete esta sección de la TDD. Cree un diagrama que ilustre los requisitos de autorización de su entorno. Detalle allí qué se necesita para las solicitudes de autorización. Puede abarcar lo siguiente:

  • El tipo de autorización (encabezados o tokens).
  • Los pares clave-valor de todos los encabezados requeridos. Si está usando la versión de intercambio personalizado 1.0.0, solo necesita el valor del encabezado.
  • Cualquier requisito de configuración para el servicio de agente virtual, si está usando encabezados, o para el servidor de autorización, si está usando tokens.
  • La URL del servidor de autorización, si está usando tokens.
  • Los pares clave-valor necesarios para el cuerpo y los encabezados de la solicitud de OAuth.
  • Si necesita o desea personalizar otra configuración de OAuth, especifique esos cambios. Puede cambiar el nombre del encabezado, el prefijo del valor del encabezado y el plazo de caducidad del token.

Para obtener más información, consulte la sección Autorización en la página Recursos.

Ejemplo para terminales de servicio (públicos) no autorizados

La integración de muestra no necesita autorización. El diagrama siguiente muestra un ejemplo del aspecto que podría tener un terminal de servicio público.

En este ejemplo, la solicitud se origina en Centro de Agente Virtual. Primero, interactúa con la puerta de enlace API y, después, con el servicio de agente virtual.

Ejemplo de terminales de servicio autorizados

Cuando un servicio de agente virtual necesita autorización para recibir solicitudes, debe enviar encabezados de autorización con cada solicitud. También puede usar una autenticación dinámica, que necesita un servidor de autorización (proveedor de token). La arquitectura de una integración que use encabezados tendría un aspecto similar al del ejemplo de terminal de servicio público indicado en la sección anterior.. El diagrama a continuación muestra un ejemplo de implementación de autenticación dinámica.

En este ejemplo, cuando el script se inicia, se envía una solicitud REST al servidor de autorización, que proporciona un token. El token se envía junto con el terminal personalizado de intercambio. Siempre que el token sea válido, las solicitudes pueden enviarse al servicio de agente virtual.

Túnel de proxy

Para hacer: Determine los detalles de su túnel de proxy:

  • Dónde se alojará su túnel de proxy.
  • En qué lenguaje se desarrollará el túnel de proxy y qué aplicaciones, dependencias, SDK, paquetes de extensión, etcétera se necesitarán.
  • Una estrategia de migración en caso de error para el túnel de proxy.

Ejemplo

Alojamiento del túnel de proxy

El túnel de proxy de ejemplo se alojará en la máquina local de la persona que configure la integración del agente virtual de texto de ejemplo.

Idioma

El túnel de proxy se desarrollará en C#. Necesitará el editor VS Code y un SDK .NET.

Estrategia de migración en caso de error

Como esta es una integración de ejemplo, no se necesita una estrategia de migración en caso de error.

Caso de uso de agente virtual: Mapeado de terminal de proxy a agente virtual

Para hacer: Cree un diagrama de secuencias detallado que ilustre las respuestas y solicitudes en cada punto de una interacción. Documente los esquemas de solicitudes y respuestas en CXone y en el servicio de agente virtual que necesite su integración personalizada. El ejemplo de esta sección muestra solo los esquemas de CXone. Para obtener más información, consulte la sección Túnel de proxy y la sección Diagramas de secuencias en la página Recursos.

Ejemplo

El diagrama de secuencias y todo lo que sigue es un ejemplo basado en el documento Swagger disponible al momento de la publicación. Para las integraciones personalizadas de agente virtual, siempre use esquemas documentados en Swagger Un cuadrado con una flecha que apunta desde el centro hacia afuera., disponible públicamente. Los esquemas del terminal personalizado de intercambio se pueden actualizar de forma periódica. Para obtener más información sobre el impacto que esto tiene sobre su integración personalizada, consulte la página Recursos.

Esquemas de solicitudes y respuestas

Los esquemas de solicitudes incluidos en esta página son un ejemplo de esquemas de documentación. Para obtener una explicación detallada de los esquemas de integración personalizada de agente virtual, consulte la página Esquemas.

Solicitud: ExternalIntegrationBotExchangeRequest

Parámetro

Tipo

Descripción

virtualAgentId Cadena de caracteres

El nombre asignado a la aplicación de configuración Terminal personalizado de intercambio en Centro de Agente Virtual. Este nombre identifica al agente virtual que invoca la aplicación.

botConfig Objeto Los parámetros definidos en botConfig se abordan en otras secciones de este documento.
userInput Cadena de caracteres La entrada de texto del usuario recibida desde el punto de contactoCerrado El punto de entrada que utiliza un contacto entrante para iniciar una interacción, como un número de teléfono o una dirección de correo electrónico. al que está asignado el script.
userInputType Enum El tipo de entrada del usuario provisto por el script.
executionInfo ActionExecutionInfo Datos de telemetría para la ejecución de una acciónCerrado Realiza un proceso dentro de un scripts de Studio, tales como la recopilación de datos de clientes, reproducir un mensaje o música, o el enrutamiento de un contacto a un agente. dentro de un script.
systemTelemetryData SystemTelemetryData Datos que pueden usarse para la depuración. Contiene información sobre la infraestructura de CXone.
base64wavFile Cadena de caracteres Contiene el archivo WAV con codificación de base 64 que contiene el encabezado de la solicitud y el audio del enunciadoCerrado Lo que dice o escribe un contacto. del usuario.
botSessionState Objeto Puede usarse para variables de información de sesiones de ida y vuelta recibidas de parte del agente virtual.
customPayload Objeto Puede usarse para enviar más variables y parámetros desde el contexto del script de Studio.
mediaType Cadena de caracteres Indica el tipo de medio del script que se está ejecutando.

Solicitud: ActionExecutionInfo

Parámetro

Tipo

Descripción

contactID Entero El identificador único de la interacción.
busNo Entero El identificador único de la tenant.
requestId Entero

Un número interactivo que identifica cada solicitud de una interacción en particular.

 

actionType Cadena de caracteres El tipo de acción que hace la solicitud al terminal personalizado de intercambio.
actionId Entero El identificador único de la acciónCerrado Realiza un proceso dentro de un scripts de Studio, tales como la recopilación de datos de clientes, reproducir un mensaje o música, o el enrutamiento de un contacto a un agente. en el script. Las ID de acción se basan en el orden en que se agregaron las acciones al script.
scriptName Cadena de caracteres El nombre del script.

Solicitud: SystemTelemetryData

Parámetro

Tipo

Descripción

consumerProccessHost Cadena de caracteres El nombre del host de la aplicación que llama a la API.
consumerProcessName Cadena de caracteres El nombre del proceso o aplicación de la llamada API. Por ejemplo, EsnMediaServer.exe.
consumerProcessVersion Cadena de caracteres Cualquier información sobre la versión de la aplicación que llama a la API.
inContactClusterAlias Cadena de caracteres Si es aplicable y está disponible, indique el alias del clúster de NICE CXone, como C7 o M33.
inContactScriptEngineHost Cadena de caracteres Si es aplicable y está disponible, indique el nombre del host del motor de script de NICE CXone, como lax-c4cor01 o aoa-c32cor01.
consumerMetaData Objeto Datos arbitrarios y ampliables sobre el consumidor de API.

Contenido multimedia enriquecido para Canales digitales

Si está configurando una integración personalizada de agente virtual para un canal Digital Experience (Digital), puede elegir que admita contenido multimedia enriquecido en los mensajes. El contenido multimedia enriquecido abarca elementos tales como selectores de listas, imágenes, selectores de hora, etcétera.

Para hacer: Configure su script digital para que envíe contenido multimedia enriquecido. Determine qué contenido multimedia enriquecido desea admitir y agregue los esquemas para el contenido en esta sección de su TDD.

Ejemplo

La integración de muestra no usa un canal Digital Experience. Sin embargo, el siguiente es un ejemplo de un esquema JSON para respuestas rápidas en un canal de chat de digital:

"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"
				}
			 ]
			}
		]
 	}
}