CRM personalizada

La solución de CRM personalizado permite a las empresas aprovechar el portal de Contact Center AI Platform (CCAI Platform) cuando usan un CRM que no es una integración estándar actual con CCAI Platform. La configuración personalizada del CRM funciona cuando se usa un CRM interno o cualquier CRM no estándar.

Los agentes controlan las llamadas y los chats, y los supervisores pueden supervisar y extraer informes con el portal de CCAI Platform. Todos los detalles sobre la sesión de llamada o chat se almacenan en un archivo de metadatos de la sesión. Este archivo puede contener más de 20 datos, incluida la información de la sesión, las transferencias, la duración de la atención, los participantes, la información de diagnóstico y mucho más. El archivo de metadatos de la sesión se puede analizar y usar para el análisis y el seguimiento posteriores a la sesión.

Los metadatos de la sesión y los archivos multimedia que sube el consumidor se envían a un servicio de almacenamiento externo, y los agentes pueden ver los archivos multimedia que sube el consumidor directamente en el adaptador del agente durante la sesión.

Una solución de CRM personalizada se implementa con una combinación de los siguientes componentes. Es posible que algunos componentes se apliquen o no a tu configuración:

  • Generar el archivo de metadatos de la sesión para cada sesión de llamada y chat

  • Envía metadatos y archivos multimedia a un servicio de almacenamiento externo

  • Integración de API genérica

  • URL de búsqueda personalizada

  • Actualización de registros de CRM por correo electrónico

  • Búsqueda de cuentas o casos desde el adaptador del agente

Requisitos previos

Para usar la función de CRM personalizado, primero debes configurar el almacenamiento externo. Consulta Almacenamiento externo para soluciones de CRM personalizadas para obtener más información.

Metadatos de la sesión

El archivo de metadatos de la sesión contiene información detallada sobre la sesión. Se envía 15 minutos después de que se completa la sesión. Consulta Archivo de metadatos de la sesión para obtener más información.

Métodos de interacción e integración de CRM personalizada

API genérica URL personalizada
Búsqueda de cuentas Sí Sí
Búsqueda de casos Sí
Actualización del caso Sí No

API genérica

El método de integración de API genérica permite usar la API de tu CRM personalizado para establecer una conexión bidireccional con CCAI Platform. Este método fluido se siente igual que la experiencia de integración de CRM lista para usar. El agente no tiene que realizar ninguna acción para crear un registro de CRM para las sesiones de llamadas o chats, según la configuración única de la API. Puede habilitar una búsqueda y actualización de registros sin problemas.

URL personalizada

La opción de vínculo personalizado permite que tus agentes interactúen con tu CRM a través de un vínculo personalizado creado para cada sesión. A diferencia de la integración estándar de CRM y la experiencia de la API genérica, el agente debe tomar medidas para que se cree un registro de CRM. En algunos casos, esto puede ser solo iniciar una pestaña con el vínculo personalizado de la sesión y, en otros, es posible que el agente deba crear el registro de forma manual.

Detalles y configuración de la URL de búsqueda personalizada

La funcionalidad básica de la URL es realizar una búsqueda en el CRM, pero, según tu CRM, se pueden activar procesos más complejos en función del contenido de la URL personalizada. La URL del CRM personalizado se puede configurar con variables que contienen información de la sesión y es accesible en el adaptador del agente durante la sesión. Una vez que se acceda a la URL, se activará el CRM personalizado para realizar una búsqueda. Esta búsqueda en el CRM es la forma en que los agentes pueden usar una "ventana emergente de ticket" para la sesión de llamada o chat activa. El proceso de vínculo personalizado se basa únicamente en la capacidad del CRM personalizado para procesar este vínculo y modificarlo o reescribirlo si es necesario.

Los metadatos de la sesión, las grabaciones de llamadas y otros archivos almacenados externamente no se vincularán al registro de CRM, a menos que también se aproveche el método de actualización por correo electrónico que se indica.

En esta configuración, el agente accederá al portal de CCAI Platform y a su CRM en pestañas separadas. Las llamadas y los chats se manejarán en la pestaña de la plataforma de la CCAI, y se accederá a los detalles de los tickets en una pestaña del CRM.

Para que esta configuración funcione, haz lo siguiente:

  • El agente debe estar conectado a su CRM en el navegador.

  • El agente debe acceder al portal de CCAI Platform en su navegador.

  • La URL de búsqueda personalizada debe estar preconfigurada

  • Tu CRM debe controlar la URL personalizada para mostrar el registro de CRM pertinente.

Comportamiento de la URL de búsqueda personalizada

  • La Plataforma de la CCAI solo incluirá en la URL los parámetros que no estén vacíos.

  • CCAI Platform no almacena la URL generada que contiene el ANI, el UID o el correo electrónico en la base de datos de CCAI Platform una vez que finaliza la sesión.

Configuración de URL de búsqueda personalizada

Debido a las diferentes capacidades y comportamientos de los identificadores únicos y del CRM, deberás crear 2 URLs diferentes: una para las sesiones de IVR/PSTN/SMS y otra para las sesiones del SDK web y para dispositivos móviles. Las sesiones de IVR, PSTN y SMS usarán el ANI como identificador único, mientras que el SDK web y para dispositivos móviles probablemente usará el CUID y el correo electrónico.

Se pueden usar las siguientes variables para configurar una URL de búsqueda:

Variable Valores
{CUSTOMER_PHONE_NUMBER} Es el número de teléfono del usuario final.
{ANI} Es el número de teléfono del usuario final. Se retiene para la retrocompatibilidad.
{CUID} ID de usuario personalizado
{EMAIL} Correo electrónico del usuario final
{MENU_PATH} Ruta de menú completa de la fila.
Por ejemplo, "Pedidos/Confirmación de pedido/Información del pedido".
{MENU_ID} ID del menú
{CHANNEL}

Es el canal de la sesión. Valores posibles:

  • chat
  • voice_call
{TYPE}

Es el tipo de sesión.

Valores posibles para las llamadas:

  • Incoming_Call_(app)
  • Scheduled_Call_(app)
  • Incoming_Call_(web)
  • Scheduled_Call_(web)
  • Outbound_Call
  • Outbound_Call_(api)
  • Incoming_Call_(api)
  • IVR_Call
  • IVR_Call_(app)
  • Mensaje de voz

Valores posibles para los chats:

  • Dispositivos móviles
  • Web
  • SMS
{SUPPORT_PHONE_NUMBER} Es el número de teléfono del centro de asistencia al que llama el usuario final.
{OUTBOUND_NUMBER} Es el número de teléfono que usa un agente para una llamada saliente.
{SESSION_ID}

Es el ID de la sesión. Valores posibles:

  • ID de llamada
  • ID del chat
  • ID de correo electrónico
{CUSTOM_AGENT_ID} Es el campo opcional del ID del agente en el objeto user. El ID del agente no se puede obtener hasta que se establezca la sesión y se asigne un agente. Por este motivo, configura tu instancia para retrasar la creación de registros de llamadas o chats, de modo que haya tiempo para definir esta variable. Puedes retrasar la creación de registros de llamadas o chats en Configuración > Administración de operaciones > Detalles de creación de registros de CRM. Para obtener más información, consulta Detalles de la creación de registros de CRM.

Configuración del portal de CCAI Platform

  1. Accede al portal de CCAI Platform con una cuenta que tenga asignado el rol de administrador.

  2. Ve a Configuración > Configuración para desarrolladores.

  3. En la sección CRM, selecciona CRM personalizado.

  4. En Búsqueda de CRM, ingresa tus URLs personalizadas.

  5. Selecciona el Formato del número de teléfono que se usará en las solicitudes de CRM.

  6. Haz clic en Guardar cambios.

  7. Si aún no lo hiciste, configura tu servicio de almacenamiento externo. Para obtener más información, consulta Almacenamiento externo.

Actualización de registros de CRM por correo electrónico

En parámetros de configuración como la URL de búsqueda personalizada, una vez que se completa una sesión, los metadatos de la sesión se deben actualizar en el CRM. Con esta función, CCAI Platform puede enviar automáticamente datos de la sesión por correo electrónico. Aproximadamente 15 minutos después de que finaliza una sesión, se envía un correo electrónico a una ubicación configurada y el contenido del correo electrónico se usa para actualizar un registro en tu CRM. Esta función se puede configurar de forma global y por cola. Una vez que se recibe el correo electrónico, es posible que tu CRM esté configurado para actualizar o crear un nuevo registro de CRM para la sesión.

Detalles del correo electrónico

  • Enviado desde no-reply@ccaiplatform.com

  • Contiene lo siguiente:

    • Subject line

    • Cuerpo con los metadatos de la sesión en sintaxis JSON

    • Un archivo adjunto en formato TXT con la transcripción del chat, si corresponde

  • La plataforma de CCAI esperará 15 minutos después de que finalice la sesión y, luego, enviará el correo electrónico.

  • Los correos electrónicos solo se envían para las sesiones que se completaron correctamente. No se envía para las sesiones fallidas o abandonadas.

Configuración global

  1. Accede al portal de CCAI Platform con una cuenta que tenga asignado el rol de administrador.

  2. Ve a Configuración > Configuración para desarrolladores.

  3. En la sección CRM, asegúrate de que esté seleccionada la opción CRM personalizado.

  4. Habilita Enviar el resultado de la sesión por correo electrónico.

  5. Ingresa la dirección de correo electrónico a la que quieres que se envíe el mensaje.

  6. Haz clic en Guardar cambios.

Configuración por cola

  1. Accede al portal de CCAI Platform con una cuenta que tenga asignado el rol de administrador.

  2. Ve a Configuración > Cola y selecciona cualquier subcola.

  3. Habilita Send session outcome via Email.

  4. Ingresa la dirección de correo electrónico a la que quieres que se envíe el mensaje.

    Visualización de la configuración de correo electrónico

  5. Haz clic en Guardar la configuración del CRM personalizado.

Herencia y anulación de la configuración

Configuración Comportamiento
Global = NO habilitado
En cola = NO habilitado
No se envía para todas las colas.
Global = NO habilitado
Cola = Habilitado
La configuración de la cola (es decir, el estado activado o desactivado) anula la configuración global.
El correo electrónico se envía desde una cola determinada a una dirección de correo electrónico definida en el parámetro de configuración de la cola.
Global = Habilitado
Queue = NO habilitado
La configuración de la cola (dirección de correo electrónico, estado activado o desactivado) hereda la configuración global.
El correo electrónico se envía desde una cola determinada a una dirección de correo electrónico definida en la configuración global.
Global = Habilitado
Cola = Habilitado
El parámetro de configuración de la cola (dirección de correo electrónico) anula el parámetro de configuración global.
El correo electrónico se envía desde una cola determinada a una dirección de correo electrónico definida en el parámetro de configuración de la cola.
Si la dirección de correo electrónico está vacía, no se envía el correo electrónico.

Experiencia del agente

Búsqueda de registros de CRM

  1. Accede al portal de CCAI Platform con una cuenta que tenga asignado el rol de agente.

  2. Abre el adaptador de llamadas o chat.

  3. Usa el botón Abrir en una ventana nueva del navegador para activar la búsqueda.

  4. Usa el botón Copiar vínculo para copiar la URL de búsqueda en el portapapeles.

Visualización del agente

Almacenamiento externo para soluciones de CRM personalizadas

El almacenamiento externo para soluciones personalizadas permite usar un servicio de almacenamiento externo para almacenar y recuperar metadatos de la sesión de CCAI Platform, grabaciones de llamadas, transcripciones de chats y archivos multimedia subidos por los consumidores. Los archivos se almacenan fuera de un CRM.

Para configurar el almacenamiento externo, debes tener lo siguiente:

  • Una cuenta válida de CCAI Platform con los roles de administrador y agente asignados para la configuración y las pruebas

  • Un servicio de almacenamiento externo

Estructura de carpetas

La siguiente estructura de carpetas se organizará en tu almacenamiento externo en Ruta de la carpeta:

  • ujet-chat-transcripts

  • ujet-media

  • ujet-metadata

  • ujet-voice-recordings

  • ujet-voicemails

Formatos de archivo y convenciones de nomenclatura

Los siguientes tipos de archivos se pueden enviar al servicio de almacenamiento externo. Los archivos se encriptan durante el tránsito con HTTPS:

Archivo Nombre
Grabaciones de llamadas - call-{id}.mp3
- call-{id}.wav
Archivos multimedia - call-{id}-photo-{photo-id}.jpg
- call-{id}-video-{video-id}.mp4
- chat-{id}-photo-{photo-id}.jpg
- chat-{id}-video-{video-id}.mp4
Transcripciones de chats - chat-{id}.txt
Metadatos de la sesión - call-{id}.json
- chat-{id}.json

Experiencia del agente y del supervisor

