Plantilla de documento 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 planeación de su integración de agente virtual personalizado. Esta página es una guía para crear un TDD para su integración de agente virtual personalizado.

Cada sección de esta plantilla de TDD contiene ejemplos o información adicional sobre el contenido previsto para esa sección. En la medida de lo posible, los ejemplos se relacionan con la integración de agente virtual de texto de ejemplo.

Utilice esta guía de TDD y la Integración de ejemplo como punto de partida en la planificación de 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

Este documento de diseño técnico describe la integración personalizada de [su agente virtual] con NiCE CXone. La integración incluye los siguientes componentes que deben describirse en este documento:

  • La arquitectura, con el middleware del túnel de proxy/puerta de enlace.
  • Los requisitos de configuración de NiCE CXone, como habilidades, puntos de contacto y canales.
  • Virtual Agent Hub y el terminal para las integraciones personalizadas de agente virtual (Terminal personalizado de intercambio).
  • Studio scripts, incluyendo código 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 (DX).
  • Mapeado del esquema de solicitudes y respuestas.
  • [otros componentes particulares de su arquitectura e integrar].

Perspectiva general de la arquitectura

Para hacer: Cree un diagrama de perspectiva 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 de perspectiva general. Si necesita mostrar ciertas partes con más detalle, cree otros diagramas.

Ejemplo

Este es un texto de ejemplo de integrar agente virtual en un canal de chat de ACD. Debido a que esta es una integración de ejemplo, algunas cosas son diferentes de una integración del mundo real:

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

NiCE CXone Configuracion

Por hacer: Enumere el canalClosed Diversos medios de comunicación de voz y digitales que facilitan las interacciones con los clientes en un centro de contacto., las habilidadesClosed Se usa para automatizar la entrega de interacciones según las habilidades, capacidades y conocimientos del agente., los puntos de contactoClosed 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 otra configuración importante de NiCE CXone. Si su integración utiliza un canal Digital Experience (DX) (Digital), incluya el canal Digital Experience (DX) y las habilidades digitales necesarias o las colas de enrutamientoClosed Determina a qué agentes enrutar los casos digitales, utilizando criterios como que el agente tenga experiencia en ese tipo de caso.. Para obtener más información, consulte Requisitos de configuración de NiCE CXone en la página de Recursos.

Ejemplo

  • canal: ACD chat.
  • Habilidad: habilidad de conversación llamada IBChat_CEESample.
  • Punto de contacto: punto de contacto de chat llamado IBChat_CEESample.
  • Campaña: CEESample.

Requisitos del canal

Debido a que esta es una integrar de ejemplo, no se requiere ningún perfil de chat. Sin embargo, en una integración real, esta sección especificaría los requisitos para el perfil de chat.El perfil de chat define cómo se ve 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.

Virtual Agent Hub Configuracion

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 de configuración completo para el terminal de intercambio personalizado en Virtual Agent Hub se describe en la página de Implementación.

Ejemplo

  • URL de Webhook: https://https://4db3-5-46-62-207.nrgok.io/proxy/performbotexchange
  • Parámetros 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: Sin cambio necesario
  • Encabezado autorización: No se requiere ninguno
  • OAuth Configuration: None required
    • OAuth URL: N/A
    • Parámetros de solicitud de OAuth: N/A
    • OAuth encabezados: 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 Virtual Agent Hub.

Studio Scripts

Para hacer: Agregue capturas de pantalla de los Scripts que diseñe para su integrar de agente virtual personalizado, 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 las pautas y requisitos de script.

Ejemplo de script de conversación

This is the same script used in the sample integration. You can use it as the basis for your own script. Example scripts are also provided for voice and digital virtual agents.

Descargar este script.

Este script comienza con una acción Snippet que crea varios objetos de datos dinámicos requeridos por una integración de agente virtual:

  • intentInfo
  • nextPromptSequence
  • nextPromptBehaviors
  • customPayload
  • botSessionState

