La solución de CRM personalizada permite que las empresas aprovechen 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 de CRM funciona cuando se usa un CRM propio o cualquier CRM no estándar.
Los agentes manejan 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 subidos por el consumidor se envían a un servicio de almacenamiento externo, y los agentes pueden ver los archivos multimedia subidos por 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 llamada y sesión de chat
Envía metadatos y archivos multimedia a un servicio de almacenamiento externo
Integración de APIs genéricas
URL de búsqueda personalizada
Actualización de registros de CRM por correo electrónico
Búsqueda de cuentas o casos desde el adaptador de agentes
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 personalizados
| 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 la API genérica proporciona la capacidad de 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 llamada o chat, y 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 de 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 contengan información de la sesión y se puede acceder a ella en el adaptador del agente durante la sesión. Una vez que se acceda a la URL, se activará el CRM personalizado para que realice una búsqueda. Esta búsqueda de CRM es la forma en que los agentes pueden usar un "ticket pop" 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 use 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 administrarán en la pestaña de CCAI Platform, y se accederá a los detalles de los tickets en una pestaña de 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
CCAI Platform solo incluirá parámetros en la URL 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 la URL de búsqueda personalizada
Debido a los diferentes identificadores únicos y las capacidades y los comportamientos de CRM, deberás crear 2 URLs diferentes: una para las sesiones de IVR/PSTN/SMS y otra para las sesiones de 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.
Las siguientes variables se pueden usar 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 conserva por retrocompatibilidad. |
{CUID} |
ID de usuario personalizado |
{EMAIL} |
Correo electrónico del usuario final |
{MENU_PATH} |
Es la ruta de acceso completa del menú de la fila. Por ejemplo, "Pedidos/Confirmación del pedido/Información del pedido". |
{MENU_ID} |
ID del menú |
{CHANNEL} |
Es el canal de la sesión. Valores posibles:
|
{TYPE} |
Es el tipo de sesión. Valores posibles para las llamadas:
Valores posibles para los chats:
|
{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:
|
{CUSTOM_AGENT_ID} |
Es el campo opcional de 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
Accede al portal de CCAI Platform con una cuenta que tenga asignado el rol de administrador.
Ve a Configuración > Configuración para desarrolladores.
En la sección CRM, selecciona CRM personalizado.
En Búsqueda de CRM, ingresa tus URLs personalizadas.
Selecciona el formato de número de teléfono que se usará en las solicitudes de CRM.
Haz clic en Guardar cambios.
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 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:
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
Accede al portal de CCAI Platform con una cuenta que tenga asignado el rol de administrador.
Ve a Configuración > Configuración para desarrolladores.
En la sección CRM, asegúrate de que esté seleccionada la opción CRM personalizado.
Habilita Enviar el resultado de la sesión por correo electrónico.
Ingresa la dirección de correo electrónico a la que quieres que se envíe el mensaje.
Haz clic en Guardar cambios.
Configuración por cola
Accede al portal de CCAI Platform con una cuenta que tenga asignado el rol de administrador.
Ve a Configuración > Cola y selecciona cualquier subcola.
Habilita Enviar el resultado de la sesión por correo electrónico.
Ingresa la dirección de correo electrónico a la que quieres que se envíe el mensaje.

Haz clic en Guardar configuración de CRM personalizada.
Herencia y anulación de la configuración
| Configuración | Comportamiento |
|---|---|
| Global = NO habilitado En cola = NO habilitado |
No envíes 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 En cola = 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
Accede al portal de CCAI Platform con una cuenta que tenga asignado el rol de agente.
Abre el adaptador de llamadas o chat.
Usa el botón Abrir en una nueva ventana del navegador para activar la búsqueda.
Usa el botón Copiar vínculo para copiar la URL de búsqueda en el portapapeles.

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 de CCAI Platform válida con el rol de administrador y agente asignado 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 de agentes y supervisores
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 de 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 con tu servidor externo.
Configura el servicio de almacenamiento externo
Completa estos pasos para configurar tu almacenamiento externo:
Accede al portal de CCAI Platform con una cuenta que tenga asignado el rol de administrador.
Ve a Configuración > Configuración para desarrolladores.
En la página Configuración de desarrollador, navega a la sección Almacenamiento externo.
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.
En la sección Configuración del servidor, selecciona tu tipo de almacenamiento y completa los pasos de configuración: Servidor SFTP, bucket de Google Cloud .
Servidor SFTP
Ingresa el host de SFTP (URL o dirección IP).
Ingresa el número de Puerto.
Ingresa el ID de usuario de acceso de SFTP.
Si el servidor SFTP requiere una contraseña para la autenticación, ingrésala en el campo Contraseña.
Si el servidor SFTP requiere una clave privada para la autenticación, selecciona la casilla de verificación Clave privada SSH.
Ingresa (copia y pega) la clave privada de SSH.
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.
Haz clic en Guardar cambios.
Cloud Storage
Ingresa el Nombre del bucket de destino Google Cloud .
Ingresa el Google Cloud ID de cliente.
Ingresa el secreto del cliente de Google Cloud .
Si la información de la sesión se debe almacenar en una carpeta específica del bucket de Google Cloud , selecciona la casilla de verificación Ruta de acceso de la carpeta y escribe la ruta de acceso de la carpetaGoogle Cloud .
Haz clic en Vincular y guardar.
Prueba la configuración del almacenamiento externo
Para los CRM con integración estándar existente:
Accede a tu CRM.
Accede a CCAI Platform dentro del CRM con las credenciales de CCAI Platform con un rol de agente asignado.
Realiza una llamada o inicia un chat. Se muestra el registro de CRM asociado con la sesión.
Cuando finalice la sesión, el archivo de transcripción se debería subir en cuestión de segundos.
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, se debe habilitar el almacenamiento externo en Configuración > Configuración para desarrolladores > Almacenamiento externo. Activa la opción Habilitar el almacenamiento de información fuera de los servidores de CRM.
Almacenamiento de CRM
Ve a Configuración > Configuración para desarrolladores > Almacenamiento externo > Almacenamiento de CRM.
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.
Haz clic en Guardar cambios.
Si la casilla de verificación está marcada, las grabaciones se almacenarán en el CRM y 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.
Ve a Configuración > Configuración para desarrolladores > Almacenamiento externo > URLs de almacenamiento externo.
Selecciona las URLs de CRM o las URLs de almacenamiento externo de origen para mostrar los archivos en el adaptador del agente.
Haz clic en Guardar cambios.
Almacenamiento de CRM
Si la casilla de verificación de almacenamiento de 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 en la CRM y en el almacenamiento externo.
URLs de almacenamiento externo
La URL se usa en dos lugares:
Una es mostrar el contenido multimedia en el adaptador de CCAI Platform. El almacenamiento externo o el CRM.
La otra está en el informe. Revelamos la URL de contenido multimedia en los informes y en los menús, como Configuración, Llamadas y Completadas.
Mostrar el 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 Configuración para desarrolladores > CRM.
Esta función permite que los agentes manejen sesiones de asistencia en vivo con los adaptadores de llamadas y chat de CCAI Platform mientras trabajan en tu CRM personalizado. Esto incluye revisar los detalles de la cuenta y del registro que se abren automáticamente, así como los archivos y 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 CCAI Platform.
Configura una página de CRM personalizada
Para configurar una página de CRM personalizada, sigue estos pasos:
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ú.
En el panel CRM, haz clic en CRM personalizada.
Haz clic en el botón de activación Mostrar CRM en el portal de CCAI Platform para activarlo.
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 cola.
Habilitar la ventana emergente de pantalla por cola
Ve a Configuración > Cola > IVR y haz clic en una cola para editarla.
Ve a Abrir URL personalizada en el panel.
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.
- Haz clic en Save.
Integración de la API genérica 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 habilitar 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 todos los pares que 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: Crea: +1 222 333 4444, busca: *222*333*4444
E.164: +12223334444
Local de EE.UU.: 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 las URLs de búsqueda de CRM con el SDK web y los SDK para dispositivos móviles. Puedes configurar los SDK para que busquen información de cuentas y registros de CRM y la muestren en el adaptador del agente. Para obtener una lista completa de las URLs de búsqueda de CRM, consulta Parámetros de 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 de Generic.
Para que la búsqueda de cuentas esté disponible para tus agentes, debes configurar los extremos Buscar una cuenta y Crear una cuenta.
Además, puedes configurar los extremos Buscar un registro y Crear un registro para habilitar la búsqueda o creación de registros para tus agentes. Para ello, se requiere la configuración de la cuenta del paso anterior.
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:
URL de solicitud: Es la URL del extremo de API.
Elige el método de solicitud entre POST, GET, PUT o PATCH.
Especifica los parámetros de la solicitud. Puedes usar las variables definidas de CCAI Platform para pasar la información requerida (consulta la tabla que aparece a continuación). También puedes ingresar texto sin formato o números como valores de los parámetros. Puedes agregar todos los parámetros que necesites.
Si el extremo es POST/PUT/PATCH, CCAI Platform ofrece controles 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 entre Mapa o Array. 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 } ] }
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 aplica el formato según la opción de configuración |
| ID de llamada | {Call_ID} |
Es el ID de 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 encontró llamando al extremo Find/Create contact. |
| ID de registro | {RECORD_ID} |
Se encuentra 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 aplicó 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} |
Es el 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 una cuenta o un usuario final del SDK 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: verificación | (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 de las tareas después de 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} |
Igual que 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 del archivo | {FILE_DATA} |
Solo está disponible en el extremo de carga de archivos, pero contiene los datos o la codificación en Base64 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 CCAI Platform. 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) | Es la concatenación de varios valores con
or. Ejemplo: 'val1 or val2 or val3' |
Concatenación And | =CONCAT_AND(val1, val2,
val3) | Es la concatenación de varios valores con
and. Ejemplo: "val1 and val2 and val3" |
Ejemplos
A continuación, se muestran algunos ejemplos del 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 esté 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.

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 personalizado: Flujos.
Extremo para buscar una cuenta por consulta (antes, extremo para buscar una cuenta)
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 extremo 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 registro de la API proporcionan la capacidad de integrarse con registros o casos en tu CRM.
Busca un registro por consulta (antes, extremo de búsqueda de 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 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 un registro de la solicitud Buscar un registro o si CCAI Platform está configurada para no volver a usar los 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 CCAI Platform, 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 archivo adjunto entre ID y URL del archivo adjunto. Especifica el formato del JSON de respuesta.
ID
Es el ID del archivo adjunto. Ingresa la ubicación de un parámetro en la respuesta JSON para el ID del archivo adjunto. Estará disponible para la URL del compilador de archivos adjuntos como {ATTACHMENT_ID}.
URL del creador de archivos adjuntos. 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 CRM si quieres 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.
En el siguiente ejemplo, se muestra un formulario de varias partes con 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 comentario
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 eventos:
inicio de llamada o 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 CCAI Platform 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
La integración de CRM personalizado (API genérica) de CCAI Platform funciona como un conjunto de flujos. Al comienzo de una llamada, un chat o un mensaje de voz, la plataforma ejecuta los pasos de cuenta y registro configurados, que buscan o crean una cuenta y un registro (como un ticket o un caso) en tu CRM. Durante la interacción y después de ella, también ejecuta acciones como comentarios, actualizaciones de registros y cargas de archivos. En los siguientes diagramas de flujo, se muestra cuándo se ejecuta cada paso y qué se debe configurar para que se ejecute.
Cuándo se ejecutan los flujos
Estos flujos se ejecutan en diferentes puntos de una interacción. Los pasos de cuenta y registro se ejecutan durante la interacción. Las grabaciones, las transcripciones y el buzón de voz se suben después de que finaliza la interacción, junto con el comentario, el registro de actualización y otras acciones posteriores a la sesión. Los archivos adjuntos (fotos, videos, documentos y audio) se suben a medida que se comparten durante la interacción. Antes de que se ejecute uno de estos flujos, haz lo siguiente:
- Se produjo el activador de la acción, por ejemplo, hay un archivo disponible para subir o finalizó la llamada, el chat o el mensaje de voz.
- La acción pertinente está habilitada en la configuración de tu CRM personalizado. Por ejemplo, el tipo de archivo está habilitado para la carga, o bien se configuró el extremo de comentario o actualización de la API.
- Para cualquier acción que escriba en el CRM (subir un archivo a un registro, publicar un comentario o actualizar un registro), se configuran los extremos requeridos y existe un registro para la sesión. Si aún no se creó el registro, la plataforma retiene la acción y la ejecuta automáticamente una vez que exista el registro.
No se requiere un registro para subir un archivo al almacenamiento externo. El requisito de registro se aplica a las escrituras de CRM.
En algunas configuraciones, la cuenta actúa como el registro de la sesión: cuando se omite la creación del registro y los datos de la sesión se envían a la cuenta de CRM, se usan los extremos de comentarios, carga y actualización a nivel de la cuenta en lugar de los extremos a nivel del registro. En los diagramas, "registro" incluye una cuenta que actúa como el registro de la sesión cuando se habilita esa configuración.
Para conocer el orden de las cuentas, los registros y las sesiones posteriores, el tiempo de reintento y el comportamiento de los errores, consulta Manejo de errores, reintentos y orden de llamadas en CRM personalizado (API genérica).
Diagramas de flujo
En estos diagramas de flujo, aparecen tres resultados de forma repetida:
| Resultado | Qué significa |
|---|---|
| Omitido | La acción está desactivada por configuración, por lo que no se envía nada. |
| Retenida | La acción se configura, pero espera hasta que exista el registro y, luego, se ejecuta automáticamente. |
| Configuración incompleta | Falta un extremo obligatorio, por lo que no se puede ejecutar la acción. |
Flujo básico
Una interacción ejecuta el paso de la cuenta, luego el paso de registro y, por último, las acciones posteriores a la sesión. Cada paso se ejecuta solo cuando se configuran sus propios parámetros de configuración y extremos. Las cargas de almacenamiento externo se ejecutan sin un registro; otras acciones posteriores a la sesión escriben en el CRM y esperan hasta que exista un registro. En esta descripción general, se muestra la ruta posterior a la sesión. Los archivos compartidos durante la interacción siguen el flujo de carga de archivos en cuanto están disponibles.

Cómo encontrar o crear una cuenta
La plataforma busca la cuenta por un ID, un número de teléfono, un correo electrónico o un método de coincidencia configurado. Si no se encuentra ninguna cuenta y la creación de cuentas está habilitada, se crea una, o bien una cuenta anónima cuando no hay detalles de identificación. Luego, la cuenta encontrada o creada se vincula a la sesión.

Buscar o crear un registro
Cuando se habilita el modo de grabación, la plataforma reutiliza un registro existente para la sesión si aún se puede usar; de lo contrario, crea un registro nuevo. El ID de registro puede venir con la solicitud o de un registro ya asociado con la interacción. Cuando se proporciona un ID de registro con la solicitud, la plataforma también agrega un comentario en el que se indica si se reutilizó ese registro o si se creó uno nuevo.

Actualizar registro
Una vez que existe un registro, la plataforma envía una solicitud de actualización compilada a partir de la plantilla que configuraste. Si el extremo de actualización se establece en un valor de marcador de posición, se omite la actualización.

Acciones posteriores a la sesión
Después de una sesión, se pueden ejecutar varias acciones independientes, cada una activada por su propio evento: una llamada, un chat o un correo electrónico finalizados; una calificación enviada; una encuesta respondida; o una grabación, transcripción o mensaje de voz posterior a la sesión que estén disponibles. Las cargas de archivos siguen el flujo de carga de archivos; las acciones de comentario y actualización escriben en el CRM y esperan hasta que exista un registro.

Comentario
Se puede publicar un comentario con una acción de finalización, calificación, encuesta o carga de archivos. Requiere un extremo de comentario de la API y un registro existente, y espera hasta que el registro exista. El comentario se publica como HTML o texto sin formato, según la configuración de comentarios.

Flujo de carga de archivos
El almacenamiento externo se habilita por tipo de archivo. Cuando se habilita para un tipo de archivo, este se envía al almacenamiento externo; de lo contrario, se envía a la CRM. Un parámetro de configuración independiente también puede subir el archivo al CRM después de enviarlo al almacenamiento externo. Las operaciones de escritura en el CRM (un archivo adjunto o un comentario) se ejecutan solo una vez que existe un registro.

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.
Para integrar adaptadores de interfaz de usuario, suele ser necesario un software o una aplicación de CRM. Ya proporcionamos esta función 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 con el uso de una etiqueta iframe. Para obtener más información sobre la etiqueta iframe de HTML, consulta Etiqueta iframe de HTML.
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 cambie de posición en la pantalla según su conveniencia. En los siguientes ejemplos, se muestra el formato de la 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
allowes obligatorio. El adaptador de llamadas usa WebRTC y necesitamicrophone;cameraygeolocationson necesarios para compartir pantalla y las funciones de 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 llamadas y de chat son dos iframes independientes y publican eventos de forma independiente.
El adaptador detecta que está incorporado porque su ventana superior se encuentra en un origen diferente. Entrega la página de host desde tu propio dominio, en lugar de hacerlo desde el dominio de usuario de CCAI Platform.
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 de CRM del usuario). Siempre debe ser custom para cualquier CRM que no esté en las listas. Si no hay una configuración de CRM, puedes omitir este parámetro.
Eventos en los 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 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
- Cambió el control remoto de la sesión de Compartir pantalla
- Cambió la sesión de compartir pantalla de todo el dispositivo
- 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
- El asistente de tareas virtual abandonó la reunión
- Se recibieron las variables de sesión del asistente de tareas virtual
- Ventana emergente de registro de CRM
- Abrir la página de terceros
Formato de mensaje
Cada evento se envía con la API de window.postMessage() del navegador desde el iframe del adaptador hasta su ventana superior directa (window.parent). La ventana superior lo recibe como un MessageEvent.
El mensaje tiene las siguientes características:
event.dataes una cadena JSON, no un objeto. Siempre llama aJSON.parse(event.data)antes de leerlo. Debido a que otras secuencias de comandos de la página también pueden usarpostMessage()con cargas útiles que no sean JSON, une el análisis en untry/catch.El objeto analizado tiene exactamente dos claves de nivel superior:
{ "type": "<event type>", "data": { ... } }typees una de las cadenas que se indican en Tipos de eventos.datacontiene los campos de evento que se describen en Datos para eventos. Todos los campos específicos de eventos se encuentran dentro dedata, nunca en el nivel superior.Se omiten los campos vacíos. Antes de publicar, el adaptador quita cualquier campo en
datacuyo valor seanull,undefinedo una cadena vacía. Trata cada campo como potencialmente ausente y no confíes en que una clave esté presente con un valornull.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 compararevent.origincon 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
typedistinguen mayúsculas de minúsculas y no se escriben de manera uniforme. La mayoría sonTitle_Case(New_Call,End_Chat); algunas están en minúsculas (call_redaction_started,call_redaction_ended,agent_assist_added) o en camelCase (openThirdPartyPage). Compáralas 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 para el adaptador del agente
La comunicación es principalmente unidireccional (del adaptador al host), pero la página del host puede enviar un
conjunto pequeño de comandos al adaptador de llamadas con postMessage(). Estos mensajes
son objetos sin formato (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 iniciar 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 usuario 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 en el comando, publica el evento
call_redaction_startedocall_redaction_endedcoincidente 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:authorityanterior con los tipos de eventosredact_call:startyredact_call:stoppara mantener la retrocompatibilidad, pero las integraciones nuevas deben usarapi:redaction.
Para obtener más información, consulta Ocultamiento de llamadas.
Datos de eventos
call_id: Es un identificador para una llamada de voz entrante 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 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: 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 fila a otra para indicar la fila 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 fila a otra para indicar la fila 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: Es el 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_useroagent(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 sonagentoend_user.cobrowse_session_ended_by: Indica quién finalizó una sesión de compartir pantalla. Los valores posibles sonagent,end_useroapi.end_user_id: Esparticipants.end_user_idde la respuesta/api/v1/callso/api/v1/chats. Este campo solo está presente si el tipo esend_user.
Tipos de interacción o sesión
Tipos de llamadas
- Voz entrante: Llamadas de RTC estándar.
- Llamadas de voz entrantes (IVR con dispositivos móviles): Llamadas de resguardo a la RTC realizadas 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.
- Voz programada (Web): Se programa con un SDK web instalado.
- Voz saliente: Se inicia cuando un agente marca 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
es la cadena exacta que distingue mayúsculas de minúsculas que aparece en el campo type
del mensaje.
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 este 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 descripciones de los campos de datos de eventos:
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 nueva 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ó.
Este es 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 cola desde 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 para 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 CCAI Platform. Es opcional.custom_sip_headers: Permite que los encabezados personalizados del protocolo de inicio de sesión (SIP) de las llamadas SIP entrantes 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ña cuyo contacto tiene una clave de LCM.
Este es 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 marcado.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 un ocultamiento de llamada y no se está grabando. Los datos del evento consisten en el ID del agente que manejó 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 llamada:
{
"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 ocultamiento de llamada se produce cuando finaliza el ocultamiento de una llamada y
se reanuda la grabación. Este evento consiste en el ID del agente que manejó
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 elIDdel agente que atendió la llamada.call_id: Es elIDde la llamada.
Este es un ejemplo de los datos de eventos de ocultación de llamada detenida:
{
"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 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 cola desde 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 para 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: Permite que los encabezados personalizados del protocolo de inicio de sesión (SIP) de las llamadas SIP entrantes 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ó.
Este es 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 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 Datos personalizados sin firma del chat (opcional). Es opcional.
Finalizar chat
Un evento de finalización de chat se produce cuando termina una sesión de chat. Este evento indica cuándo finalizó el chat y contiene información, como qué agente controló el chat y dónde 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 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 Datos personalizados sin firma del chat (opcional). Es opcional.
Chat activo
Un evento de chat activo se produce cuando el agente cambia a una pestaña de chat en el adaptador de chat.
Este es 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 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 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 de un cliente nuevo. 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 administra 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 se incluye solo 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 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: un evento que indica que se recibió un mensaje nuevo del consumidor, además del contenido del mensajecustom_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
Un evento de mensaje saliente de chat se produce cuando se recibe un mensaje nuevo del consumidor. 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 administra 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 fila de la que se originó la sesión de chat. Este campo solo se incluye cuando el chat se origina en una cola.El evento
messageindica 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_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
Un evento de envío de formulario ocurre 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 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: Son 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
Un evento de formulario completado ocurre cuando el consumidor envía un formulario que se envió durante una sesión de chat. Los datos de eventos tienen los mismos campos que el evento Formulario enviado.
Este es 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 Datos personalizados sin firma del chat (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 Compartir pantalla. Se puede iniciar una sesión de Compartir pantalla 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 compartir 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 compartir pantalla.cobrowse_session_requested_by: Indica quién inició una sesión de Compartir pantalla. Los valores sonagentyend-user.cobrowse_session_remote_control: Indica el estado de una sesión de Compartir pantalla con control remoto. Los valores sonon,rejected,requestedyoff.cobrowse_session_full_device: Indica el estado de una sesión de compartir pantalla completa del dispositivo. Los valores sonon,rejected,requestedyoff.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.
Cambió el control remoto de la sesión de Compartir 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 Compartir 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 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 compartir pantalla.cobrowse_session_remote_control: Indica el estado de una sesión de Compartir pantalla con control remoto. Los valores sonon,rejected,requestedyoff.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.
Cambió la sesión de compartir pantalla de todo el dispositivo
Se produce un evento de cambio de estado de la sesión de compartir pantalla de todo el dispositivo cuando cambia el estado de una sesión de compartir 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.
Este es 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 compartir pantalla.Cobrowse_session_full_device: Indica el estado de una sesión de compartir pantalla completa del dispositivo. Los valores sonon,rejected,requestedyoff.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.
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 Configura Compartir pantalla.
Este es 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 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 compartir pantalla.cobrowse_session_ended_by: Indica quién finalizó la sesión de Compartir pantalla. Los valores sonagent,end-useryapi.cobrowse_session_remote_control: Indica el estado de una sesión de Compartir pantalla con control remoto. Los valores sonon,rejected,requestedyoff.cobrowse_session_full_device: Indica el estado de una sesión de compartir pantalla completa del dispositivo. Los valores sonon,rejected,requestedyoff.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.
Transferir
Un evento de transferencia se produce 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_idocall_id: Identifica la sesión de llamada o chatsession_type: Indica el tipo de sesión que se está creando, como una sesión de mensajería entrante a través de un 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 fila a otra para indicar la fila 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 fila a otra para indicar la fila 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 obligatorio para los eventos que involucran al agente virtual. Es opcional.(
session_variable: 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 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 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_idocall_id: Identifica la sesión de llamada o chatsession_type: Indica el tipo de sesión que se está creando, como una sesión de mensajería entrante a través de un 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 controla 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 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.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: Es el tipo de participante, por ejemplo, un end_user o un agent. Este campo se devuelve como parte de participants.type de la respuesta/api/v1/callso/api/v1/chatsend_user_id: el end_user_id. Este campo se muestra como parte de la respuesta de/api/v1/callso/api/v1/chats. Este campo solo está presente para las llamadas o los chats de los 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 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 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_idocall_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 se incluye solo cuando el chat se origina en una cola. Es opcional.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. 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 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 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 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.
Este es 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 adición de Agent Assist cuando un agente activa Agent Assist durante una llamada o sesión de chat.
Ten en cuenta lo siguiente sobre este evento:
El
typede 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 cola. 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: Es 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 tareas virtual se produce cuando un asistente de tareas virtual (VTA) se une a una llamada o sesión de chat.
Este es 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_idochat_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 para 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 de 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 cola 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.
El asistente de tareas virtual abandonó la reunión
Se produce un evento de salida del asistente de tareas virtual cuando este 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.
Este es 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.
Se recibieron las variables de sesión del asistente de tareas virtual
Se produce un evento de recepción de variables de sesión del asistente de tareas virtuales cada vez que
el VTA envía una carga útil de variable de sesión personalizada durante la sesión. El evento tiene
los mismos campos que el evento Asistente virtual de tareas abandonado,
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 gestión de los agentes.
Ventana emergente 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: Es la URL del registro de 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.