Durante la llamada o la sesión de chat, las fotos y los videos que sube el consumidor con las acciones inteligentes se muestran en el adaptador del agente.

Si usas la interacción de CRM con URL personalizada combinada con el método de actualización de correo electrónico del archivo de metadatos de la sesión, los agentes y supervisores pueden acceder a la información de la sesión a través de tu servidor externo.

Configura el servicio de almacenamiento externo

Completa estos pasos para configurar tu almacenamiento externo:

  1. Accede al portal de CCAI Platform con una cuenta que tenga asignado el rol de administrador.

  2. Ve a Configuración > Configuración para desarrolladores.

  3. En la página Configuración de desarrollador, navega a la sección Almacenamiento externo.

  4. Para habilitar el almacenamiento de información fuera de los servidores de CRM, cambia el interruptor a Activado y, luego, selecciona los tipos de archivos que se almacenarán.

  5. En la sección Configuración del servidor, selecciona tu tipo de almacenamiento y completa los pasos de configuración: Servidor SFTP, Google Cloud bucket.

Servidor SFTP

  1. Ingresa el host de SFTP (URL o dirección IP).

  2. Ingresa el número de puerto.

  3. Ingresa el ID de usuario de acceso de SFTP.

  4. Si el servidor SFTP requiere una contraseña para la autenticación, ingrésala en el campo Contraseña.

  5. Si el servidor SFTP requiere una clave privada para la autenticación, selecciona la casilla de verificación Clave privada SSH.

  6. Ingresa (copia y pega) la clave privada de SSH.

  7. Ingresa la frase de contraseña de la clave privada. Si la información de la sesión se debe almacenar en una carpeta específica del servidor SFTP, selecciona la casilla de verificación Ruta de acceso de la carpeta y, luego, ingresa la ruta de acceso de la carpeta SFTP.

  8. Haz clic en Guardar cambios.

Cloud Storage

  1. Ingresa el Nombre del bucket de destino Google Cloud .

  2. Ingresa el Google Cloud ID de cliente.

  3. Ingresa el secreto del cliente de Google Cloud .

  4. Si la información de la sesión se debe almacenar en una carpeta específica del bucket Google Cloud , selecciona la casilla de verificación Ruta de acceso de la carpeta y, luego, ingresa la Google Cloud ruta de acceso de la carpeta.

  5. Haz clic en Vincular y guardar.

Prueba la configuración del almacenamiento externo

Para los CRM con integración estándar existente:

  1. Accede a tu CRM.

  2. Accede a CCAI Platform dentro del CRM con las credenciales de CCAI Platform con un rol de agente asignado.

  3. Realiza una llamada o inicia un chat. Se muestra el registro de CRM asociado a la sesión.

  4. Cuando finalice la sesión, el archivo de transcripción se debería subir en cuestión de segundos.

  5. Navega directamente a la carpeta de almacenamiento del servidor externo y verifica que el archivo esté disponible.

Envío de archivos de sesión al CRM

Cuando el almacenamiento externo está habilitado, la configuración para desarrolladores de URLs de almacenamiento de CRM y almacenamiento externo proporciona la capacidad de enviar archivos de sesión y decidir qué fuente usar para mostrar archivos en el adaptador del agente.

Para ver estos parámetros de configuración, el almacenamiento externo debe estar habilitado en Configuración > Configuración para desarrolladores > Almacenamiento externo. Activa la opción Habilitar el almacenamiento de información fuera de los servidores del CRM.

Almacenamiento de CRM

  1. Ve a Configuración > Configuración para desarrolladores > Almacenamiento externo > Almacenamiento de CRM.

  2. Marca la casilla junto a También enviar archivos de sesión a la CRM para enviar archivos de sesión, como grabaciones de llamadas o transcripciones de chats, a tu CRM y al almacenamiento externo configurado.

  3. Haz clic en Guardar cambios.

Si la casilla de verificación está marcada, las grabaciones se almacenarán tanto en el CRM como en el almacenamiento externo.

URLs de almacenamiento externo

La URL de almacenamiento externo se usa en dos lugares:

  • Es el adaptador del agente.

  • Informes: Muestra la URL del contenido multimedia en el informe y en los menús, como Configuración, Llamadas y Completadas.

  1. Ve a Configuración > Configuración para desarrolladores > Almacenamiento externo > URLs de almacenamiento externo.

  2. Selecciona las URLs de CRM o de almacenamiento externo de la fuente para mostrar los archivos en el adaptador del agente.

  3. Haz clic en Guardar cambios.

Almacenamiento de CRM

  • Si la casilla de verificación de almacenamiento de la CRM no está marcada, las grabaciones se almacenarán solo en el almacenamiento externo y se usará un vínculo a la CRM.

  • Si la casilla de verificación está marcada, las grabaciones se almacenarán tanto en la CRM como en el almacenamiento externo.

URLs de almacenamiento externo

La URL se usa en dos lugares:

  • Una muestra los medios en el adaptador de la plataforma de CCAI. El almacenamiento externo o CRM.

  • La otra está en el informe. Revelamos la URL de los medios en los informes y en los menús, como Configuración, Llamadas y Completadas.

Mostrar CRM personalizado en el portal de CCAI Platform

Cuando usas la integración de CRM personalizada con tu propio CRM personalizado, puedes cargar tu CRM en una página dedicada dentro del portal de CCAI Platform. Una vez habilitada, la pestaña CRM en el portal de CCAI Platform carga y muestra tu página de CRM personalizada. Esto se puede configurar en Developer Settings > CRM.

Esta función permite que los agentes manejen sesiones de asistencia en vivo con los adaptadores de llamadas y chats de CCAI Platform mientras trabajan en tu CRM personalizado. Esto incluye revisar automáticamente los detalles de la cuenta y del registro que aparecen, así como los archivos y los datos específicos de la sesión que se pasan desde tu app para dispositivos móviles o por los consumidores, todo a través del portal de la Plataforma de CCAI.

Configura una página de CRM personalizada

Para configurar una página de CRM personalizada, sigue estos pasos:

  1. En el portal de CCAI Platform, haz clic en Configuración > Configuración para desarrolladores. Si no ves el menú Configuración, haz clic en Menú.

  2. En el panel CRM, haz clic en CRM personalizada.

  3. Haz clic en el botón de activación Mostrar CRM en el portal de CCAI Platform para activarlo.

  4. En URL visible, ingresa la URL de tu página de CRM personalizada y, luego, haz clic en Guardar.

Abrir ventana emergente de URL personalizada

Usa Abrir URL personalizada para que aparezca una pantalla emergente de URL personalizada cuando no se encuentre un contacto en el sistema. Crea un registro de CRM con un ID de cuenta temporal y activa un vínculo personalizado con parámetros basados en la configuración del nivel de la fila.

Habilitar la ventana emergente de pantalla por cola

  1. Ve a Configuración > Cola > IVR y haz clic en una cola para editarla.

  2. Ve a Abrir URL personalizada en el panel.

  3. Ingresa una URL para que aparezca una ventana emergente.

Incluye los parámetros de variable {ACCOUNT_ID} y {PHONE_NUMBER} en la URL.

Se proporciona un ejemplo.

  1. Haz clic en Save.

Integración genérica de la API de CRM personalizada

El método de integración de la API genérica proporciona la capacidad de usar la API de tu CRM para establecer una conexión bidireccional con CCAI Platform. Este método sin interrupciones tiene la misma sensación que la experiencia de integración de CRM lista para usar.

El agente no tiene que realizar ninguna acción para crear un registro de CRM para las sesiones de llamada o chat. Según la configuración única de la API, puede permitir una búsqueda y actualización de registros sin problemas.

Terminología

Plazo

Descripción

Cuenta

Se usa para hacer referencia a la entidad Cuenta/Contacto/Cliente/Cliente potencial en el CRM. Es posible que tu CRM tenga otro nombre para esta entidad.

Las cuentas contienen registros.

Registro

Se usa para hacer referencia a la entidad de caso, ticket, conversación o incidente en el CRM. Es posible que tu CRM tenga otro nombre para esta entidad.

Los registros pertenecen a las cuentas.

Comentario

Se usa para hacer referencia a la entidad Comment/Note en el CRM. Es posible que tu CRM tenga otro nombre para esta entidad.

Los comentarios pertenecen a los registros.

Configuración de la API

En esta sección, se describen los parámetros de configuración específicos de la API de CRM personalizada.

Método de autenticación

CCAI Platform admite tres métodos de autenticación para tu CRM:

  • Autenticación básica: Configura las credenciales de autenticación que incluyen Nombre de usuario y contraseña.

  • Encabezado personalizado: Configura pares clave-valor de encabezado personalizados: Clave de campo y Valor de campo. Ingresa tantos pares como necesites.

  • OAuth: CCAI Platform admite el protocolo estándar de la industria para la autorización de OAuth 2.0. Especifica la información de OAuth si necesitas habilitar la opción "Incluir la URL de redireccionamiento como parte de la URL de autorización y la URL del token".

    Configura los siguientes valores:

    • URL de autorización (obligatoria)

    • URL del token (obligatoria)

    • ID de cliente (obligatorio)

    • Secreto del cliente (obligatorio)

    • Alcance

    • Estado

    • Tipo de acceso

Formato del número de teléfono

Selecciona el formato de número de teléfono que se usará en las solicitudes de CRM:

  • Automático: Crear: +1 222 333 4444, Buscar: *222*333*4444

  • E.164: +12223334444

  • US Local: 2223334444

  • Estándar local de EE.UU.: (111) 222-3333

  • Internacional: +1 222 333 4444

Se agotó el tiempo de espera de la solicitud a la API

Configura el tiempo de espera de la solicitud a la API de 1 a 10 segundos con el menú desplegable. Este tiempo de espera se aplicará a todos los extremos que configures.

URLs de búsqueda de CRM

Especifica las URLs de búsqueda que se usarán para dirigir a un agente a la cuenta y el registro actuales.

Ingresa las URLs de búsqueda tal como aparecen en tu CRM cuando tienes una página de cuenta o registro abierta en tu navegador.

También puedes usar URLs de búsqueda de CRM con el SDK web y los SDKs para dispositivos móviles. Puedes configurar los SDK para que busquen información de la cuenta y los registros de CRM para mostrarla en el adaptador del agente. Para obtener una lista completa de las URLs de búsqueda de CRM, consulta Parámetros de la URL de solicitud.

URL de búsqueda de cuentas

Usa la variable {ACCOUNT_ID} para insertar el ID de cuenta real.

Ejemplo:

https://www.example.com/contact/{ACCOUNT_ID}

URL de búsqueda de registros

Usa la variable {RECORD_ID} para insertar el ID de registro real.

Ejemplo:

https://www.example.com/record/{RECORD_ID}

Endpoint de API

Esta es la configuración más importante para la API genérica.

  1. Para que la búsqueda de cuentas esté disponible para tus agentes, debes configurar los extremos Buscar una cuenta y Crear una cuenta.

  2. Además, puedes configurar los extremos Find a record y Create a record para permitir que tus agentes busquen o creen registros. Para ello, se requiere la configuración de la cuenta del paso anterior.

  3. Por último, si ingresas los extremos Actualizar un registro, Subir un archivo y Comentar, se habilitarán las actualizaciones de registros. Para ello, se requiere la configuración de registros del paso anterior.

Configuración de extremos

Establece la siguiente configuración:

  1. URL de solicitud: Es la URL del extremo de API.

  2. Elige el método de solicitud entre POST, GET, PUT o PATCH.

  3. Especifica los parámetros de la solicitud. Puedes usar las variables definidas por la plataforma de la CCAI para pasar la información requerida (consulta la siguiente tabla). También puedes ingresar texto sin formato o números como valores de los parámetros. Puedes agregar todos los parámetros que necesites.

  4. Si el extremo es POST/PUT/PATCH, CCAI Platform ofrece controles de ajuste más precisos sobre cómo se compila la solicitud. Elige Formato de datos de la solicitud en Propiedad o Contenedor. Especifica el formato del JSON de la solicitud.

    • Property. Esto indica que el objeto de solicitud es un mapa de propiedades básico cuando CCAI Platform compila el cuerpo de la solicitud a partir de parámetros.

    • Contenedor. Esto indica que los datos del objeto de solicitud que se enviarán deben estar anidados dentro de una estructura. Elige Tipo de contenedor en Mapa o Matriz. Ingresa el nombre del contenedor. Se usa como el nombre del objeto superior cuando se compila el cuerpo de la solicitud a partir de los parámetros.

      • Ejemplo: Map: { container_name : { ...parameters } }

      • Ejemplo: Array: {container_name : [ { ...parameters } ] }

  5. Ingresa la ubicación de los datos de respuesta. Se usa para ubicar el objeto de respuesta de destino en la respuesta JSON.

Parámetros de URL de solicitud