La primera acción Textbot Exchange establece la intenciónClosed El significado o propósito detrás de lo que dice o escribe un contacto; lo que el contacto desea comunicar o lograr. a la que debe responder el agente virtual como la Intención de bienvenida. Cuando el agente virtual responde, completa los objetos botSessionState y customPayload y los convierte a JSON mediante la función .asjson().

La primera acción Textbot Exchange tiene tres ramas:

  • Error: La rama de error procesa el error y proporciona 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 debe transferirse a un agente en vivo.
  • Prompt and Collect Next Response: Esta rama continúa la conversación, como se describe a continuación.

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

  • Error
  • Return Control to Script
  • Caller Responded
  • Por defecto

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

Autorización de 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 de clave-valor para 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.
  • Pares clave-valor necesarios para el cuerpo y los encabezados de la solicitud de OAuth.
  • Si necesita o desea personalizar otras configuraciones 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 ejemplo 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 Virtual Agent Hub. 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 utiliza encabezados sería similar a la del ejemplo de una terminal de servicio público que se encuentra 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é idioma se desarrollará el túnel de proxy y cualquier aplicaciones, dependencias, SDK, paquetes de extensión necesarios, entre otros.
  • 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 integrar 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

Debido a que esta es una integración de ejemplo, no se requiere ninguna estrategia de recuperación tras fallas.

Caso de uso de agente virtual: Mapeado de Proxy a Terminal de 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 solicitud y respuesta en NiCE CXone y en el servicio de agente virtual que requiere su integración personalizada. El ejemplo en esta sección muestra solo esquemas para NiCE CXone. Para obtener más información, consulte la sección de Túnel Proxy y la sección de Diagramas de Secuencia en la página Recursos.

Ejemplo

El diagrama de secuencia y todo lo que sigue es un ejemplo basado en Swagger disponible en el momento de la publicación. Siempre utilice los esquemas documentados en las Swagger A square with an arrow pointing from the center outward. para integraciones de agente virtual personalizadas. Los esquemas del terminal personalizado de intercambio se pueden actualizar de forma periódica. Para obtener más información sobre cómo esto afecta su integración personalizada, consulte la página de Recursos.

Esquemas de solicitud y Respuesta

Los esquemas para las solicitudes se incluyen en esta página, como un ejemplo de documentación de esquemas. Para obtener explicaciones detalladas sobre los esquemas de integración de agente virtual personalizado, consulte la página de Esquemas.

Solicitud: ExternalIntegrationBotExchangeRequest

El parámetro

Tipo

Descripción

virtualAgentId Cadena de caracteres

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

botConfig Objeto Los parámetros definidos en botConfig se analizan en otras secciones de este documento.
userInput Cadena de caracteres La entrada de texto del usuario recibida desde el punto de contactoClosed 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ónClosed Realiza un proceso dentro de un script de Studio, como recopilar datos del cliente o reproducir música. dentro de un script.
systemTelemetryData SystemTelemetryData Datos que pueden usarse para la depuración. Contiene información sobre la infraestructura de NiCE 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 enunciadoClosed Lo que un contacto dice o escribe. 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

El parámetro

Tipo

Descripción

ContactID Entero El identificador único de la interacción.
busNo Entero El identificador único de la AbonadoClosed Agrupación organizativa de alto nivel utilizada para administrar el soporte técnico, la facturación y la configuración global de su sistema NiCE CXone..
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ónClosed Realiza un proceso dentro de un script de Studio, como recopilar datos del cliente o reproducir música. 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

El parámetro

Tipo

Descripción

consumerProccessHost Cadena de caracteres El nombre de servidor 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 de Medio Enriquecido para Digital Channels

Si está configurando una integración de agente virtual personalizado para un canal Digital Experience (DX) (Digital), puede optar por admitir contenido de medios enriquecidos 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é medio enriquecido desea admitir y agregue el esquemas para el contenido de esta sección de su TDD.

Ejemplo

La integración de muestra no usa un canal Digital Experience (DX). Sin embargo, el siguiente es un ejemplo de un esquema JSON para respuestas rápidas en un canal de conversación 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"
				}
			 ]
			}
		]
 	}
}