Parámetro Variable Comentario
ID del agente {AGENT_ID} Es el ID interno del agente.
ID personalizado del agente {AGENT_CUSTOM_ID} Es un campo opcional del perfil del usuario.
Correo electrónico del agente {AGENT_EMAIL} Es el correo electrónico del agente que responde, si corresponde.
Nombre del usuario final {NAME}
Nombre del usuario final {FIRST_NAME} Tomado de Name
Apellido del usuario final {LAST_NAME} Se toma de Name y, si falta, se establece de forma predeterminada en --.
ID externo {UJET_ID} ID de usuario final de CCAI Platform
Correo electrónico {EMAIL}
Tipo de llamada o de sesión {SESSION_TYPE}
Número de teléfono del usuario final {PHONE_NUMBER} Se aplicó el formato según la opción de configuración
ID de llamada {Call_ID} Es el ID de la llamada de CCAI Platform.
ID del chat {Chat_ID} Es el ID de chat de CCAI Platform.
Idioma {LANG}
UID personalizado {CUSTOM_USER_ID} En dispositivos móviles, se encuentra en el lado izquierdo del correo electrónico. Por ejemplo, test.user3 de test.user3@test.co
ID de cuenta {ACCOUNT_ID} Se encuentra llamando al extremo Find/Create contact.
ID de registro {RECORD_ID} Se encontró llamando al extremo de búsqueda o creación de registros.
ID de sesión {SESSION_ID} ID de sesión de CCAI Platform
Ruta de acceso al menú {MENU_PATH}
Número de teléfono saliente {OUTBOUND_PHONE_NUMBER} Se aplica el formato según la opción de configuración.
Nombre de la cola {QUEUE_NAME}
ID de cola {QUEUE_ID} Es el ID de la cola interna.
Nombre del SDK {SDK_NAME} Nombre del usuario final, como se indica en el SDK web o el SDK para dispositivos móviles.
Correo electrónico del SDK {SDK_EMAIL} Es la dirección de correo electrónico del usuario final, como se indica en el SDK web o el SDK para dispositivos móviles.
Teléfono del SDK {SDK_PHONE} Es el número de teléfono del usuario final, como se indica en el SDK web o el SDK para dispositivos móviles.
Identificador del SDK {SDK_IDENTIFIER} Identifica a un usuario final o una cuenta del SDK para la Web o para dispositivos móviles. No incluyas PII en esta propiedad. Cuando creas una cuenta, este identificador es obligatorio en la solicitud.
ID de sesión de SmartAction {SMART_ACTION_SESSION_ID}
SmartAction: verification (Disponible próximamente)
SmartAction: entrada de texto (Disponible próximamente)
Calificación {RATING} Solo está disponible si un usuario la dejó.
Mensaje de comentarios {FEEDBACK} Solo está disponible si un usuario la dejó.
Duración de la llamada {CALL_DURATION} En mm:ss
Tiempo de espera {HOLD_TIME} En mm:ss
Tiempo de espera {WAIT_TIME} En mm:ss
Duración del trabajo posterior a la llamada (Disponible próximamente)
Tipo de dispositivo {DEVICE_TYPE}
Desconectado por {DISCONNECTED_BY}
Canal {CHANNEL}
Asunto del registro {TICKET_SUBJECT} Se usa como título del registro
Descripción del registro {TICKET_DESCRIPTION}
HTML de la descripción del registro {TICKET_DESCRIPTION_HTML} Es igual a la descripción, pero con formato HTML.
Cuerpo del comentario {COMMENT_BODY} Solo está disponible en la situación de agregar un comentario (guardar calificación, finalizar llamada o chat, llamada o chat iniciado)
Datos de archivos {FILE_DATA} Solo está disponible en el extremo de carga de archivos, pero contiene la base64 o los datos para el formulario de varias partes.

Funciones de parámetros de URL de solicitud

Se proporcionan funciones para ayudar con las variables dinámicas de la plataforma de CCAI. Estas funciones solo están disponibles para usarse en la sección Parámetro de solicitud de la configuración del extremo.

El valor resultante creado a partir de una función será una cadena. Si la función no devuelve ningún valor, el parámetro se quita de la lista de parámetros de la solicitud antes de la ejecución.

Función Sintaxis de la función Descripción
Valor predeterminado =DEFAULT_VALUE(val1, val2) El valor usará val1, a menos que sea nulo o esté vacío, y volverá al valor predeterminado val2.
Concatenación Or =CONCAT_OR(val1, val2, val3) Concatenación de varios valores con or. Ejemplo: "val1 or val2 or val3"
Concatenación And =CONCAT_AND(val1, val2, val3) Concatenación de varios valores con and. Ejemplo: "val1 and val2 and val3"

Ejemplos

A continuación, se muestran algunos ejemplos de uso de la función de parámetro de URL de solicitud.

Predeterminado

En el siguiente ejemplo, se usa DEFAULT_VALUE en Create a Record Endpoint. La clave y el valor para la configuración del agente usan la función predeterminada para tener un resguardo en caso de que el correo electrónico del agente tenga un valor vacío. El correo electrónico del agente puede estar vacío en la creación del registro por algunos motivos: un cliente puede haber finalizado la llamada de IVR antes de que un agente asignado responda la llamada entrante o, en el caso de los chats, se creará un registro antes de que un agente responda. De esta manera, los parámetros obligatorios pueden establecerse de forma predeterminada en valores seguros hasta que se realicen actualizaciones posteriores o se establezcan en casos de llamadas abandonadas.

Editar campo

Concatenación

En el siguiente ejemplo, se usa CONCAT_OR en el extremo Find an Account by Query. Este ejemplo es específico de Zoho CRM, pero muestra cómo se puede usar CONCAT_OR. CONCAT_AND sigue las mismas reglas, pero conecta los valores con and en lugar de or. Consulta los siguientes casos para conocer los valores presentes en el extremo en el momento de la ejecución y el valor resultante que se pasa como parámetro de la solicitud.

Claves presentes Valor resultante
ACCOUNT_ID (Id:equals:<uuid>)
ACCOUNT_ID, EMAIL (Id:equals:<uuid>) o (Email:equals:kim@example)
PHONE_NUMBER, EMAIL (Phone:equals:+12223334444) o (Email:equals:kim@example)

Cuenta de API

Los extremos de la cuenta de la API admiten la integración con las cuentas en el CRM.

Las llamadas a extremos que devuelven un error 400 se reintentan. Las llamadas que devuelven otros errores no se reintentan. Los reintentos continúan durante una semana y disminuyen con una reducción exponencial. Para obtener información sobre los flujos de la API, consulta API genérica de CRM personalizada: Flujos.

Encuentra una cuenta por extremo de consulta (anteriormente, extremo de búsqueda de cuentas)

Este extremo se usa para encontrar una cuenta por número de teléfono, correo electrónico o ID de CRM interno. Este es el endpoint predeterminado que se usa para encontrar una cuenta.

Respuesta de ejemplo:

{
  "id": 123,
  "name": "Kim",
  "phone": "11234567890",
  "email": "Kim@agents.co"
}

Extremo para buscar una cuenta por ID

Este extremo se usa para encontrar una cuenta por ID. Por lo general, este ID formará parte de la URL. La validación de la URL también tendrá en cuenta si la URL no se forma con el ID, por lo que no se usará este extremo. Esto seguirá los estándares de REST. Si se devuelve un error 404 en una búsqueda fallida, la búsqueda por consulta será la siguiente.

Respuesta de ejemplo:

{
  "id": 123,
  "name": "Kim",
  "phone": "11234567890",
  "email": "Kim@agents.co"
}

Crea un extremo de cuenta

Este extremo se usa para crear una cuenta si no encontramos una. La mayoría de los CRM requieren que los registros se adjunten a las cuentas. Para crear un flujo unificado, aplicamos este requisito a todos los CRM.

Registro de API

Los extremos de registros de la API permiten la integración con registros o casos en tu CRM.

Cómo encontrar un registro por consulta (anteriormente, extremo para encontrar un registro)

Este extremo se usa para encontrar un registro según un criterio. Por lo general, se usa para encontrar registros asociados a una cuenta. Si la CCAI Platform está configurada para reutilizar registros existentes, se usará el registro encontrado. Este es el extremo predeterminado que se usa para encontrar un registro.

Respuesta de ejemplo:

{
  "id": 456,
  "subject": "Record title",
  "status": "open", // enumerated status open/closed, or 1,2,3
  "contactId": 123, // contact attached to ticket
  "phone": "11234567890", // contact phone
}

Crea un extremo de registro

Este extremo se usa para crear un registro. Se crea un registro nuevo si no se encuentra uno en la solicitud de Find a record o si la CCAI Platform está configurada para no reutilizar registros existentes.

Solicitud de ejemplo:

{
  "id": 123,
  "subject": "Record title", 
  "description": "A longer description of the record, can be formatted in html",
  "phone": "11234567890", // can be saved in multiple formats
  "contactId": 123,
  "sourceType": "PHONE", // PHONE/CHAT
  "menu": "queue1",
  "direction": "outgoing",
  "rating": 5, // 1-5 scale
  "feedback": "the agent was great!" // description of rating
}

Actualiza un extremo de registro

Este extremo se usa para actualizar un registro. Actualiza el título y la descripción del registro. Este extremo también funciona de forma opcional para actualizar el registro según los eventos de la Plataforma de CCAI, como guardar la calificación de CSAT, los eventos de finalización de llamadas o chats, las colas seleccionadas, la verificación de usuarios y otros.

Extremo para subir un archivo

Este extremo se usa para subir un archivo adjunto.

Elige el Tipo para tu extremo de carga.

  • Formulario codificado en Base64

  • Formulario de varias partes

Selecciona los archivos que quieres adjuntar

  • Grabaciones de llamadas

  • Transcripciones de chat

  • Mensajes de voz

  • Fotos

  • Videos

  • Archivo de metadatos de la sesión

Elige Tipo de adjunto en ID y URL del adjunto. Especifica el formato del JSON de respuesta.

  • ID

  • ID del archivo adjunto. Ingresa la ubicación de un parámetro en la respuesta JSON para el ID del adjunto. Estará disponible para la URL del compilador de archivos adjuntos como {ATTACHMENT_ID}.

  • Es la URL del Attachment Builder. Ingresa la URL para descargar el archivo adjunto. RECORD_ID y ATTACHMENT_ID son variables disponibles.

    Ejemplo: https://www.example.com/Accounts/{RECORD_ID}/Attachments/{ATTACHMENT_ID}

  • URL del archivo adjunto

    Ingresa la ubicación de un parámetro en la respuesta JSON para la URL de descarga del archivo.

Selecciona la casilla de verificación Agregar comentario al registro de la CRM si deseas que CCAI Platform deje un comentario en un registro cuando se suba un archivo. Se respetará el parámetro de configuración de formato de texto del extremo Comment para estos comentarios.

El siguiente ejemplo es un formulario de varias partes que usa POST/PUT/PATCH:

{
  "file": <file data>
  "id": 123, // optional, this can also just be part of the URL;
             // for example https://example-customer.com/upload/record/{RECORD_ID}
}

Respuesta de ejemplo:

Ejemplo A: Existe una URL de descarga

{
  "id": 123,
  "url": "https://some-hosted-url.com"
}

Ejemplo B

En este caso, no existe una URL de descarga, pero hay un extremo de descarga de archivos adjuntos que usa este ID. Por ejemplo, https://www.customer-api.com/record/{RECORD_ID}/Attachments/{ATTACHMENT_ID}.

{
  "id": 123
}
Extremo de comentarios

Este extremo se usa para agregar un comentario a un registro. Si el extremo está configurado, CCAI Platform agregará comentarios a los registros con los siguientes eventos:

  • Inicio de la llamada o el chat

  • Finalización de la llamada o el chat

  • Calificación y comentario de CSAT

  • paquete de datos personalizado

  • transferir comentarios

  • código de disposición y notas

  • preguntas y respuestas de la encuesta

Elige Formato de texto para los comentarios. Si la casilla de verificación Convertir texto en HTML está marcada, el texto estará en formato HTML o, de lo contrario, en texto sin formato.

Ejemplo de solicitud, POST/PUT/PATCH:

{
  "comment": "Some text",
 // string can also be formatted on ujet side as html
  "id": 123,
 // optional, this can also just be part of the URL;
 // for example https://example-customer.com/comment/record/{RECORD_ID}
}

API genérica de CRM personalizada: Flujos

En esta sección, se proporcionan diagramas de flujo para los flujos de la API genérica de CRM personalizada.

Diagramas de flujo básicos

Diagrama de flujo básico

Flujo para buscar o crear una cuenta

Flujo para buscar o crear una cuenta

Flujo para buscar o crear un registro

Flujo para encontrar o crear una grabación

Flujo de acciones posteriores a la llamada o el chat

Flujo de acciones posteriores a la llamada o el chat

Flujo de actualización de registros

Flujo de actualización de registros

Flujo de comentarios

Flujo de comentarios

Flujo de carga de archivos

Flujo de carga de archivos

Adaptadores de agentes

Un CRM personalizado ofrece un método genérico para integrar adaptadores (widgets de IU) en sistemas de CRM. El sistema de CRM debe poder controlar la forma en que se activan y se activan los adaptadores en él.

Por lo general, se necesita un software o una aplicación de CRM para integrar adaptadores de interfaz de usuario. Ya proporcionamos esta capacidad para varios softwares de CRM, como Salesforce, Kustomer, Zendesk y otros.

iframe

Los adaptadores de agentes se pueden integrar sin problemas en un CRM o en cualquier otra herramienta a través de una etiqueta iFrame. Para obtener más información sobre la etiqueta iframe de HTML, consulta HTML iframe Tag.

Sin embargo, el CRM debe controlar cómo se presentan los adaptadores al usuario. Por ejemplo, puede incluir botones de la IU para mostrar y ocultar los adaptadores. Además, los adaptadores se pueden diseñar para que se puedan arrastrar, lo que permite que el agente los vuelva a colocar en la pantalla según su conveniencia. En los siguientes ejemplos, se muestra el formato de URL.

Adaptador de llamadas: https://tenant.loc.ccaiplatform.com/agent/?type=call&from=custom

Adaptador de chat: https://tenant.loc.ccaiplatform.com/agent/?type=chat&from=custom

Plantilla de iframe

Adaptador de llamadas: html <iframe src="https://tenant.loc.ccaiplatform.com/agent/?type=call&from=custom" allow="microphone; camera; geolocation" width="290" height="600"></iframe>

Adaptador de chat: html <iframe src="https://tenant.loc.ccaiplatform.com/agent/?type=chat&from=custom" allow="microphone; camera; geolocation" width="450" height="590"></iframe>

Ten en cuenta lo siguiente cuando incorpores los adaptadores:

  • El atributo allow es obligatorio. El adaptador de llamadas usa WebRTC y necesita microphone; camera y geolocation son necesarios para las funciones de compartir pantalla y reconocimiento de la ubicación. Si los permisos no se delegan al iframe, el navegador los bloquea de forma silenciosa y el agente no puede recibir llamadas.

  • Incorpora un adaptador por iframe. Cada adaptador mantiene su propia conexión en tiempo real, por lo que los adaptadores de llamada y chat son dos iframes independientes y publican eventos de forma independiente.

  • El adaptador detecta que está incorporado porque su ventana principal se encuentra en un origen diferente. Publica la página de host desde tu propio dominio en lugar de hacerlo desde el dominio del arrendatario de la plataforma de CCAI.

Parámetros de URL

Los parámetros de URL se pueden usar para proporcionar información adicional al software, como el tipo de interacción (llamada o chat), la fuente de la interacción (personalizada) y otros detalles pertinentes.

Si el parámetro de configuración de CRM del usuario no está disponible en las listas, el parámetro Desde siempre debe establecerse en Personalizado.

Tipo

  • Llamar
  • Chat

De

  • Personalizado (debe coincidir con el parámetro de configuración del CRM del arrendatario) Siempre debe ser personalizado para cualquier CRM que no esté en las listas. Si no hay una configuración de CRM, puedes omitir este parámetro.

Eventos en adaptadores de agentes

Los adaptadores de agentes publican eventos que el sistema de CRM puede conectar, que luego procesa las actualizaciones en el CRM. Para ello, el CRM debe escuchar los mensajes de la ventana superior y leer los datos de los mensajes. Según los datos, puede activar acciones como abrir una pestaña de ticket para un ID de sesión específico.

Tanto el adaptador de llamadas como el adaptador de chat tienen eventos específicos que se pueden utilizar para mejorar las capacidades del CRM.

Adaptador de llamadas

  • Nueva llamada
  • Se unió el consumidor
  • Se inició la ocultación de la llamada
  • Finalizó la ocultación de la llamada
  • Finalizar llamada

Adaptador de chat

  • Nuevo chat
  • Chat activo
  • Mensaje entrante de chat
  • Mensaje saliente de chat
  • Se envió el formulario
  • Se completó el formulario
  • Finalizar chat
  • Chat descartado

Ambos adaptadores

  • Acceso del agente
  • Se inició la sesión de Compartir pantalla
  • Se cambió el control remoto de la sesión de compartir pantalla
  • Cambió el dispositivo completo de la sesión de pantalla compartida
  • Finalizó la sesión de Compartir pantalla
  • Transferir
  • Se agregó el grupo
  • El agente se conecta a la sesión
  • Cierre de sesión del agente
  • Se agregó Agent Assist
  • Se unió el asistente de tareas virtual
  • Se cerró el asistente de tareas virtual
  • Variables de sesión de la asistencia para tareas virtual recibidas
  • Apertura de registro de CRM
  • Abrir la página de terceros

Formato de mensaje

Todos los eventos se envían con la API de window.postMessage() del iframe del adaptador a su ventana principal directa (window.parent). La ventana principal lo recibe como un MessageEvent.

El mensaje tiene las siguientes características:

  • event.data es una cadena JSON, no un objeto. Siempre llama a JSON.parse(event.data) antes de leerlo. Dado que otros scripts de la página también pueden usar postMessage() con cargas útiles que no son JSON, incluye el análisis en un try/catch.

  • El objeto analizado tiene exactamente dos claves de nivel superior:

    {
      "type": "<event type>",
      "data": { ... }
    }
    

    type es una de las cadenas que se indican en Tipos de eventos. data contiene los campos de evento que se describen en Datos para eventos. Todos los campos específicos del evento se encuentran dentro de data, nunca en el nivel superior.

  • Se omiten los campos vacíos. Antes de publicar, el adaptador quita cualquier campo en data cuyo valor sea null, undefined o una cadena vacía. Trata cada campo como potencialmente ausente y no confíes en que una clave esté presente con un valor null.

  • El adaptador publica con un origen de destino de *, por lo que el mensaje se entrega a cualquier página que incorpore el iframe. El adaptador no restringe quién puede recibir los eventos. Tu objeto de escucha debe comparar event.origin con el host de tu inquilino (por ejemplo, https://tenant.loc.ccaiplatform.com) y, luego, ignorar los mensajes de cualquier otro origen para que un iframe diferente en la misma página no pueda falsificar eventos del adaptador.

  • Los valores de type distinguen mayúsculas de minúsculas y no se escriben de manera uniforme. La mayoría son Title_Case (New_Call, End_Chat); algunos son en minúsculas (call_redaction_started, call_redaction_ended, agent_assist_added) o en formato camelCase (openThirdPartyPage). Compara con las cadenas exactas de este documento.

  • Los eventos solo se publican mientras el adaptador está incorporado (su ventana superior es una ventana diferente). Si el adaptador se abre como una página de nivel superior, no se publica nada.

En el siguiente ejemplo, se muestra un objeto de escucha mínimo que aplica estas reglas:

// Replace with the origin of your tenant.
const ADAPTER_ORIGIN = 'https://tenant.loc.ccaiplatform.com'

window.addEventListener('message', (event) => {
  if (event.origin !== ADAPTER_ORIGIN) {
    return
  }

  let message
  try {
    message = JSON.parse(event.data)
  } catch (e) {
    // Not an agent adapter event; another script on the page posted it.
    return
  }

  const { type, data = {} } = message
  switch (type) {
    case 'New_Call':
      // data.call_id, data.agent_id, data.queue_id, ...
      break
    case 'New_Chat':
      // data.chat_id, data.agent_id, data.queue_id, ...
      break
    case 'CRM_Record_Pop':
      // data.recordUrl
      break
    default:
      // Ignore event types you don't handle; new types may be added over time.
      break
  }
}, false)

Mensajes al adaptador del agente

La comunicación es principalmente unidireccional (del adaptador al host), pero la página del host puede enviar un pequeño conjunto de comandos al adaptador de llamadas con postMessage(). Estos mensajes son objetos simples (no cadenas JSON) con el siguiente esquema:

iframe.contentWindow.postMessage({
  channel: '<channel name>',
  eventType: '<event type>'
}, ADAPTER_ORIGIN)

Los siguientes comandos son compatibles con el canal api:redaction. Se usan para pausar y reanudar la grabación de la redacción de llamadas desde la página del host.

eventType Descripción
start_call_redaction Pausa la grabación de la llamada activa para comenzar la ocultación.
stop_call_redaction Reanuda la grabación de la llamada activa para detener la ocultación.

Ten en cuenta lo siguiente:

  • Los comandos solo se ejecutan cuando la ocultación de llamadas está habilitada para el arrendatario y hay una llamada activa. De lo contrario, el adaptador registra que se ignoró el mensaje y no hace nada.

  • Cuando el adaptador actúa según el comando, publica el evento call_redaction_started o call_redaction_ended correspondiente de vuelta en el host, de modo que puedas confirmar que el estado de la grabación realmente cambió.

  • Pasa siempre el origen de tu inquilino como segundo argumento a postMessage() en lugar de *, de modo que el comando no se pueda entregar a una página diferente si se navega por el iframe.

  • El adaptador de CRM personalizado aún acepta el canal crm:authority anterior con los tipos de eventos redact_call:start y redact_call:stop para mantener la retrocompatibilidad, pero las integraciones nuevas deben usar api:redaction.

Para obtener más información, consulta Ocultamiento de llamadas.

Datos para eventos

  • call_id: Es un identificador de una llamada entrante de voz con IVR (respuesta de voz interactiva).

  • chat_id: Es un identificador de una llamada entrante de mensajería (chat web o móvil).

  • cobrowse_session_id: Es un identificador de una sesión de compartir pantalla. Se puede iniciar una sesión de Compartir pantalla en una llamada o sesión de chat.

  • session_type: Es el tipo de sesión, como voz, chat o mensajería.

  • va_data_parameters: Son todas las variables configuradas en la cola para enviarlas al agente virtual. Esto solo es obligatorio para los eventos que involucran al agente virtual. Es opcional.

  • session_variable: Son todas las variables del agente virtual que se envían a la plataforma de CCAI en la carga útil. Es opcional.

  • custom_sip_headers: Esto permite que los encabezados SIP personalizados de las llamadas SIP entrantes aparezcan en el registro de eventos POST. Solo es obligatorio si se usan encabezados SIP personalizados. Es opcional.

  • custom_data_secured: Contiene datos personalizados firmados de tu servidor. Es opcional.

  • custom_data_not_secured: Contiene datos personalizados sin firma de tu página web. Para obtener más información, consulta Datos personalizados sin firma del chat. Es opcional.

IDs de agentes

  • agent_id: Es un identificador para un agente.
  • from_agent_id: Se usa cuando se enrutan llamadas o chats de un agente a otro para indicar el agente de origen.
  • to_agent_id: Se usa cuando se enrutan llamadas o chats de un agente a otro para indicar el agente de destino.
  • agent_custom_id: Es un ID de agente del perfil de usuario, si se ingresó en el perfil. Es opcional.
  • from_agent_custom_id: Se usa cuando se enrutan llamadas o chats de un agente a otro para indicar el agente de origen.
  • to_agent_custom_id: Se usa cuando se enrutan llamadas o chats de un agente a otro para indicar el agente de destino.
  • agent_email: Es la dirección de correo electrónico del agente.
  • from_agent_email: Se usa cuando se enrutan llamadas o chats de un agente a otro para indicar el agente de origen.
  • to_agent_email: Se usa cuando se enrutan llamadas o chats de un agente a otro para indicar el agente de destino.

IDs de agentes virtuales

  • virtual_agent_id: Es el número de ID asignado a un agente virtual específico.

IDs de colas

  • queue_id: Es el identificador de una cola de CCAI Platform y solo existe cuando la llamada se origina en una cola.
  • from_queue_id: Se usa cuando se enrutan llamadas o chats de una fila a otra para indicar la fila de origen.
  • to_queue_id: Se usa cuando se enrutan llamadas o chats de una cola a otra para indicar la cola de destino.
  • queue_path: Es la ruta de acceso de una cola de CCAI Platform y solo existe cuando la llamada se origina en una cola.
  • from_queue_path: Se usa cuando se enrutan llamadas o chats de una fila a otra para indicar la fila de origen.
  • to_queue_path: Se usa cuando se enrutan llamadas o chats de una cola a otra para indicar la cola de destino.

Campaign ID

  • campaign_id: Es el ID de la campaña de CCAI Platform. Solo se incluyen si el tipo de llamada es una llamada de campaña.
  • campaign_name: Es el nombre de una campaña de CCAI Platform. Solo se incluyen si el tipo de llamada es una llamada de campaña.

Mensaje

  • message: Evento que indica que se recibió un mensaje nuevo del consumidor, además del contenido del mensaje.

Tipos de sesiones

  • session_type: un tipo de sesión de CCAI Platform.
  • cobrowse_session_remote_control: Indica el estado de una sesión de Compartir pantalla de control remoto solicitada. Valores: off, requested, rejected, on.
  • cobrowse_session_full_device: Indica el estado de una sesión de compartir pantalla completa del dispositivo. Valores: off, requested, rejected, on.

Participantes

  • type: Es el tipo de participante, end_user o agent (del campo participants.type de la respuesta de /api/v1/calls o /api/v1/chats).

  • cobrowse_session_requested_by: Indica quién inició una sesión de Compartir pantalla. Los valores posibles son agent o end_user.

  • cobrowse_session_ended_by: Indica quién finalizó una sesión de Compartir pantalla. Los valores posibles son agent, end_user o api.

  • end_user_id: Es participants.end_user_id de la respuesta /api/v1/calls o /api/v1/chats. Este campo solo está presente si el tipo es end_user.

Tipos de interacción o sesión

Tipos de llamadas

  • Entrada de voz: Llamadas de RTC estándar.
  • Llamadas de voz entrantes (IVR con dispositivos móviles): Son las llamadas de resguardo a la PSTN que se realizan desde el SDK para dispositivos móviles.
  • Llamadas de voz entrantes (dispositivos móviles): Las realizan los consumidores con un SDK para dispositivos móviles instalado.
  • Devolución de llamada de voz (Web): Se inicia desde el SDK web.
  • Voz entrante (API): Se inicia con la API.
  • Voz programada (dispositivos móviles): Se programa con un SDK para dispositivos móviles instalado.
  • Programada por voz (web): Se programó con un SDK web instalado.
  • Llamada saliente de voz: La inicia un agente marcando un número.
  • Voz saliente (API): Se inicia con la API.
  • Campaña de voz: Se inicia con un marcador saliente (campaña).

Tipos de chat

  • Mensajería (WhatsApp): Se inicia con WhatsApp.
  • Mensajería entrante (SMS)
  • Mensajería saliente (SMS)
  • Mensajería saliente (SMS con la API)
  • Mensajería (Web): Se inicia con un SDK web instalado.
  • Mensajería (dispositivos móviles): Se inicia con un SDK para dispositivos móviles instalado.

Tipo de llamada o chat

  • Sesión de Compartir pantalla: La inicia un agente o un usuario final durante una llamada o un chat.

Tipos de eventos

Estos son los tipos de eventos que publica el adaptador del agente. La columna type contiene la cadena exacta que distingue mayúsculas de minúsculas y que aparece en el campo type del mensaje.

Evento type Adaptador
Acceso de agentes Agent_Login Ambos
Llamada nueva New_Call Llamar
Se unió el consumidor Consumer_Joined Llamar
Finalizar llamada End_Call Llamar
Se inició la ocultación de la llamada call_redaction_started Llamar
Finalizó la ocultación de la llamada call_redaction_ended Llamar
Nuevo chat New_Chat Chat
Finalizar chat End_Chat Chat
Chat activo Active_Chat Chat
Mensaje entrante de chat Chat_Inbound_Message Chat
Mensaje saliente de chat Chat_Outbound_Message Chat
Se envió el formulario Form_Sent Chat
Se completó el formulario Form_Completed Chat
Chat descartado Dismissed_Chat Chat
Se inició la sesión de Compartir pantalla Cobrowse_Session_Started Ambos
Se cambió el control remoto de la sesión de Compartir pantalla Cobrowse_Session_Remote_Control_Changed Ambos
Se cambió el dispositivo completo de la sesión de Compartir pantalla Cobrowse_Session_Full_Device_Changed Ambos
Finalizó la sesión de Compartir pantalla Cobrowse_Session_Ended Ambos
Transferir Transfer_Call, Transfer_Chat Ambos
Se agregó la fiesta Party_Added Ambos
El agente se conecta a la sesión Agent_Joined_Call, Agent_Joined_Chat Ambos
Cierre de sesión del agente Agent_Logout Ambos
Se agregó Agent Assist agent_assist_added Ambos
Se unió el asistente de asistencia para tareas virtual Task_VA_Joined Ambos
El asistente de tareas virtual se fue Task_VA_Left Ambos
Variables de sesión de la asistencia para tareas virtual recibidas Task_VA_Variables_Received Ambos
Ventana emergente de registro de CRM CRM_Record_Pop Ambos
Abrir página de terceros openThirdPartyPage Llamar

Tu objeto de escucha debería ignorar los valores de type que no reconozca. Se pueden agregar tipos de eventos nuevos con el tiempo, y el adaptador también publica mensajes destinados a otras plataformas de CCAI Platform (por ejemplo, cuando se aloja dentro del escritorio del agente de CCAI Platform) que no forman parte de este contrato.

Acceso del agente

Un evento de acceso del agente se produce cuando el agente accede al adaptador.

Este es un ejemplo de un evento Agent_Login:

{
  "type": "Agent_Login",
    "data": {
    "agent_id": 1,
    "agent_custom_id": "007",
    "agent_email": "Kim@example.com",
  }
}

A continuación, se incluyen las descripciones de los campos de datos del evento:

  • agent_id: Es el identificador del agente.

  • Opcional: agent_custom_id: Es el identificador personalizado del agente, si se ingresó en su perfil.

  • agent_email: Es la dirección de correo electrónico asociada a la cuenta del agente.

Nueva llamada

Se produce un evento de llamada nuevo cuando un agente responde una llamada. Este evento contiene información como cuándo comenzó la llamada, qué agente la manejó y dónde se originó.

A continuación, se muestra un ejemplo de un evento New_Call:

{
  "type": "New_Call",
  "data": {
    "agent_id": 1,
    "agent_custom_id": "007",
    "agent_email": "Kim@example.com",
    "queue_id": 8469,
    "queue_path": "Developers / Kim",
    "campaign_id": 1432,
    "campaign_name": "Survey Movie",
    "call_id": 103646,
    "session_type": "Voice Campaign (UJET)"
  }
}

A continuación, se incluyen descripciones de los campos de datos de eventos:

  • agent_id: Es el identificador del agente.

  • agent_custom_id: Es el identificador personalizado del agente, si se ingresó en su perfil. Es opcional.

  • agent_email: Es la dirección de correo electrónico asociada a la cuenta del agente.

  • queue_id: Es el identificador de la fila de la que se originó la llamada. Este campo se incluye cuando la llamada se originó en una cola. Es opcional.

  • queue_path: Es la ruta de acceso de la fila de la que se originó la llamada. Este campo se incluye cuando la llamada se originó en una cola. Es opcional.

  • campaign_id: Es el identificador de la campaña. Este campo se incluye para una llamada de campaña. Es opcional.

  • campaign_name: Es el nombre de la campaña. Este campo se incluye en una llamada de campaña. Es opcional.

  • call_id: Es el identificador de la llamada.

  • session_type: Es el tipo de sesión.

  • virtual_agent_id: Es el identificador del agente virtual. Este campo se incluye para los eventos que involucran al agente virtual. Es opcional.

  • va_data_parameters: Son las variables configuradas en la cola para enviar al agente virtual. Este campo se incluye para los eventos que involucran al agente virtual. Es opcional.

  • session_variable: Son todas las variables del agente virtual que se envían a Contact Center AI Platform. Es opcional.

  • custom_sip_headers: Habilita los encabezados personalizados del protocolo de inicio de sesión (SIP) de las llamadas SIP entrantes para que aparezcan en el registro de eventos POST. Este campo se incluye si se usan encabezados SIP personalizados. Es opcional.

  • custom_data_secured: Contiene datos personalizados firmados de tu servidor. Es opcional.

  • custom_data_not_secured: Contiene datos personalizados sin firma de tu página web. Para obtener más información, consulta Datos personalizados sin firma del chat. Es opcional.

Se unió el consumidor

Un evento de unión de consumidor se produce en una llamada de campaña (marcador saliente) cuando se resuelve el registro del consumidor y este lleva una clave de administrador de campañas de lista (LCM). Permite que la página de host busque el contacto marcado en su propio sistema antes de que llegue el resto de los datos de la llamada. Este evento solo se publica para las llamadas de campañas cuyos contactos tienen una clave de LCM.

A continuación, se muestra un ejemplo de un evento Consumer_Joined:

{
  "type": "Consumer_Joined",
  "data": {
    "lcmKey": "acqueon:12345",
    "custom_sip_headers": {
      "X-Account-Id": "A-100"
    },
    "va_data_parameters": {
      "param1": "one"
    },
    "session_variable": {
      "key_one": "value"
    }
  }
}

A continuación, se incluyen descripciones de los campos de datos de eventos:

  • lcmKey: Es la clave del administrador de campañas de la lista del contacto al que se llamó.

  • custom_sip_headers: Son los encabezados SIP personalizados de la llamada. Este campo se incluye si se usan encabezados SIP personalizados. Es opcional.

  • va_data_parameters: Son las variables configuradas en la cola para enviar al agente virtual. Es opcional.

  • session_variable: Son las variables del agente virtual que se envían a Contact Center AI Platform. Es opcional.

Se inició la ocultación de la llamada

Se produce un evento de inicio de ocultamiento de llamada cuando se inicia el ocultamiento de una llamada y no se está grabando. Los datos del evento constan del ID del agente que atendió la llamada y el ID de la llamada.

Ten en cuenta que el type de este evento está en minúsculas: call_redaction_started.

  • agent_id: Es el ID del agente que atendió la llamada.
  • call_id: Es el ID de la llamada.

Este es un ejemplo de un evento de inicio de ocultamiento de llamadas:

{
  "type": "call_redaction_started",
  "data": {
    "agent_id": 2896,
    "call_id": 97939
  }
}

Se detuvo la ocultación de la llamada

El evento de detención de la ocultación de llamadas se produce cuando finaliza la ocultación de una llamada y se reanuda la grabación. Este evento consta del ID del agente que atendió la llamada y el call ID.

Ten en cuenta que el type de este evento está en minúsculas: call_redaction_ended.

  • agent_id: Es el ID del agente que manejó la llamada.
  • call_id: Es el ID de la llamada.

A continuación, se muestra un ejemplo de datos de eventos de detención de la ocultación de llamadas:

{
  "type": "call_redaction_ended",
  "data": {
    "agent_id": 2896,
    "call_id": 97939
  }
}

Finalizar llamada

Un evento de finalización de llamada se produce cuando se finaliza una llamada. Este evento contiene información, como cuándo finalizó la llamada, qué agente la atendió y dónde se originó.

Este es un ejemplo de un evento End_Call:

{
  "type": "End_Call",
  "data": {
    "agent_id": 1,
    "agent_custom_id": "007",
    "agent_email": "Kim@example.com",
    "queue_id": 8469,
    "queue_path": "Developers / Kim",
    "campaign_id": 1432,
    "campaign_name": "Survey Movie",
    "call_id": 103646,
    "session_type": "Voice Campaign (UJET)"
  }
}

A continuación, se incluyen las descripciones de los campos de datos del evento:

  • agent_id: Es el identificador del agente.

  • agent_custom_id: Es el identificador personalizado del agente, si se ingresó en su perfil. Es opcional.

  • agent_email: Es la dirección de correo electrónico asociada a la cuenta del agente.

  • queue_id: Es el identificador de la fila de la que se originó la llamada. Este campo se incluye cuando la llamada se originó en una cola. Es opcional.

  • queue_path: Es la ruta de acceso de la fila de la que se originó la llamada. Este campo se incluye cuando la llamada se originó en una cola. Es opcional.

  • campaign_id: Es el identificador de la campaña. Este campo se incluye para una llamada de campaña. Es opcional.

  • campaign_name: Es el nombre de la campaña. Este campo se incluye en una llamada de campaña. Es opcional.

  • call_id: Es el identificador de la llamada.

  • session_type: Es el tipo de sesión.

  • virtual_agent_id: Es el identificador del agente virtual. Este campo se incluye para los eventos que involucran al agente virtual. Es opcional.

  • va_data_parameters: Son las variables configuradas en la cola para enviar al agente virtual. Este campo se incluye para los eventos que involucran al agente virtual. Es opcional.

  • session_variable: Son todas las variables del agente virtual que se envían a Contact Center AI Platform. Es opcional.

  • custom_sip_headers: Habilita los encabezados personalizados del protocolo de inicio de sesión (SIP) de las llamadas SIP entrantes para que aparezcan en el registro de eventos POST. Este campo se incluye si se usan encabezados SIP personalizados. Es opcional.

  • custom_data_secured: Contiene datos personalizados firmados de tu servidor. Es opcional.

  • custom_data_not_secured: Contiene datos personalizados sin firma de tu página web. Para obtener más información, consulta Datos personalizados sin firma del chat (opcional). Es opcional.

Nuevo chat

Se produce un evento de chat nuevo cuando un agente toma una sesión de chat. Este evento indica cuándo comenzó el chat y contiene información, como qué agente controló el chat en el que se originó.

A continuación, se incluye un ejemplo de un evento New_chat:

{
  "type": "New_Chat",
  "data": {
    "chat_id": 73522,
    "session_type": "messaging inbound (web chat)",
    "agent_id": 1,
    "agent_email": "ariel@example.com",
    "queue_id": 7678,
    "queue_path": "HB TEAM / Ariel"
  }
}

A continuación, se incluyen las descripciones de los campos de datos de eventos:

  • chat_id: Es el identificador del chat.

  • session_type: Es el tipo de sesión.

  • agent_id: Es el identificador del agente.

  • agent_custom_id: Es el identificador personalizado del agente, si se ingresó en su perfil. Es opcional.

  • agent_email: Es la dirección de correo electrónico asociada a la cuenta del agente.

  • queue_id: Es el identificador de la cola desde la que se originó la llamada. Este campo se incluye cuando la llamada se originó en una cola. Es opcional.

  • queue_path: Es la ruta de acceso de la cola desde la que se originó la llamada. Este campo se incluye cuando la llamada se originó en una cola. Es opcional.

  • custom_data_secured: Contiene datos personalizados firmados de tu servidor. Es opcional.

  • custom_data_not_secured: Contiene datos personalizados sin firma de tu página web. Para obtener más información, consulta Chat unsigned custom data (opcional). Es opcional.

Finalizar chat

Se produce un evento de finalización del chat cuando finaliza una sesión de chat. Este evento indica cuándo finalizó el chat y contiene información, como qué agente controló el chat en el que se originó.

Este es un ejemplo de un evento End_Chat:

{
  "type": "End_Chat",
  "data": {
    "chat_id": 73522,
    "session_type": "Messaging Inbound (Web Chat)",
    "agent_id": 1,
    "agent_email": "ariel@example.com",
    "queue_id": null,
    "queue_path": null,
    "agent_custom_id": null
  }
}

A continuación, se incluyen las descripciones de los campos de datos del evento:

  • chat_id: Es el identificador del chat.

  • session_type: Es el tipo de sesión.

  • agent_id: Es el identificador del agente.

  • agent_custom_id: Es el identificador personalizado del agente, si se ingresó en su perfil. Es opcional.

  • agent_email: Es la dirección de correo electrónico asociada a la cuenta del agente.

  • queue_id: Es el identificador de la cola desde la que se originó la llamada. Este campo se incluye cuando la llamada se originó en una cola. Es opcional.

  • queue_path: Es la ruta de acceso de la cola desde la que se originó la llamada. Este campo se incluye cuando la llamada se originó en una cola. Es opcional.

  • custom_data_secured: Contiene datos personalizados firmados de tu servidor. Es opcional.

  • custom_data_not_secured: Contiene datos personalizados sin firma de tu página web. Para obtener más información, consulta Chat unsigned custom data (opcional). Es opcional.

Chat activo

Se produce un evento de chat activo cuando el agente cambia a una pestaña de chat en el adaptador de chat.

A continuación, se incluye un ejemplo de un evento Active_Chat:

{
  "type": "Active_Chat",
  "data": {
    "chat_id": 73521,
    "session_type": "messaging inbound (web chat)",
    "agent_id": 1,
    "agent_email": "ariel@example.com",
    "queue_id": 7678,
    "queue_path": "HB TEAM / Ariel"
  }
}

A continuación, se incluyen las descripciones de los campos de datos de eventos:

  • chat_id: Es el identificador del chat.

  • session_type: Es el tipo de sesión.

  • agent_id: Es el identificador del agente.

  • agent_custom_id: Es el identificador personalizado del agente, si se ingresó en su perfil. Es opcional.

  • agent_email: Es la dirección de correo electrónico asociada a la cuenta del agente.

  • queue_id: Es el identificador de la cola desde la que se originó la llamada. Este campo se incluye cuando la llamada se originó en una cola. Es opcional.

  • queue_path: Es la ruta de acceso de la cola desde la que se originó la llamada. Este campo se incluye cuando la llamada se originó en una cola. Es opcional.

  • custom_data_secured: Contiene datos personalizados firmados de tu servidor. Es opcional.

  • custom_data_not_secured: Contiene datos personalizados sin firma de tu página web. Para obtener más información, consulta Datos personalizados sin firma del chat (opcional). Es opcional.

Mensaje entrante de chat

Un evento de mensaje entrante de chat indica que se recibió un mensaje nuevo del cliente. Incluye el contenido del mensaje.

Los datos de los siguientes campos se informan para un evento de mensaje entrante de chat:

  • chat_id: Identifica la sesión de chat.

  • session_type: Indica el tipo de sesión que se está creando, como mensajería entrante a través del chat web.

  • agent_id: Identifica al agente que maneja la sesión de chat.

  • agent_custom_id: Este campo solo existe si el perfil del agente incluye un ID personalizado. Es opcional.

  • agent_email: Es la dirección de correo electrónico del agente que administra la sesión de chat. Este campo solo se incluye cuando el chat se origina en una cola. Es opcional.

  • queue_id: Es el ID de la fila de la que se originó la sesión de chat. Este campo se incluye solo cuando el chat se origina en una cola.

  • queue_path: Es la ruta de acceso de la fila de la que se originó la sesión de chat. Este campo solo se incluye cuando el chat se origina en una cola.

  • message: Es un evento que indica que se recibió un mensaje nuevo del consumidor, además del contenido del mensaje.

  • custom_data_secured: Permite la transmisión de datos personalizados del SDK protegidos. Es opcional.

  • custom_data_not_secured: Permite la transmisión de datos personalizados del SDK no protegidos. Es opcional.

Este es un ejemplo de un evento Chat_Inbound_Message:

{
  "type": "Chat_Inbound_Message",
  "data": {
    "chat_id": 73522,
    "session_type": "messaging inbound (web chat)",
    "agent_id": 1,
    "agent_email": "ariel@example.com",
    "queue_id": 7678,
    "queue_path": "HB TEAM / Ariel",
    "message" : "Can you help me with my order tracking number?"
  }
}

Mensaje saliente de chat

Se produce un evento de mensaje saliente de chat cuando se recibe un mensaje nuevo del cliente. Incluye el contenido del mensaje.

Los datos de los siguientes campos se informan para un evento de mensaje saliente de chat:

  • chat_id: Identifica la sesión de chat.

  • session_type: Indica el tipo de sesión que se está creando, como mensajería entrante a través del chat web.

  • agent_id: Identifica al agente que maneja la sesión de chat.

  • agent_custom_id: Este campo solo se incluye si el perfil del agente tiene un ID personalizado. Es opcional.

  • agent_email: Es la dirección de correo electrónico del agente que administra la sesión de chat. Este campo solo se incluye cuando el chat se origina en una cola. Es opcional.

  • queue_id: Es el ID de la fila de la que se originó la sesión de chat. Este campo solo se incluye cuando el chat se origina en una cola.

  • queue_path: Es la ruta de acceso de la cola desde la que se originó la sesión de chat. Este campo solo se incluye cuando el chat se origina en una cola.

  • El evento message indica que se recibió un mensaje nuevo del consumidor, además del contenido del mensaje.

  • custom_data_secured: Permite la transmisión de datos personalizados del SDK protegidos. Es opcional.

  • custom_data_not_secured: Permite la transmisión de datos personalizados del SDK no seguros. Es opcional.

Este es un ejemplo de un evento Chat_Outbound_Message:

{
  "type": "Chat_Outbound_Message",
  "data": {
    "chat_id": 73522,
    "session_type": "messaging inbound (web chat)",
    "agent_id": 1,
    "agent_email": "ariel@example.com",
    "queue_id": 7678,
    "queue_path": "HB TEAM / Ariel",
    "message" : "Please give me a moment to look up your account information"
  }
}

Se envió el formulario

Se produce un evento de formulario enviado cuando se envía un formulario al consumidor durante una sesión de chat. El adaptador de chat publica ambos eventos cuando el chat recibe el mensaje del sistema correspondiente.

Este es un ejemplo de un evento Form_Sent:

{
  "type": "Form_Sent",
  "data": {
    "chat_id": 73522,
    "session_type": "Messaging Inbound (Web Chat)",
    "agent_id": 1,
    "agent_custom_id": "007",
    "agent_email": "Kim@example.com",
    "end_user_id": 5512,
    "form_external_id": "payment-details",
    "form_name": "Payment details",
    "form_type": "secure",
    "queue_id": 7678,
    "queue_path": "HB TEAM / Kim",
    "queue_language_id": "en",
    "timestamp": 1727853575000
  }
}

A continuación, se incluyen las descripciones de los campos de datos de eventos:

  • chat_id: Es el identificador del chat.

  • session_type: Es el tipo de sesión.

  • agent_id: Es el identificador del agente.

  • agent_custom_id: Es el identificador personalizado del agente, si se ingresó en su perfil. Es opcional.

  • agent_email: Es la dirección de correo electrónico asociada a la cuenta del agente.

  • end_user_id: Es el identificador del consumidor en el chat. Es opcional.

  • form_external_id: Es el identificador externo del formulario que se envió. Es opcional.

  • form_name: Es el nombre del formulario que se envió. Es opcional.

  • form_type: Es el tipo de formulario que se envió. Es opcional.

  • queue_id: Es el identificador de la fila de la que se originó el chat. Este campo se incluye cuando el chat se originó en una cola. Es opcional.

  • queue_path: Es la ruta de acceso de la fila de la que se originó el chat. Este campo se incluye cuando el chat se originó en una cola. Es opcional.

  • queue_language_id: Es el idioma de la cola. Es opcional.

  • timestamp: Es la hora en que se publicó el evento, en milisegundos desde el tiempo Unix.

  • va_data_parameters: Son las variables configuradas en la cola para enviar al agente virtual. Es opcional.

  • session_variable: Todas las variables del agente virtual que se envían a Contact Center AI Platform. Es opcional.

  • custom_data_secured: Contiene datos personalizados firmados de tu servidor. Es opcional.

  • custom_data_not_secured: Contiene datos personalizados sin firma de tu página web. Para obtener más información, consulta Datos personalizados sin firma del chat. Es opcional.

Se completó el formulario

Se produce un evento de formulario completado cuando el consumidor envía un formulario que se envió durante una sesión de chat. Los datos del evento tienen los mismos campos que el evento Form sent.

A continuación, se muestra un ejemplo de un evento Form_Completed:

{
  "type": "Form_Completed",
  "data": {
    "chat_id": 73522,
    "session_type": "Messaging Inbound (Web Chat)",
    "agent_id": 1,
    "agent_custom_id": "007",
    "agent_email": "Kim@example.com",
    "end_user_id": 5512,
    "form_external_id": "payment-details",
    "form_name": "Payment details",
    "form_type": "secure",
    "queue_id": 7678,
    "queue_path": "HB TEAM / Kim",
    "queue_language_id": "en",
    "timestamp": 1727853601000
  }
}

Chat descartado

Un evento de chat descartado se produce cuando el agente cierra la pestaña de chat en el adaptador de chat.

Este es un ejemplo de un evento Dismissed_Chat:

{
  "type":"Dismissed_Chat",
  "data":{"chat_id":73522,
    "session_type":"Messaging Inbound (Web Chat)",
    "agent_id":1,
    "agent_email":"ariel@example.com"
  }
}

A continuación, se incluyen descripciones de los campos de datos de eventos:

  • chat_id: Es el identificador del chat.

  • session_type: Es el tipo de sesión.

  • agent_id: Es el identificador del agente.

  • agent_custom_id: Es el identificador personalizado del agente, si se ingresó en su perfil. Es opcional.

  • agent_email: Es la dirección de correo electrónico asociada a la cuenta del agente.

  • queue_id: Es el identificador de la fila de la que se originó la llamada. Este campo se incluye cuando la llamada se originó en una cola. Es opcional.

  • queue_path: Es la ruta de acceso de la cola desde la que se originó la llamada. Este campo se incluye cuando la llamada se originó en una cola. Es opcional.

  • custom_data_secured: Contiene datos personalizados firmados de tu servidor. Es opcional.

  • custom_data_not_secured: Contiene datos personalizados sin firma de tu página web. Para obtener más información, consulta Chat unsigned custom data (opcional). Es opcional.

Se inició la sesión de compartir pantalla

Se produce un evento Screen Share session started cuando un agente o un usuario final inician una sesión de uso compartido de pantalla. Las sesiones de Compartir pantalla se pueden iniciar durante una llamada o un chat. Para obtener más información, consulta Compartir pantalla.

Este es un ejemplo de un objeto JSON para un evento de inicio de sesión de uso compartido de pantalla:

{
  "type": "Cobrowse_Session_Started",
  "data": {
    "agent_id": 5,
    "chat_id": 791,
    "cobrowse_session_id": "Y1zYY6XIYX4oapqpEz3qHw",
    "cobrowse_session_requested_by": "agent",
    "cobrowse_session_remote_control": "off",
    "cobrowse_session_full_device": "off"
  }
}

A continuación, se incluyen descripciones de los campos de datos de eventos:

  • agent_id: Es el identificador del agente.

  • call_id: Es el identificador de una llamada entrante en el canal de IVR (respuesta de voz interactiva). Este campo se incluye si la sesión de Compartir pantalla se inició durante una llamada.

  • chat_id: Es el identificador de un chat entrante en el canal web o móvil. Este campo se incluye si la sesión de Compartir pantalla se inició durante un chat.

  • cobrowse_session_id: Es el identificador de una sesión de uso compartido de pantalla.

  • cobrowse_session_requested_by: Indica quién inició una sesión de Compartir pantalla. Los valores son agent y end-user.

  • cobrowse_session_remote_control: Indica el estado de una sesión de Compartir pantalla con control remoto. Los valores son on, rejected, requested y off.

  • cobrowse_session_full_device: Indica el estado de una sesión de compartir pantalla completa del dispositivo. Los valores son on, rejected, requested y off.

  • custom_data_secured: Contiene datos personalizados firmados de tu servidor. Es opcional.

  • custom_data_not_secured: Contiene datos personalizados sin firma de tu página web. Para obtener más información, consulta Datos personalizados sin firma del chat (opcional). Es opcional.

Se cambió el control remoto de la sesión de uso compartido de pantalla

Se produce un evento de cambio de control remoto de la sesión de compartir pantalla cuando cambia el estado de una sesión de compartir pantalla de control remoto. Este evento indica el estado de la sesión de control remoto de Compartir pantalla. Para obtener más información, consulta Uso compartido de pantalla.

Este es un ejemplo de un objeto JSON para un evento Cobrowse_Session_Remote_Control_Changed:

{
  "type": "Cobrowse_Session_Remote_Control_Changed",
  "data": {
    "agent_id": 5,
    "chat_id": 791,
    "cobrowse_session_id": "Y1zYY6XIYX4oapqpEz3qHw",
    "cobrowse_session_remote_control": "requested"
  }
}

A continuación, se incluyen las descripciones de los campos de datos del evento:

  • agent_id: Es el identificador del agente.

  • call_id: Es el identificador de una llamada entrante en el canal de IVR (respuesta de voz interactiva). Este campo se incluye si la sesión de Compartir pantalla se inició durante una llamada.

  • chat_id: Es el identificador de un chat entrante en el canal web o móvil. Este campo se incluye si la sesión de Compartir pantalla se inició durante un chat.

  • cobrowse_session_id: Es el identificador de una sesión de compartir pantalla.

  • cobrowse_session_remote_control: Indica el estado de una sesión de compartir pantalla con control remoto. Los valores son on, rejected, requested y off.

  • custom_data_secured: Contiene datos personalizados firmados de tu servidor. Es opcional.

  • custom_data_not_secured: Contiene datos personalizados sin firma de tu página web. Para obtener más información, consulta Chat unsigned custom data (opcional). Es opcional.

Cambió la sesión de compartir pantalla de todo el dispositivo

Se produce un evento de cambio de estado de la sesión de uso compartido de pantalla de todo el dispositivo cuando cambia el estado de una sesión de uso compartido de pantalla de todo el dispositivo. Este evento indica el estado de la sesión de uso compartido de pantalla completa del dispositivo. Para obtener más información, consulta Compartir pantalla.

A continuación, se incluye un ejemplo de un evento Cobrowse_Session_Full_Device_Changed:

{
  "type": "Cobrowse_Session_Full_Device_Changed",
  "data": {
    "agent_id": 5,
    "cobrowse_session_id": "9-Kshrag-gn6ZSuIxoMtWQ",
    "cobrowse_session_full_device": "rejected"
  }
}

A continuación, se incluyen descripciones de los campos de datos de eventos:

  • agent_id: Es el identificador del agente.

  • call_id: Es el identificador de una llamada entrante en el canal de IVR (respuesta de voz interactiva). Este campo se incluye si la sesión de Compartir pantalla se inició durante una llamada.

  • chat_id: Es el identificador de un chat entrante en el canal web o móvil. Este campo se incluye si la sesión de compartir pantalla se inició durante un chat.

  • Cobrowse_session_id: Es el identificador de una sesión de uso compartido de pantalla.

  • Cobrowse_session_full_device: Indica el estado de una sesión de compartir pantalla completa del dispositivo. Los valores son on, rejected, requested y off.

  • custom_data_secured: Contiene datos personalizados firmados de tu servidor. Es opcional.

  • custom_data_not_secured: Contiene datos personalizados sin firma de tu página web. Para obtener más información, consulta Chat unsigned custom data (opcional). Es opcional.

Finalizó la sesión de compartir pantalla

Un evento de inicio de sesión de compartir pantalla se produce cuando un agente, un usuario final o la API finalizan una sesión de compartir pantalla. Para obtener más información, consulta Cómo configurar la función de compartir pantalla.

A continuación, se incluye un ejemplo de un evento Cobrowse_Session_Ended:

{
  "type": "Cobrowse_Session_Ended",
  "data": {
    "agent_id": 5,
    "cobrowse_session_id": "9-Kshrag-gn6ZSuIxoMtWQ",
    "cobrowse_session_requested_by": "end_user",
    "cobrowse_session_ended_by": "agent",
    "cobrowse_session_remote_control": "on",
    "cobrowse_session_full_device": "rejected"
  }
}

A continuación, se incluyen las descripciones de los campos de datos del evento:

  • agent_id: Es el identificador del agente.

  • call_id: Es el identificador de una llamada entrante en el canal de IVR (respuesta de voz interactiva). Este campo se incluye si la sesión de Compartir pantalla se inició durante una llamada.

  • chat_id: Es el identificador de un chat entrante en el canal web o móvil. Este campo se incluye si la sesión de compartir pantalla se inició durante un chat.

  • cobrowse_session_id: Es el identificador de una sesión de compartir pantalla.

  • cobrowse_session_ended_by: Indica quién finalizó la sesión de Compartir pantalla. Los valores son agent, end-user y api.

  • cobrowse_session_remote_control: Indica el estado de una sesión de Compartir pantalla con control remoto. Los valores son on, rejected, requested y off.

  • cobrowse_session_full_device: Indica el estado de una sesión de compartir pantalla completa del dispositivo. Los valores son on, rejected, requested y off.

  • custom_data_secured: Contiene datos personalizados firmados de tu servidor. Es opcional.

  • custom_data_not_secured: Contiene datos personalizados sin firma de tu página web. Para obtener más información, consulta Chat unsigned custom data (opcional). Es opcional.

Transferir

Se produce un evento de transferencia cuando se transfiere una llamada o un chat. Puede referirse a una transferencia con introducción o directa.

Los siguientes campos de evento forman parte de un evento de transferencia.

  • chat_id o call_id: Identifica la sesión de llamada o chat.

  • session_type: Indica el tipo de sesión que se está creando, como una sesión de mensajería entrante a través del chat web.

  • campaign_id: Es el ID de la campaña. Este campo solo está presente si el tipo de llamada es una llamada de campaña. Es opcional.

  • campaign_name: Es el nombre de la campaña. Este campo solo está presente si el tipo de llamada es una llamada de campaña. Es opcional.

  • from_agent_id: Se usa cuando se enrutan llamadas o chats de un agente a otro para indicar el agente de origen.

  • from_agent_custom_id: Se usa cuando se enrutan llamadas o chats de un agente a otro para indicar el agente de origen. Es opcional.

  • from_agent_email: Se usa cuando se enrutan llamadas o chats de un agente a otro para indicar el agente de origen.

  • to_agent_id: Se usa cuando se enrutan llamadas o chats de un agente a otro para indicar el agente de destino.

  • to_agent_custom_id: Se usa cuando se enrutan llamadas o chats de un agente a otro para indicar el agente de destino. Es opcional.

  • to_agent_email: Se usa cuando se enrutan llamadas o chats de un agente a otro para indicar el agente de destino.

  • from_queue_id: Se usa cuando se enrutan llamadas o chats de una cola a otra para indicar la cola de origen.

  • from_queue_path: Se usa cuando se enrutan llamadas o chats de una fila a otra para indicar la fila de origen.

  • to_queue_id: Se usa cuando se enrutan llamadas o chats de una cola a otra para indicar la cola de destino.

  • to_queue_path: Se usa cuando se enrutan llamadas o chats de una fila a otra para indicar la fila de destino.

  • virtual_agent_id: Es el ID asignado a un agente virtual. Es opcional.

  • va_data_parameters: Son todas las variables configuradas en la cola para enviar al agente virtual. Esto solo es necesario para los eventos que involucran al agente virtual. Es opcional.

  • (session_variable: Todas las variables del agente virtual que se envían a la plataforma de CCAI en la carga útil. Es opcional.

  • custom_sip_headers: Permite que los encabezados SIP personalizados de las llamadas SIP entrantes aparezcan en el registro de eventos POST. Solo es obligatorio si se usan encabezados SIP personalizados. Es opcional.

  • custom_data_secured: Permite la transmisión de datos personalizados protegidos del SDK. Es opcional.

  • custom_data_not_secured: Permite la transmisión de datos personalizados del SDK no protegidos. Es opcional.

A continuación, se incluye un ejemplo de un evento de transferencia:

{
  "type": "Transfer_Chat",
  "data": {
    "chat_id": 103646,
    "session_type": "Messaging Inbound (SMS)",
    "campaign_id": 1432,
    "campaign_name": "Survey Movie",
    "from_agent_id": 1,
    "from_agent_custom_id": "007",
    "from_agent_email": "Ira@example.com",
    "to_agent_id" : 5
    "to_agent_custom_id": "100"
    "to_agent_email" : "ariel@example.com"
    "from_queue_id": 8469,
    "from_queue_path": "Developers / Ariel",
    "to_queue_id" : 1234,
    "to_queue_path" : "Schemes / Auric"
  }
}

Se agregó el grupo

Un evento de parte agregada se refiere a cualquier transferencia. Puede ser una transferencia de llamada o de chat.

Un evento de grupo agregado contiene los siguientes datos:

  • chat_id o call_id: Identifica la sesión de llamada o chat

  • session_type: Indica el tipo de sesión que se está creando, como una sesión de mensajería entrante a través del chat web.

  • agent_custom_id: Este campo solo existe si el perfil del agente incluye un ID personalizado. Es opcional.

  • agent_email: Es la dirección de correo electrónico del agente que maneja la llamada o la sesión de chat.

  • queue_id: Es el ID de la fila de la que se originó la sesión de chat. Este campo solo se incluye cuando el chat se origina en una cola. Es opcional.

  • queue_path: Es la ruta de acceso de la cola desde la que se originó la sesión de chat. Este campo solo se incluye cuando el chat se origina en una cola. Es opcional.

  • campaign_id: Es el ID de la campaña. Este campo solo se incluye cuando el tipo de llamada es una llamada de campaña. Es opcional.

  • campaign_name: Es el nombre de la campaña. Este campo solo se incluye cuando el tipo de llamada es una llamada de campaña. Es opcional.

  • type: el tipo de participante, por ejemplo, un usuario final o un agente. Este campo se devuelve como parte de participants.type de la respuesta /api/v1/calls o /api/v1/chats

  • end_user_id: Es el end_user_id. Este campo se devuelve como parte de la respuesta de /api/v1/calls o /api/v1/chats. Este campo solo está presente en las llamadas o los chats de usuarios finales que se enrutan de un agente a otro para indicar el agente de destino. Es opcional.

  • virtual_agent_id: Es el identificador asignado a un agente virtual. Es opcional.

  • va_data_parameters: Son todas las variables configuradas en la cola para enviar al agente virtual. Esto solo es obligatorio para los eventos que involucran al agente virtual. Es opcional.

  • session_variable: Son todas las variables del agente virtual que se envían a CCAI Platform en la carga útil. Es opcional.

  • custom_sip_headers: Permite que los encabezados SIP personalizados de las llamadas SIP entrantes aparezcan en el registro de eventos POST. Solo es obligatorio si se usan encabezados SIP personalizados. Es opcional.

  • custom_data_secured: Permite la transmisión de datos personalizados protegidos del SDK. Es opcional.

  • custom_data_not_secured: Permite la transmisión de datos personalizados del SDK no seguros. Es opcional.

Este es un ejemplo de un evento Party_Added.

{
  "type": "Party_Added",
  "data": {
    "chat_id": 103646,
    "session_type": "Messaging Inbound (SMS)",
    "campaign_id": 1432,
    "campaign_name": "Survey Movie",
    "agent_id": 1,
    "agent_custom_id": "007",
    "agent_email": "ariel@example.com",
    "queue_id": 8469,
    "queue_path": "Developers / Ariel",
    "type" : "agent"
  }
}

El agente se conecta a la sesión

Un evento de conexión de agente a sesión ocurre cuando un agente se conecta a una sesión. Existen dos tipos diferentes de eventos. El tipo se determina según si es una llamada o un chat.

Los siguientes campos de evento forman parte de un evento de conexión del agente a la sesión.

  • agent_id: Identifica al agente que controla la llamada o la sesión de chat.

  • agent_email: Es la dirección de correo electrónico del agente que maneja la llamada o la sesión de chat.

  • agent_custom_id: Este campo solo existe si el perfil del agente incluye un ID personalizado. Es opcional.

  • chat_id o call_id: Identifica la sesión de llamada o chat.

  • virtual_agent_id: Es el ID asignado a un agente virtual específico. Es opcional.

  • campaign_id: Es el ID de la campaña. Este campo solo se incluye cuando el tipo de llamada es una llamada de campaña. Es opcional.

  • campaign_name: Es el nombre de la campaña. Este campo solo se incluye cuando el tipo de llamada es una llamada de campaña. Es opcional.

  • queue_id: Es el ID de la fila de la que se originó la sesión de chat. Este campo solo se incluye cuando el chat se origina en una fila. Es opcional.

  • queue_path: Es la ruta de acceso de la cola desde la que se originó la sesión de chat. Este campo solo se incluye cuando el chat se origina en una cola. Es opcional.

  • session_type: Indica el tipo de sesión que se está creando, como un mensaje entrante a través del chat web.

  • virtual_agent_id: Es el ID asignado a un agente virtual. Es opcional.

  • va_data_parameters: Son todas las variables configuradas en la cola para enviarlas al agente virtual. Esto solo es obligatorio para los eventos que involucran al agente virtual. Es opcional.

  • session_variable: Son todas las variables del agente virtual que se envían a UJET en la carga útil. Es opcional.

  • custom_sip_headers: Permite que los encabezados SIP personalizados de las llamadas SIP entrantes aparezcan en el registro de eventos POST. Solo es obligatorio si se usan encabezados SIP personalizados. Es opcional.

  • custom_data_secured: Permite la transmisión de datos personalizados protegidos del SDK. Es opcional.

  • custom_data_not_secured: Permite la transmisión de datos personalizados del SDK no protegidos. Es opcional.

Este es un ejemplo de datos de eventos de Agent_Joined_Chat:

{
  "type": "Agent_Joined_Chat",
  "data": {
    "chat_id": 103646,
    "campaign_id": 1432,
    "campaign_name": "Survey Movie",
    "agent_id": 1,
    "agent_custom_id": "007",
    "agent_email": "ariel@example.com",
    "queue_id": 8469,
    "queue_path": "Developers / Ariel",
    "session_type": "Messaging Inbound (SMS)",
  }
}

Cierre de sesión del agente

Un evento de salida del agente se produce cuando un agente sale del adaptador del agente.

Los siguientes campos de evento forman parte de un evento Agent_Logout.

  • agent_id: Es el identificador del agente que accedió.

  • agent_email: Es la dirección de correo electrónico asociada con la cuenta del agente.

  • agent_custom_id: Es el ID personalizado del agente, si se ingresó en su perfil. Es opcional.

A continuación, se incluye un ejemplo de un evento Agent_Logout:

{
  "type": "Agent_Logout",
  "data": {
    "agent_id": 1,
    "agent_custom_id": "007",
    "agent_email": "ariel@example.com",
  }
}

Se agregó Agent Assist

Se produce un evento de Agent Assist agregado cuando un agente activa Agent Assist durante una sesión de chat o llamada.

Ten en cuenta lo siguiente sobre este evento:

  • El type de este evento está en minúsculas: agent_assist_added.

  • El campo de marca de tiempo se llama Timestamp (T mayúscula) y es la cantidad de milisegundos desde el tiempo Unix.

Este es un ejemplo de un evento agent_assist_added:

{
  "type": "agent_assist_added",
  "data": {
    "conversation_id": "12345",
    "queue_id": 65,
    "agent_id": 1,
    "session_id": "78534G4RT4284",
    "queue_language_id": "en",
    "Timestamp": 1727853575000
  }
}

Estos son los campos del evento:

  • conversation_id: Es el identificador de la conversación. Este campo se incluye cuando la sesión usa un perfil de conversación. Es opcional.

  • queue_id: Es el identificador de la fila. Es opcional.

  • agent_id: Es el identificador del agente.

  • session_id: Es el identificador de la sesión. Es opcional.

  • queue_language_id: Es el idioma de la cola. Es opcional.

  • Timestamp: la hora en que se publicó el evento, en milisegundos desde el tiempo Unix

Se unió el asistente de tareas virtual

Un evento de unión de un asistente de asistencia para tareas virtual se produce cuando un asistente de asistencia para tareas virtual (VTA) se une a una llamada o sesión de chat.

A continuación, se incluye un ejemplo de un evento Task_VA_Joined:

{
  "type": "Task_VA_Joined",
  "data": {
    "chat_id": 103646,
    "campaign_id": 1432,
    "campaign_name": "Survey Movie",
    "virtual_agent_id": 1,
    "virtual_agent_name": "Order status assistant",
    "participant_id": 1,
    "queue_id": 8469,
    "queue_path": "Developers / Kim",
    "queue_language_id": "en",
    "session_type": "Messaging Inbound (SMS)",
    "conversation_id": "12345",
    "session_id": "78534G4RT4284",
    "timestamp": 1727853575000,
    "data_parameters": {
      "param1": "one",
      "param2": "two"
    }
  }
}

Estos son los campos del evento:

  • call_id o chat_id: Es el identificador de la llamada o del chat.

  • campaign_id: Es el identificador de la campaña. Este campo se incluye para una llamada de campaña. Es opcional.

  • campaign_name: Es el nombre de la campaña. Este campo se incluye en una llamada de campaña. Es opcional.

  • virtual_agent_id: Es el identificador de la VTA.

  • virtual_agent_name: Es el nombre del VTA como se configuró en el portal de CCAI Platform.

  • participant_id: Es el identificador del participante del VTA en la sesión.

  • queue_id: Es el identificador de la cola de la que se originó la sesión. Es opcional.

  • queue_path: Es la ruta de acceso de la fila de la que se originó la sesión. Es opcional.

  • queue_language_id: Es el idioma de la cola. Es opcional.

  • session_type: Es el tipo de sesión.

  • conversation_id: Es el identificador de la conversación. Este campo se incluye cuando la sesión usa un perfil de conversación. Es opcional.

  • session_id: Es el identificador de la sesión. Es opcional.

  • timestamp: Es la hora en que se publicó el evento, en milisegundos desde el tiempo Unix.

  • data_parameters: Son las variables configuradas en el portal de CCAI Platform y enviadas al VTA. Es opcional.

Se cerró el asistente de tareas virtual

Se produce un evento de salida del asistente virtual de tareas cuando el VTA abandona la sesión. Además de los campos del evento Asistente de tareas virtual unido, incluye el motivo por el que finalizó la sesión del VTA y las variables de sesión que capturó el VTA.

A continuación, se incluye un ejemplo de un evento Task_VA_Left:

{
  "type": "Task_VA_Left",
  "data": {
    "chat_id": 103646,
    "virtual_agent_id": 1,
    "virtual_agent_name": "Order status assistant",
    "participant_id": 1,
    "queue_id": 8469,
    "queue_path": "Developers / Kim",
    "queue_language_id": "en",
    "session_type": "Messaging Inbound (SMS)",
    "conversation_id": "12345",
    "session_id": "78534G4RT4284",
    "timestamp": 1727853600000,
    "finish_reason": "Task VA completed",
    "data_parameters": {
      "param1": "one"
    },
    "captured_variables": [
      {
        "intent_name": null,
        "variables": {
          "order_number": "A-100"
        },
        "captured_at": "2024-11-15 16:46:31 UTC",
        "timestamp": 1727853590000
      }
    ]
  }
}

Los campos de evento adicionales son los siguientes:

  • finish_reason: Es el motivo por el que finalizó la sesión de VTA.

  • captured_variables: Son las variables de sesión que capturó el VTA, cada una con el intent que las capturó y el momento en que se capturaron. Es opcional.

Variables de sesión de la asistencia para tareas virtual recibidas

Se produce un evento de variables de sesión de asistencia para tareas virtuales recibidas cada vez que el ATV envía una carga útil de variables de sesión personalizadas durante la sesión. El evento tiene los mismos campos que el evento Asistente de tareas virtual abandonó, excepto finish_reason, y captured_variables contiene las variables recibidas hasta el momento.

Este es un ejemplo de un evento Task_VA_Variables_Received:

{
  "type": "Task_VA_Variables_Received",
  "data": {
    "chat_id": 103646,
    "virtual_agent_id": 1,
    "virtual_agent_name": "Order status assistant",
    "participant_id": 1,
    "queue_id": 8469,
    "queue_path": "Developers / Kim",
    "queue_language_id": "en",
    "session_type": "Messaging Inbound (SMS)",
    "conversation_id": "12345",
    "session_id": "78534G4RT4284",
    "timestamp": 1727853590000,
    "data_parameters": {
      "param1": "one"
    },
    "captured_variables": [
      {
        "intent_name": null,
        "variables": {
          "order_number": "A-100"
        },
        "captured_at": "2024-11-15 16:46:31 UTC",
        "timestamp": 1727853590000
      }
    ]
  }
}

Solo se incluyen las variables cuyo capture_type incluye event en la carga útil de la variable de sesión personalizada del agente virtual, y se excluyen las claves que se indican en invisible_to_adapter_events.

Ventana emergente en segundo plano

La función de ventana emergente permite que los agentes abran una ventana emergente de CRM en segundo plano, lo que significa que la información del cliente se muestra en la pantalla del agente sin que este deba realizar ninguna acción. Esto proporciona una experiencia más fluida para los consumidores y reduce el tiempo de procesamiento para los agentes.

Apertura de registro de CRM

El evento, CRM_Record_Pop, es un evento del servidor que se activa cuando se debe mostrar un ticket. Este evento incluye un parámetro llamado recordUrl que contiene la URL del registro de CRM, lo que te permite realizar una ventana emergente de pantalla suscribiéndote a eventos POST si usas adaptadores incorporados.

Este es un ejemplo de un evento CRM_Record_Pop:

{
  "type": "CRM_Record_Pop",
  "data": {
    "recordUrl": "https://crm.example.com/tickets/4711"
  }
}

El evento tiene un solo campo:

  • recordUrl: La URL del registro del CRM que se mostrará

Para lograrlo, en el siguiente ejemplo, se muestra cómo agregar un objeto de escucha de eventos que escuche los mensajes enviados desde otro marco o ventana. Este fragmento de código está diseñado para habilitar la comunicación entre diferentes marcos o ventanas, y permitir actualizaciones dinámicas del contenido que se muestra en el iframe según los mensajes recibidos.

// Replace with the origin of your tenant.
const ADAPTER_ORIGIN = 'https://tenant.loc.ccaiplatform.com'

// name is the html property of the iframe that shows the CRM record
const iframeTarget = document.querySelector('iframe[name="target_iframe_adapter"]')

// example usage of add event listener
// https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
window.addEventListener('message', (e) => {
  // Only accept events posted by the agent adapter.
  if (e.origin !== ADAPTER_ORIGIN) {
    return
  }

  let message
  try {
    message = JSON.parse(e.data)
  } catch (err) {
    // Not an agent adapter event.
    return
  }

  const { type, data = {} } = message
  console.log('EventListener: ', type)

  switch (type) {
    case 'CRM_Record_Pop': {
      const recordUrl = data.recordUrl
      if (!recordUrl) {
        return
      }
      console.log(`Opening recordUrl in iframe ${iframeTarget.getAttribute('name')}`)

      // changing an iframe target to the record URL pop
      iframeTarget.src = recordUrl
      break
    }
    case 'New_Chat':
      console.log('Chat started...')
      // handling here for New_Chat events
      break
    case 'End_Chat':
      console.log('Chat ended...')
      // handling here for End_Chat events
      break
    default:
      // code handling for other types
      break
  }
}, false)

Abrir la página de terceros

El adaptador de llamadas publica el evento openThirdPartyPage cuando una llamada lleva una clave de terceros (por ejemplo, una clave de administrador de campañas de lista en una llamada de campaña) y el adaptador está a punto de abrir la página de terceros coincidente. Si usas adaptadores incorporados, puedes suscribirte a este evento para abrir la página en tu propia IU.

Este es un ejemplo de un evento openThirdPartyPage:

{
  "type": "openThirdPartyPage",
  "data": {
    "thirdPartyKey": "acqueon:12345",
    "callId": 103646
  }
}

Estos son los campos del evento:

  • thirdPartyKey: Es la clave de terceros asociada con la llamada.

  • callId: Es el identificador de la llamada.