La solución de CRM personalizado permite a las empresas aprovechar el portal de Contact Center AI Platform (CCAI Platform) cuando usan un CRM que no es una integración estándar actual con CCAI Platform. La configuración personalizada del CRM funciona cuando se usa un CRM interno o cualquier CRM no estándar.
Los agentes controlan las llamadas y los chats, y los supervisores pueden supervisar y extraer informes con el portal de CCAI Platform. Todos los detalles sobre la sesión de llamada o chat se almacenan en un archivo de metadatos de la sesión. Este archivo puede contener más de 20 datos, incluida la información de la sesión, las transferencias, la duración de la atención, los participantes, la información de diagnóstico y mucho más. El archivo de metadatos de la sesión se puede analizar y usar para el análisis y el seguimiento posteriores a la sesión.
Los metadatos de la sesión y los archivos multimedia que sube el consumidor se envían a un servicio de almacenamiento externo, y los agentes pueden ver los archivos multimedia que sube el consumidor directamente en el adaptador del agente durante la sesión.
Una solución de CRM personalizada se implementa con una combinación de los siguientes componentes. Es posible que algunos componentes se apliquen o no a tu configuración:
Generar el archivo de metadatos de la sesión para cada sesión de llamada y chat
Envía metadatos y archivos multimedia a un servicio de almacenamiento externo
Integración de API genérica
URL de búsqueda personalizada
Actualización de registros de CRM por correo electrónico
Búsqueda de cuentas o casos desde el adaptador del agente
Requisitos previos
Para usar la función de CRM personalizado, primero debes configurar el almacenamiento externo. Consulta Almacenamiento externo para soluciones de CRM personalizadas para obtener más información.
Metadatos de la sesión
El archivo de metadatos de la sesión contiene información detallada sobre la sesión. Se envía 15 minutos después de que se completa la sesión. Consulta Archivo de metadatos de la sesión para obtener más información.
Métodos de interacción e integración de CRM personalizada
| API genérica | URL personalizada | |
|---|---|---|
| Búsqueda de cuentas | Sí | Sí |
| Búsqueda de casos | Sí | |
| Actualización del caso | Sí | No |
API genérica
El método de integración de API genérica permite usar la API de tu CRM personalizado para establecer una conexión bidireccional con CCAI Platform. Este método fluido se siente igual que la experiencia de integración de CRM lista para usar. El agente no tiene que realizar ninguna acción para crear un registro de CRM para las sesiones de llamadas o chats, según la configuración única de la API. Puede habilitar una búsqueda y actualización de registros sin problemas.
URL personalizada
La opción de vínculo personalizado permite que tus agentes interactúen con tu CRM a través de un vínculo personalizado creado para cada sesión. A diferencia de la integración estándar de CRM y la experiencia de la API genérica, el agente debe tomar medidas para que se cree un registro de CRM. En algunos casos, esto puede ser solo iniciar una pestaña con el vínculo personalizado de la sesión y, en otros, es posible que el agente deba crear el registro de forma manual.
Detalles y configuración de la URL de búsqueda personalizada
La funcionalidad básica de la URL es realizar una búsqueda en el CRM, pero, según tu CRM, se pueden activar procesos más complejos en función del contenido de la URL personalizada. La URL del CRM personalizado se puede configurar con variables que contienen información de la sesión y es accesible en el adaptador del agente durante la sesión. Una vez que se acceda a la URL, se activará el CRM personalizado para realizar una búsqueda. Esta búsqueda en el CRM es la forma en que los agentes pueden usar una "ventana emergente de ticket" para la sesión de llamada o chat activa. El proceso de vínculo personalizado se basa únicamente en la capacidad del CRM personalizado para procesar este vínculo y modificarlo o reescribirlo si es necesario.
Los metadatos de la sesión, las grabaciones de llamadas y otros archivos almacenados externamente no se vincularán al registro de CRM, a menos que también se aproveche el método de actualización por correo electrónico que se indica.
En esta configuración, el agente accederá al portal de CCAI Platform y a su CRM en pestañas separadas. Las llamadas y los chats se manejarán en la pestaña de la plataforma de la CCAI, y se accederá a los detalles de los tickets en una pestaña del CRM.
Para que esta configuración funcione, haz lo siguiente:
El agente debe estar conectado a su CRM en el navegador.
El agente debe acceder al portal de CCAI Platform en su navegador.
La URL de búsqueda personalizada debe estar preconfigurada
Tu CRM debe controlar la URL personalizada para mostrar el registro de CRM pertinente.
Comportamiento de la URL de búsqueda personalizada
La Plataforma de la CCAI solo incluirá en la URL los parámetros que no estén vacíos.
CCAI Platform no almacena la URL generada que contiene el ANI, el UID o el correo electrónico en la base de datos de CCAI Platform una vez que finaliza la sesión.
Configuración de URL de búsqueda personalizada
Debido a las diferentes capacidades y comportamientos de los identificadores únicos y del CRM, deberás crear 2 URLs diferentes: una para las sesiones de IVR/PSTN/SMS y otra para las sesiones del SDK web y para dispositivos móviles. Las sesiones de IVR, PSTN y SMS usarán el ANI como identificador único, mientras que el SDK web y para dispositivos móviles probablemente usará el CUID y el correo electrónico.
Se pueden usar las siguientes variables para configurar una URL de búsqueda:
| Variable | Valores |
|---|---|
{CUSTOMER_PHONE_NUMBER} |
Es el número de teléfono del usuario final. |
{ANI} |
Es el número de teléfono del usuario final. Se retiene para la retrocompatibilidad. |
{CUID} |
ID de usuario personalizado |
{EMAIL} |
Correo electrónico del usuario final |
{MENU_PATH} |
Ruta de menú completa de la fila. Por ejemplo, "Pedidos/Confirmación de pedido/Información del pedido". |
{MENU_ID} |
ID del menú |
{CHANNEL} |
Es el canal de la sesión. Valores posibles:
|
{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 del ID del agente en el objeto user. El ID del agente
no se puede obtener hasta que se establezca la sesión y se asigne un
agente. Por este motivo, configura tu instancia para retrasar la creación de registros de llamadas o
chats, de modo que haya tiempo para definir esta variable. Puedes
retrasar la creación de registros de llamadas o chats en Configuración >
Administración de operaciones > Detalles de creación de registros de CRM. Para obtener más información, consulta Detalles de la creación de registros de CRM. |
Configuración del portal de CCAI Platform
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 del 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 la sesión por correo electrónico. Aproximadamente 15 minutos después de que finaliza una sesión, se envía un correo electrónico a una ubicación configurada y el contenido del correo electrónico se usa para actualizar un registro en tu CRM. Esta función se puede configurar de forma global y por cola. Una vez que se recibe el correo electrónico, es posible que tu CRM esté configurado para actualizar o crear un nuevo registro de CRM para la sesión.
Detalles del correo electrónico
Enviado desde no-reply@ccaiplatform.com
Contiene lo siguiente:
Subject line
Cuerpo con los metadatos de la sesión en sintaxis JSON
Un archivo adjunto en formato TXT con la transcripción del chat, si corresponde
La plataforma de CCAI esperará 15 minutos después de que finalice la sesión y, luego, enviará el correo electrónico.
Los correos electrónicos solo se envían para las sesiones que se completaron correctamente. No se envía para las sesiones fallidas o abandonadas.
Configuración global
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 Send session outcome via Email.
Ingresa la dirección de correo electrónico a la que quieres que se envíe el mensaje.

Haz clic en Guardar la configuración del CRM personalizado.
Herencia y anulación de la configuración
| Configuración | Comportamiento |
|---|---|
| Global = NO habilitado En cola = NO habilitado |
No se envía para todas las colas. |
| Global = NO habilitado Cola = Habilitado |
La configuración de la cola (es decir, el estado activado o desactivado) anula la configuración global. El correo electrónico se envía desde una cola determinada a una dirección de correo electrónico definida en el parámetro de configuración de la cola. |
| Global = Habilitado Queue = NO habilitado |
La configuración de la cola (dirección de correo electrónico, estado activado o desactivado) hereda la configuración global. El correo electrónico se envía desde una cola determinada a una dirección de correo electrónico definida en la configuración global. |
| Global = Habilitado Cola = Habilitado |
El parámetro de configuración de la cola (dirección de correo electrónico) anula el parámetro de configuración global. El correo electrónico se envía desde una cola determinada a una dirección de correo electrónico definida en el parámetro de configuración de la cola. Si la dirección de correo electrónico está vacía, no se envía el correo electrónico. |
Experiencia del agente
Búsqueda de registros de CRM
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 ventana nueva 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 válida de CCAI Platform con los roles de administrador y agente asignados para la configuración y las pruebas
Un servicio de almacenamiento externo
Estructura de carpetas
La siguiente estructura de carpetas se organizará en tu almacenamiento externo en Ruta de la carpeta:
ujet-chat-transcripts
ujet-media
ujet-metadata
ujet-voice-recordings
ujet-voicemails
Formatos de archivo y convenciones de nomenclatura
Los siguientes tipos de archivos se pueden enviar al servicio de almacenamiento externo. Los archivos se encriptan durante el tránsito con HTTPS:
| Archivo | Nombre |
|---|---|
| Grabaciones de llamadas | - call-{id}.mp3 - call-{id}.wav |
| Archivos multimedia | - call-{id}-photo-{photo-id}.jpg - call-{id}-video-{video-id}.mp4 - chat-{id}-photo-{photo-id}.jpg - chat-{id}-video-{video-id}.mp4 |
| Transcripciones de chats | - chat-{id}.txt |
| Metadatos de la sesión | - call-{id}.json - chat-{id}.json |
Experiencia del agente y del supervisor
Durante la llamada o la sesión de chat, las fotos y los videos que sube el consumidor con las acciones inteligentes se muestran en el adaptador del agente.
Si usas la interacción de CRM con URL personalizada combinada con el método de actualización de correo electrónico del archivo de metadatos de la sesión, los agentes y supervisores pueden acceder a la información de la sesión a través de tu servidor externo.
Configura el servicio de almacenamiento externo
Completa estos pasos para configurar tu almacenamiento externo:
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, Google Cloud bucket.
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 Google Cloud , selecciona la casilla de verificación Ruta de acceso de la carpeta y, luego, ingresa la Google Cloud ruta de acceso de la carpeta.
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 a 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, el almacenamiento externo debe estar habilitado en Configuración > Configuración para desarrolladores > Almacenamiento externo. Activa la opción Habilitar el almacenamiento de información fuera de los servidores del CRM.
Almacenamiento de CRM
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 tanto en el CRM como en el almacenamiento externo.
URLs de almacenamiento externo
La URL de almacenamiento externo se usa en dos lugares:
Es el adaptador del agente.
Informes: Muestra la URL del contenido multimedia en el informe y en los menús, como Configuración, Llamadas y Completadas.
Ve a Configuración > Configuración para desarrolladores > Almacenamiento externo > URLs de almacenamiento externo.
Selecciona las URLs de CRM o de almacenamiento externo de la fuente 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 la CRM no está marcada, las grabaciones se almacenarán solo en el almacenamiento externo y se usará un vínculo a la CRM.
Si la casilla de verificación está marcada, las grabaciones se almacenarán tanto en la CRM como en el almacenamiento externo.
URLs de almacenamiento externo
La URL se usa en dos lugares:
Una muestra los medios en el adaptador de la plataforma de CCAI. El almacenamiento externo o CRM.
La otra está en el informe. Revelamos la URL de los medios en los informes y en los menús, como Configuración, Llamadas y Completadas.
Mostrar CRM personalizado en el portal de CCAI Platform
Cuando usas la integración de CRM personalizada con tu propio CRM personalizado, puedes cargar tu CRM en una página dedicada dentro del portal de CCAI Platform. Una vez habilitada, la pestaña CRM en el portal de CCAI Platform carga y muestra tu página de CRM personalizada. Esto se puede configurar en Developer Settings > CRM.
Esta función permite que los agentes manejen sesiones de asistencia en vivo con los adaptadores de llamadas y chats de CCAI Platform mientras trabajan en tu CRM personalizado. Esto incluye revisar automáticamente los detalles de la cuenta y del registro que aparecen, así como los archivos y los datos específicos de la sesión que se pasan desde tu app para dispositivos móviles o por los consumidores, todo a través del portal de la Plataforma de CCAI.
Configura una página de CRM personalizada
Para configurar una página de CRM personalizada, sigue estos pasos:
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 la fila.
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 genérica de la API de CRM personalizada
El método de integración de la API genérica proporciona la capacidad de usar la API de tu CRM para establecer una conexión bidireccional con CCAI Platform. Este método sin interrupciones tiene la misma sensación que la experiencia de integración de CRM lista para usar.
El agente no tiene que realizar ninguna acción para crear un registro de CRM para las sesiones de llamada o chat. Según la configuración única de la API, puede permitir una búsqueda y actualización de registros sin problemas.
Terminología
Plazo |
Descripción |
Cuenta |
Se usa para hacer referencia a la entidad Cuenta/Contacto/Cliente/Cliente potencial en el CRM. Es posible que tu CRM tenga otro nombre para esta entidad. Las cuentas contienen registros. |
Registro |
Se usa para hacer referencia a la entidad de caso, ticket, conversación o incidente en el CRM. Es posible que tu CRM tenga otro nombre para esta entidad. Los registros pertenecen a las cuentas. |
Comentario |
Se usa para hacer referencia a la entidad Comment/Note en el CRM. Es posible que tu CRM tenga otro nombre para esta entidad. Los comentarios pertenecen a los registros. |
Configuración de la API
En esta sección, se describen los parámetros de configuración específicos de la API de CRM personalizada.
Método de autenticación
CCAI Platform admite tres métodos de autenticación para tu CRM:
Autenticación básica: Configura las credenciales de autenticación que incluyen Nombre de usuario y contraseña.
Encabezado personalizado: Configura pares clave-valor de encabezado personalizados: Clave de campo y Valor de campo. Ingresa tantos pares como necesites.
OAuth: CCAI Platform admite el protocolo estándar de la industria para la autorización de OAuth 2.0. Especifica la información de OAuth si necesitas habilitar la opción "Incluir la URL de redireccionamiento como parte de la URL de autorización y la URL del token".
Configura los siguientes valores:
URL de autorización (obligatoria)
URL del token (obligatoria)
ID de cliente (obligatorio)
Secreto del cliente (obligatorio)
Alcance
Estado
Tipo de acceso
Formato del número de teléfono
Selecciona el formato de número de teléfono que se usará en las solicitudes de CRM:
Automático: Crear: +1 222 333 4444, Buscar: *222*333*4444
E.164: +12223334444
US Local: 2223334444
Estándar local de EE.UU.: (111) 222-3333
Internacional: +1 222 333 4444
Se agotó el tiempo de espera de la solicitud a la API
Configura el tiempo de espera de la solicitud a la API de 1 a 10 segundos con el menú desplegable. Este tiempo de espera se aplicará a todos los extremos que configures.
URLs de búsqueda de CRM
Especifica las URLs de búsqueda que se usarán para dirigir a un agente a la cuenta y el registro actuales.
Ingresa las URLs de búsqueda tal como aparecen en tu CRM cuando tienes una página de cuenta o registro abierta en tu navegador.
También puedes usar URLs de búsqueda de CRM con el SDK web y los SDKs para dispositivos móviles. Puedes configurar los SDK para que busquen información de la cuenta y los registros de CRM para mostrarla en el adaptador del agente. Para obtener una lista completa de las URLs de búsqueda de CRM, consulta Parámetros de la URL de solicitud.
URL de búsqueda de cuentas
Usa la variable {ACCOUNT_ID} para insertar el ID de cuenta real.
Ejemplo:
https://www.example.com/contact/{ACCOUNT_ID}
URL de búsqueda de registros
Usa la variable {RECORD_ID} para insertar el ID de registro real.
Ejemplo:
https://www.example.com/record/{RECORD_ID}
Endpoint de API
Esta es la configuración más importante para la API genérica.
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 Find a record y Create a record para permitir que tus agentes busquen o creen registros. Para ello, se requiere la configuración de la cuenta del paso anterior.
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 por la plataforma de la CCAI para pasar la información requerida (consulta la siguiente tabla). También puedes ingresar texto sin formato o números como valores de los parámetros. Puedes agregar todos los parámetros que necesites.
Si el extremo es POST/PUT/PATCH, CCAI Platform ofrece controles de ajuste más precisos sobre cómo se compila la solicitud. Elige Formato de datos de la solicitud en Propiedad o Contenedor. Especifica el formato del JSON de la solicitud.
Property. Esto indica que el objeto de solicitud es un mapa de propiedades básico cuando CCAI Platform compila el cuerpo de la solicitud a partir de parámetros.
Contenedor. Esto indica que los datos del objeto de solicitud que se enviarán deben estar anidados dentro de una estructura. Elige Tipo de contenedor en Mapa o Matriz. Ingresa el nombre del contenedor. Se usa como el nombre del objeto superior cuando se compila el cuerpo de la solicitud a partir de los parámetros.
Ejemplo: Map: { container_name : { ...parameters } }
Ejemplo: Array: {container_name : [ { ...parameters } ] }
Ingresa la ubicación de los datos de respuesta. Se usa para ubicar el objeto de respuesta de destino en la respuesta JSON.
Parámetros de URL de solicitud
| Parámetro | Variable | Comentario |
|---|---|---|
| ID del agente | {AGENT_ID} |
Es el ID interno del agente. |
| ID personalizado del agente | {AGENT_CUSTOM_ID} |
Es un campo opcional del perfil del usuario. |
| Correo electrónico del agente | {AGENT_EMAIL} |
Es el correo electrónico del agente que responde, si corresponde. |
| Nombre del usuario final | {NAME} |
|
| Nombre del usuario final | {FIRST_NAME} |
Tomado de Name |
| Apellido del usuario final | {LAST_NAME} |
Se toma de Name y, si falta, se establece de forma predeterminada en --. |
| ID externo | {UJET_ID} |
ID de usuario final de CCAI Platform |
| Correo electrónico | {EMAIL} |
|
| Tipo de llamada o de sesión | {SESSION_TYPE} |
|
| Número de teléfono del usuario final | {PHONE_NUMBER} |
Se aplicó el formato según la opción de configuración |
| ID de llamada | {Call_ID} |
Es el ID de la llamada de CCAI Platform. |
| ID del chat | {Chat_ID} |
Es el ID de chat de CCAI Platform. |
| Idioma | {LANG} |
|
| UID personalizado | {CUSTOM_USER_ID} |
En dispositivos móviles, se encuentra en el lado izquierdo del correo electrónico. Por ejemplo, test.user3 de test.user3@test.co |
| ID de cuenta | {ACCOUNT_ID} |
Se encuentra llamando al extremo Find/Create contact. |
| ID de registro | {RECORD_ID} |
Se encontró llamando al extremo de búsqueda o creación de registros. |
| ID de sesión | {SESSION_ID} |
ID de sesión de CCAI Platform |
| Ruta de acceso al menú | {MENU_PATH} |
|
| Número de teléfono saliente | {OUTBOUND_PHONE_NUMBER} |
Se aplica el formato según la opción de configuración. |
| Nombre de la cola | {QUEUE_NAME} |
|
| ID de cola | {QUEUE_ID} |
Es el ID de la cola interna. |
| Nombre del SDK | {SDK_NAME} |
Nombre del usuario final, como se indica en el SDK web o el SDK para dispositivos móviles. |
| Correo electrónico del SDK | {SDK_EMAIL} | Es la dirección de correo electrónico del usuario final, como se indica en el SDK web o el SDK para dispositivos móviles. |
| Teléfono del SDK | {SDK_PHONE} | Es el número de teléfono del usuario final, como se indica en el SDK web o el SDK para dispositivos móviles. |
| Identificador del SDK | {SDK_IDENTIFIER} |
Identifica a un usuario final o una cuenta del SDK para la Web o para dispositivos móviles. No incluyas PII en esta propiedad. Cuando creas una cuenta, este identificador es obligatorio en la solicitud. |
| ID de sesión de SmartAction | {SMART_ACTION_SESSION_ID} |
|
| SmartAction: verification | (Disponible próximamente) | |
| SmartAction: entrada de texto | (Disponible próximamente) | |
| Calificación | {RATING} |
Solo está disponible si un usuario la dejó. |
| Mensaje de comentarios | {FEEDBACK} |
Solo está disponible si un usuario la dejó. |
| Duración de la llamada | {CALL_DURATION} |
En mm:ss |
| Tiempo de espera | {HOLD_TIME} |
En mm:ss |
| Tiempo de espera | {WAIT_TIME} |
En mm:ss |
| Duración del trabajo posterior a la llamada | (Disponible próximamente) | |
| Tipo de dispositivo | {DEVICE_TYPE} |
|
| Desconectado por | {DISCONNECTED_BY} |
|
| Canal | {CHANNEL} |
|
| Asunto del registro | {TICKET_SUBJECT} |
Se usa como título del registro |
| Descripción del registro | {TICKET_DESCRIPTION} |
|
| HTML de la descripción del registro | {TICKET_DESCRIPTION_HTML} |
Es igual a la descripción, pero con formato HTML. |
| Cuerpo del comentario | {COMMENT_BODY} |
Solo está disponible en la situación de agregar un comentario (guardar calificación, finalizar llamada o chat, llamada o chat iniciado) |
| Datos de archivos | {FILE_DATA} |
Solo está disponible en el extremo de carga de archivos, pero contiene la base64 o los datos para el formulario de varias partes. |
Funciones de parámetros de URL de solicitud
Se proporcionan funciones para ayudar con las variables dinámicas de la plataforma de CCAI. Estas funciones solo están disponibles para usarse en la sección Parámetro de solicitud de la configuración del extremo.
El valor resultante creado a partir de una función será una cadena. Si la función no devuelve ningún valor, el parámetro se quita de la lista de parámetros de la solicitud antes de la ejecución.
| Función | Sintaxis de la función | Descripción |
|---|---|---|
| Valor predeterminado | =DEFAULT_VALUE(val1, val2) |
El valor usará val1, a menos que sea nulo o esté vacío, y volverá al valor predeterminado
val2. |
Concatenación Or | =CONCAT_OR(val1, val2,
val3) | Concatenación de varios valores con or. Ejemplo: "val1 or val2 or val3" |
Concatenación And | =CONCAT_AND(val1, val2,
val3) | Concatenación de varios valores con and. Ejemplo: "val1 and val2 and val3" |
Ejemplos
A continuación, se muestran algunos ejemplos de uso de la función de parámetro de URL de solicitud.
Predeterminado
En el siguiente ejemplo, se usa DEFAULT_VALUE en Create a Record Endpoint.
La clave y el valor para la configuración del agente usan la función predeterminada para tener un resguardo en
caso de que el correo electrónico del agente tenga un valor vacío. El correo electrónico del agente puede estar vacío en la creación del registro
por algunos motivos: un cliente puede haber finalizado la llamada de IVR antes de que un
agente asignado responda la llamada entrante o, en el caso de los chats, se creará un registro
antes de que un agente responda. De esta manera, los parámetros obligatorios pueden
establecerse de forma predeterminada en valores seguros hasta que se realicen actualizaciones posteriores o se establezcan en casos de llamadas abandonadas.

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

| Claves presentes | Valor resultante |
|---|---|
ACCOUNT_ID |
(Id:equals:<uuid>) |
ACCOUNT_ID, EMAIL |
(Id:equals:<uuid>) o (Email:equals:kim@example) |
PHONE_NUMBER, EMAIL |
(Phone:equals:+12223334444) o (Email:equals:kim@example) |
Cuenta de API
Los extremos de la cuenta de la API admiten la integración con las cuentas en el CRM.
Las llamadas a extremos que devuelven un error 400 se reintentan. Las llamadas que devuelven otros errores no se reintentan. Los reintentos continúan durante una semana y disminuyen con una reducción exponencial. Para obtener información sobre los flujos de la API, consulta API genérica de CRM personalizada: Flujos.
Encuentra una cuenta por extremo de consulta (anteriormente, extremo de búsqueda de cuentas)
Este extremo se usa para encontrar una cuenta por número de teléfono, correo electrónico o ID de CRM interno. Este es el endpoint predeterminado que se usa para encontrar una cuenta.
Respuesta de ejemplo:
{
"id": 123,
"name": "Kim",
"phone": "11234567890",
"email": "Kim@agents.co"
}
Extremo para buscar una cuenta por ID
Este extremo se usa para encontrar una cuenta por ID. Por lo general, este ID formará parte de la URL. La validación de la URL también tendrá en cuenta si la URL no se forma con el ID, por lo que no se usará este extremo. Esto seguirá los estándares de REST. Si se devuelve un error 404 en una búsqueda fallida, la búsqueda por consulta será la siguiente.
Respuesta de ejemplo:
{
"id": 123,
"name": "Kim",
"phone": "11234567890",
"email": "Kim@agents.co"
}
Crea un extremo de cuenta
Este extremo se usa para crear una cuenta si no encontramos una. La mayoría de los CRM requieren que los registros se adjunten a las cuentas. Para crear un flujo unificado, aplicamos este requisito a todos los CRM.
Registro de API
Los extremos de registros de la API permiten la integración con registros o casos en tu CRM.
Cómo encontrar un registro por consulta (anteriormente, extremo para encontrar un registro)
Este extremo se usa para encontrar un registro según un criterio. Por lo general, se usa para encontrar registros asociados a una cuenta. Si la CCAI Platform está configurada para reutilizar registros existentes, se usará el registro encontrado. Este es el extremo predeterminado que se usa para encontrar un registro.
Respuesta de ejemplo:
{
"id": 456,
"subject": "Record title",
"status": "open", // enumerated status open/closed, or 1,2,3
"contactId": 123, // contact attached to ticket
"phone": "11234567890", // contact phone
}
Crea un extremo de registro
Este extremo se usa para crear un registro. Se crea un registro nuevo si no se encuentra uno en la solicitud de Find a record o si la CCAI Platform está configurada para no reutilizar registros existentes.
Solicitud de ejemplo:
{
"id": 123,
"subject": "Record title",
"description": "A longer description of the record, can be formatted in html",
"phone": "11234567890", // can be saved in multiple formats
"contactId": 123,
"sourceType": "PHONE", // PHONE/CHAT
"menu": "queue1",
"direction": "outgoing",
"rating": 5, // 1-5 scale
"feedback": "the agent was great!" // description of rating
}
Actualiza un extremo de registro
Este extremo se usa para actualizar un registro. Actualiza el título y la descripción del registro. Este extremo también funciona de forma opcional para actualizar el registro según los eventos de la Plataforma de CCAI, como guardar la calificación de CSAT, los eventos de finalización de llamadas o chats, las colas seleccionadas, la verificación de usuarios y otros.
Extremo para subir un archivo
Este extremo se usa para subir un archivo adjunto.
Elige el Tipo para tu extremo de carga.
Formulario codificado en Base64
Formulario de varias partes
Selecciona los archivos que quieres adjuntar
Grabaciones de llamadas
Transcripciones de chat
Mensajes de voz
Fotos
Videos
Archivo de metadatos de la sesión
Elige Tipo de adjunto en ID y URL del adjunto. Especifica el formato del JSON de respuesta.
ID
ID del archivo adjunto. Ingresa la ubicación de un parámetro en la respuesta JSON para el ID del adjunto. Estará disponible para la URL del compilador de archivos adjuntos como {ATTACHMENT_ID}.
Es la URL del Attachment Builder. Ingresa la URL para descargar el archivo adjunto. RECORD_ID y ATTACHMENT_ID son variables disponibles.
Ejemplo:
https://www.example.com/Accounts/{RECORD_ID}/Attachments/{ATTACHMENT_ID}URL del archivo adjunto
Ingresa la ubicación de un parámetro en la respuesta JSON para la URL de descarga del archivo.
Selecciona la casilla de verificación Agregar comentario al registro de la CRM si deseas que CCAI Platform deje un comentario en un registro cuando se suba un archivo. Se respetará el parámetro de configuración de formato de texto del extremo Comment para estos comentarios.
El siguiente ejemplo es un formulario de varias partes que usa POST/PUT/PATCH:
{
"file": <file data>
"id": 123, // optional, this can also just be part of the URL;
// for example https://example-customer.com/upload/record/{RECORD_ID}
}
Respuesta de ejemplo:
Ejemplo A: Existe una URL de descarga
{
"id": 123,
"url": "https://some-hosted-url.com"
}
Ejemplo B
En este caso, no existe una URL de descarga, pero hay un extremo de descarga de archivos adjuntos
que usa este ID. Por ejemplo, https://www.customer-api.com/record/{RECORD_ID}/Attachments/{ATTACHMENT_ID}.
{
"id": 123
}
Extremo de comentarios
Este extremo se usa para agregar un comentario a un registro. Si el extremo está configurado, CCAI Platform agregará comentarios a los registros con los siguientes eventos:
Inicio de la llamada o el chat
Finalización de la llamada o el chat
Calificación y comentario de CSAT
paquete de datos personalizado
transferir comentarios
código de disposición y notas
preguntas y respuestas de la encuesta
Elige Formato de texto para los comentarios. Si la casilla de verificación Convertir texto en HTML está marcada, el texto estará en formato HTML o, de lo contrario, en texto sin formato.
Ejemplo de solicitud, POST/PUT/PATCH:
{
"comment": "Some text",
// string can also be formatted on ujet side as html
"id": 123,
// optional, this can also just be part of the URL;
// for example https://example-customer.com/comment/record/{RECORD_ID}
}
API genérica de CRM personalizada: Flujos
En esta sección, se proporcionan diagramas de flujo para los flujos de la API genérica de CRM personalizada.
Diagramas de flujo básicos

Flujo para buscar o crear una cuenta

Flujo para buscar o crear un registro

Flujo de acciones posteriores a la llamada o el chat

Flujo de actualización de registros

Flujo de comentarios

Flujo de carga de archivos

Adaptadores de agentes
Un CRM personalizado ofrece un método genérico para integrar adaptadores (widgets de IU) en sistemas de CRM. El sistema de CRM debe poder controlar la forma en que se activan y se activan los adaptadores en él.
Por lo general, se necesita un software o una aplicación de CRM para integrar adaptadores de interfaz de usuario. Ya proporcionamos esta capacidad para varios softwares de CRM, como Salesforce, Kustomer, Zendesk y otros.
iframe
Los adaptadores de agentes se pueden integrar sin problemas en un CRM o en cualquier otra herramienta a través de una etiqueta iFrame. Para obtener más información sobre la etiqueta iframe de HTML, consulta HTML iframe Tag.
Sin embargo, el CRM debe controlar cómo se presentan los adaptadores al usuario. Por ejemplo, puede incluir botones de la IU para mostrar y ocultar los adaptadores. Además, los adaptadores se pueden diseñar para que se puedan arrastrar, lo que permite que el agente los vuelva a colocar en la pantalla según su conveniencia. En los siguientes ejemplos, se muestra el formato de URL.
Adaptador de llamadas:
https://tenant.loc.ccaiplatform.com/agent/?type=call&from=custom
Adaptador de chat:
https://tenant.loc.ccaiplatform.com/agent/?type=chat&from=custom
Plantilla de iframe
Adaptador de llamadas:
html
<iframe src="https://tenant.loc.ccaiplatform.com/agent/?type=call&from=custom" allow="microphone; camera; geolocation" width="290" height="600"></iframe>
Adaptador de chat:
html
<iframe src="https://tenant.loc.ccaiplatform.com/agent/?type=chat&from=custom" allow="microphone; camera; geolocation" width="450" height="590"></iframe>
Ten en cuenta lo siguiente cuando incorpores los adaptadores:
El atributo
allowes obligatorio. El adaptador de llamadas usa WebRTC y necesitamicrophone;cameraygeolocationson necesarios para las funciones de compartir pantalla y reconocimiento de la ubicación. Si los permisos no se delegan al iframe, el navegador los bloquea de forma silenciosa y el agente no puede recibir llamadas.Incorpora un adaptador por iframe. Cada adaptador mantiene su propia conexión en tiempo real, por lo que los adaptadores de llamada y chat son dos iframes independientes y publican eventos de forma independiente.
El adaptador detecta que está incorporado porque su ventana principal se encuentra en un origen diferente. Publica la página de host desde tu propio dominio en lugar de hacerlo desde el dominio del arrendatario de la plataforma de CCAI.
Parámetros de URL
Los parámetros de URL se pueden usar para proporcionar información adicional al software, como el tipo de interacción (llamada o chat), la fuente de la interacción (personalizada) y otros detalles pertinentes.
Si el parámetro de configuración de CRM del usuario no está disponible en las listas, el parámetro Desde siempre debe establecerse en Personalizado.
Tipo
- Llamar
- Chat
De
- Personalizado (debe coincidir con el parámetro de configuración del CRM del arrendatario) Siempre debe ser personalizado para cualquier CRM que no esté en las listas. Si no hay una configuración de CRM, puedes omitir este parámetro.
Eventos en adaptadores de agentes
Los adaptadores de agentes publican eventos que el sistema de CRM puede conectar, que luego procesa las actualizaciones en el CRM. Para ello, el CRM debe escuchar los mensajes de la ventana superior y leer los datos de los mensajes. Según los datos, puede activar acciones como abrir una pestaña de ticket para un ID de sesión específico.
Tanto el adaptador de llamadas como el adaptador de chat tienen eventos específicos que se pueden utilizar para mejorar las capacidades del CRM.
Adaptador de llamadas
- Nueva llamada
- Se unió el consumidor
- Se inició la ocultación de la llamada
- Finalizó la ocultación de la llamada
- Finalizar llamada
Adaptador de chat
- Nuevo chat
- Chat activo
- Mensaje entrante de chat
- Mensaje saliente de chat
- Se envió el formulario
- Se completó el formulario
- Finalizar chat
- Chat descartado
Ambos adaptadores
- Acceso del agente
- Se inició la sesión de Compartir pantalla
- Se cambió el control remoto de la sesión de compartir pantalla
- Cambió el dispositivo completo de la sesión de pantalla compartida
- Finalizó la sesión de Compartir pantalla
- Transferir
- Se agregó el grupo
- El agente se conecta a la sesión
- Cierre de sesión del agente
- Se agregó Agent Assist
- Se unió el asistente de tareas virtual
- Se cerró el asistente de tareas virtual
- Variables de sesión de la asistencia para tareas virtual recibidas
- Apertura de registro de CRM
- Abrir la página de terceros
Formato de mensaje
Todos los eventos se envían con la API de window.postMessage() del iframe del adaptador a su ventana principal directa (window.parent). La ventana principal lo recibe como un MessageEvent.
El mensaje tiene las siguientes características:
event.dataes una cadena JSON, no un objeto. Siempre llama aJSON.parse(event.data)antes de leerlo. Dado que otros scripts de la página también pueden usarpostMessage()con cargas útiles que no son JSON, incluye 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 del evento 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); algunos son en minúsculas (call_redaction_started,call_redaction_ended,agent_assist_added) o en formato camelCase (openThirdPartyPage). Compara con las cadenas exactas de este documento.Los eventos solo se publican mientras el adaptador está incorporado (su ventana superior es una ventana diferente). Si el adaptador se abre como una página de nivel superior, no se publica nada.
En el siguiente ejemplo, se muestra un objeto de escucha mínimo que aplica estas reglas:
// Replace with the origin of your tenant.
const ADAPTER_ORIGIN = 'https://tenant.loc.ccaiplatform.com'
window.addEventListener('message', (event) => {
if (event.origin !== ADAPTER_ORIGIN) {
return
}
let message
try {
message = JSON.parse(event.data)
} catch (e) {
// Not an agent adapter event; another script on the page posted it.
return
}
const { type, data = {} } = message
switch (type) {
case 'New_Call':
// data.call_id, data.agent_id, data.queue_id, ...
break
case 'New_Chat':
// data.chat_id, data.agent_id, data.queue_id, ...
break
case 'CRM_Record_Pop':
// data.recordUrl
break
default:
// Ignore event types you don't handle; new types may be added over time.
break
}
}, false)
Mensajes al adaptador del agente
La comunicación es principalmente unidireccional (del adaptador al host), pero la página del host puede enviar un pequeño conjunto de comandos al adaptador de llamadas con postMessage(). Estos mensajes son objetos simples (no cadenas JSON) con el siguiente esquema:
iframe.contentWindow.postMessage({
channel: '<channel name>',
eventType: '<event type>'
}, ADAPTER_ORIGIN)
Los siguientes comandos son compatibles con el canal api:redaction. Se usan para pausar y reanudar la grabación de la redacción de llamadas desde la página del host.
eventType |
Descripción |
|---|---|
start_call_redaction |
Pausa la grabación de la llamada activa para comenzar la ocultación. |
stop_call_redaction |
Reanuda la grabación de la llamada activa para detener la ocultación. |
Ten en cuenta lo siguiente:
Los comandos solo se ejecutan cuando la ocultación de llamadas está habilitada para el arrendatario y hay una llamada activa. De lo contrario, el adaptador registra que se ignoró el mensaje y no hace nada.
Cuando el adaptador actúa según el comando, publica el evento
call_redaction_startedocall_redaction_endedcorrespondiente 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 para eventos
call_id: Es un identificador de una llamada entrante de voz con IVR (respuesta de voz interactiva).chat_id: Es un identificador de una llamada entrante de mensajería (chat web o móvil).cobrowse_session_id: Es un identificador de una sesión de compartir pantalla. Se puede iniciar una sesión de Compartir pantalla en una llamada o sesión de chat.session_type: Es el tipo de sesión, como voz, chat o mensajería.va_data_parameters: Son todas las variables configuradas en la cola para enviarlas al agente virtual. Esto solo es obligatorio para los eventos que involucran al agente virtual. Es opcional.session_variable: Son todas las variables del agente virtual que se envían a la plataforma de CCAI en la carga útil. Es opcional.custom_sip_headers: Esto permite que los encabezados SIP personalizados de las llamadas SIP entrantes aparezcan en el registro de eventos POST. Solo es obligatorio si se usan encabezados SIP personalizados. Es opcional.custom_data_secured: Contiene datos personalizados firmados de tu servidor. Es opcional.custom_data_not_secured: Contiene datos personalizados sin firma de tu página web. Para obtener más información, consulta Datos personalizados sin firma del chat. Es opcional.
IDs de agentes
agent_id: Es un identificador para un agente.from_agent_id: Se usa cuando se enrutan llamadas o chats de un agente a otro para indicar el agente de origen.to_agent_id: Se usa cuando se enrutan llamadas o chats de un agente a otro para indicar el agente de destino.agent_custom_id: Es un ID de agente del perfil de usuario, si se ingresó en el perfil. Es opcional.from_agent_custom_id: Se usa cuando se enrutan llamadas o chats de un agente a otro para indicar el agente de origen.to_agent_custom_id: Se usa cuando se enrutan llamadas o chats de un agente a otro para indicar el agente de destino.agent_email: Es la dirección de correo electrónico del agente.from_agent_email: Se usa cuando se enrutan llamadas o chats de un agente a otro para indicar el agente de origen.to_agent_email: Se usa cuando se enrutan llamadas o chats de un agente a otro para indicar el agente de destino.
IDs de agentes virtuales
virtual_agent_id: Es el número de ID asignado a un agente virtual específico.
IDs de colas
queue_id: Es el identificador de una cola de CCAI Platform y solo existe cuando la llamada se origina en una cola.from_queue_id: Se usa cuando se enrutan llamadas o chats de una fila a otra para indicar la fila de origen.to_queue_id: Se usa cuando se enrutan llamadas o chats de una cola a otra para indicar la cola de destino.queue_path: Es la ruta de acceso de una cola de CCAI Platform y solo existe cuando la llamada se origina en una cola.from_queue_path: Se usa cuando se enrutan llamadas o chats de una fila a otra para indicar la fila de origen.to_queue_path: Se usa cuando se enrutan llamadas o chats de una cola a otra para indicar la cola de destino.
Campaign ID
campaign_id: Es el ID de la campaña de CCAI Platform. Solo se incluyen si el tipo de llamada es una llamada de campaña.campaign_name: Es el nombre de una campaña de CCAI Platform. Solo se incluyen si el tipo de llamada es una llamada de campaña.
Mensaje
message: Evento que indica que se recibió un mensaje nuevo del consumidor, además del contenido del mensaje.
Tipos de sesiones
session_type: un tipo de sesión de CCAI Platform.cobrowse_session_remote_control: Indica el estado de una sesión de Compartir pantalla de control remoto solicitada. Valores:off,requested,rejected,on.cobrowse_session_full_device: Indica el estado de una sesión de compartir pantalla completa del dispositivo. Valores:off,requested,rejected,on.
Participantes
type: Es el tipo de participante,end_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
- Entrada de voz: Llamadas de RTC estándar.
- Llamadas de voz entrantes (IVR con dispositivos móviles): Son las llamadas de resguardo a la PSTN que se realizan desde el SDK para dispositivos móviles.
- Llamadas de voz entrantes (dispositivos móviles): Las realizan los consumidores con un SDK para dispositivos móviles instalado.
- Devolución de llamada de voz (Web): Se inicia desde el SDK web.
- Voz entrante (API): Se inicia con la API.
- Voz programada (dispositivos móviles): Se programa con un SDK para dispositivos móviles instalado.
- Programada por voz (web): Se programó con un SDK web instalado.
- Llamada saliente de voz: La inicia un agente marcando un número.
- Voz saliente (API): Se inicia con la API.
- Campaña de voz: Se inicia con un marcador saliente (campaña).
Tipos de chat
- Mensajería (WhatsApp): Se inicia con WhatsApp.
- Mensajería entrante (SMS)
- Mensajería saliente (SMS)
- Mensajería saliente (SMS con la API)
- Mensajería (Web): Se inicia con un SDK web instalado.
- Mensajería (dispositivos móviles): Se inicia con un SDK para dispositivos móviles instalado.
Tipo de llamada o chat
- Sesión de Compartir pantalla: La inicia un agente o un usuario final durante una llamada o un chat.
Tipos de eventos
Estos son los tipos de eventos que publica el adaptador del agente. La columna type contiene la cadena exacta que distingue mayúsculas de minúsculas y que aparece en el campo type del mensaje.
Tu objeto de escucha debería ignorar los valores de type que no reconozca. Se pueden agregar tipos de eventos nuevos
con el tiempo, y el adaptador también publica mensajes destinados a otras
plataformas de CCAI Platform (por ejemplo, cuando se aloja dentro del
escritorio del agente de CCAI Platform) que no forman parte de este contrato.
Acceso del agente
Un evento de acceso del agente se produce cuando el agente accede al adaptador.
Este es un ejemplo de un evento Agent_Login:
{
"type": "Agent_Login",
"data": {
"agent_id": 1,
"agent_custom_id": "007",
"agent_email": "Kim@example.com",
}
}
A continuación, se incluyen las descripciones de los campos de datos del evento:
agent_id: Es el identificador del agente.Opcional:
agent_custom_id: Es el identificador personalizado del agente, si se ingresó en su perfil.agent_email: Es la dirección de correo electrónico asociada a la cuenta del agente.
Nueva llamada
Se produce un evento de llamada nuevo cuando un agente responde una llamada. Este evento contiene información como cuándo comenzó la llamada, qué agente la manejó y dónde se originó.
A continuación, se muestra un ejemplo de un evento New_Call:
{
"type": "New_Call",
"data": {
"agent_id": 1,
"agent_custom_id": "007",
"agent_email": "Kim@example.com",
"queue_id": 8469,
"queue_path": "Developers / Kim",
"campaign_id": 1432,
"campaign_name": "Survey Movie",
"call_id": 103646,
"session_type": "Voice Campaign (UJET)"
}
}
A continuación, se incluyen descripciones de los campos de datos de eventos:
agent_id: Es el identificador del agente.agent_custom_id: Es el identificador personalizado del agente, si se ingresó en su perfil. Es opcional.agent_email: Es la dirección de correo electrónico asociada a la cuenta del agente.queue_id: Es el identificador de la fila de la que se originó la llamada. Este campo se incluye cuando la llamada se originó en una cola. Es opcional.queue_path: Es la ruta de acceso de la fila de la que se originó la llamada. Este campo se incluye cuando la llamada se originó en una cola. Es opcional.campaign_id: Es el identificador de la campaña. Este campo se incluye para una llamada de campaña. Es opcional.campaign_name: Es el nombre de la campaña. Este campo se incluye en una llamada de campaña. Es opcional.call_id: Es el identificador de la llamada.session_type: Es el tipo de sesión.virtual_agent_id: Es el identificador del agente virtual. Este campo se incluye para los eventos que involucran al agente virtual. Es opcional.va_data_parameters: Son las variables configuradas en la cola para enviar al agente virtual. Este campo se incluye para los eventos que involucran al agente virtual. Es opcional.session_variable: Son todas las variables del agente virtual que se envían a Contact Center AI Platform. Es opcional.custom_sip_headers: Habilita los encabezados personalizados del protocolo de inicio de sesión (SIP) de las llamadas SIP entrantes para que aparezcan en el registro de eventos POST. Este campo se incluye si se usan encabezados SIP personalizados. Es opcional.custom_data_secured: Contiene datos personalizados firmados de tu servidor. Es opcional.custom_data_not_secured: Contiene datos personalizados sin firma de tu página web. Para obtener más información, consulta Datos personalizados sin firma del chat. Es opcional.
Se unió el consumidor
Un evento de unión de consumidor se produce en una llamada de campaña (marcador saliente) cuando se resuelve el registro del consumidor y este lleva una clave de administrador de campañas de lista (LCM). Permite que la página de host busque el contacto marcado en su propio sistema antes de que llegue el resto de los datos de la llamada. Este evento solo se publica para las llamadas de campañas cuyos contactos tienen una clave de LCM.
A continuación, se muestra un ejemplo de un evento Consumer_Joined:
{
"type": "Consumer_Joined",
"data": {
"lcmKey": "acqueon:12345",
"custom_sip_headers": {
"X-Account-Id": "A-100"
},
"va_data_parameters": {
"param1": "one"
},
"session_variable": {
"key_one": "value"
}
}
}
A continuación, se incluyen descripciones de los campos de datos de eventos:
lcmKey: Es la clave del administrador de campañas de la lista del contacto al que se llamó.custom_sip_headers: Son los encabezados SIP personalizados de la llamada. Este campo se incluye si se usan encabezados SIP personalizados. Es opcional.va_data_parameters: Son las variables configuradas en la cola para enviar al agente virtual. Es opcional.session_variable: Son las variables del agente virtual que se envían a Contact Center AI Platform. Es opcional.
Se inició la ocultación de la llamada
Se produce un evento de inicio de ocultamiento de llamada cuando se inicia el ocultamiento de una llamada y no se está grabando. Los datos del evento constan del ID del agente que atendió la llamada y el ID de la llamada.
Ten en cuenta que el type de este evento está en minúsculas: call_redaction_started.
agent_id: Es el ID del agente que atendió la llamada.call_id: Es el ID de la llamada.
Este es un ejemplo de un evento de inicio de ocultamiento de llamadas:
{
"type": "call_redaction_started",
"data": {
"agent_id": 2896,
"call_id": 97939
}
}
Se detuvo la ocultación de la llamada
El evento de detención de la ocultación de llamadas se produce cuando finaliza la ocultación de una llamada y se reanuda la grabación. Este evento consta del ID del agente que atendió la llamada y el call ID.
Ten en cuenta que el type de este evento está en minúsculas: call_redaction_ended.
agent_id: Es elIDdel agente que manejó la llamada.call_id: Es elIDde la llamada.
A continuación, se muestra un ejemplo de datos de eventos de detención de la ocultación de llamadas:
{
"type": "call_redaction_ended",
"data": {
"agent_id": 2896,
"call_id": 97939
}
}
Finalizar llamada
Un evento de finalización de llamada se produce cuando se finaliza una llamada. Este evento contiene información, como cuándo finalizó la llamada, qué agente la atendió y dónde se originó.
Este es un ejemplo de un evento End_Call:
{
"type": "End_Call",
"data": {
"agent_id": 1,
"agent_custom_id": "007",
"agent_email": "Kim@example.com",
"queue_id": 8469,
"queue_path": "Developers / Kim",
"campaign_id": 1432,
"campaign_name": "Survey Movie",
"call_id": 103646,
"session_type": "Voice Campaign (UJET)"
}
}
A continuación, se incluyen las descripciones de los campos de datos del evento:
agent_id: Es el identificador del agente.agent_custom_id: Es el identificador personalizado del agente, si se ingresó en su perfil. Es opcional.agent_email: Es la dirección de correo electrónico asociada a la cuenta del agente.queue_id: Es el identificador de la fila de la que se originó la llamada. Este campo se incluye cuando la llamada se originó en una cola. Es opcional.queue_path: Es la ruta de acceso de la fila de la que se originó la llamada. Este campo se incluye cuando la llamada se originó en una cola. Es opcional.campaign_id: Es el identificador de la campaña. Este campo se incluye para una llamada de campaña. Es opcional.campaign_name: Es el nombre de la campaña. Este campo se incluye en una llamada de campaña. Es opcional.call_id: Es el identificador de la llamada.session_type: Es el tipo de sesión.virtual_agent_id: Es el identificador del agente virtual. Este campo se incluye para los eventos que involucran al agente virtual. Es opcional.va_data_parameters: Son las variables configuradas en la cola para enviar al agente virtual. Este campo se incluye para los eventos que involucran al agente virtual. Es opcional.session_variable: Son todas las variables del agente virtual que se envían a Contact Center AI Platform. Es opcional.custom_sip_headers: Habilita los encabezados personalizados del protocolo de inicio de sesión (SIP) de las llamadas SIP entrantes para que aparezcan en el registro de eventos POST. Este campo se incluye si se usan encabezados SIP personalizados. Es opcional.custom_data_secured: Contiene datos personalizados firmados de tu servidor. Es opcional.custom_data_not_secured: Contiene datos personalizados sin firma de tu página web. Para obtener más información, consulta Datos personalizados sin firma del chat (opcional). Es opcional.
Nuevo chat
Se produce un evento de chat nuevo cuando un agente toma una sesión de chat. Este evento indica cuándo comenzó el chat y contiene información, como qué agente controló el chat en el que se originó.
A continuación, se incluye un ejemplo de un evento New_chat:
{
"type": "New_Chat",
"data": {
"chat_id": 73522,
"session_type": "messaging inbound (web chat)",
"agent_id": 1,
"agent_email": "ariel@example.com",
"queue_id": 7678,
"queue_path": "HB TEAM / Ariel"
}
}
A continuación, se incluyen las descripciones de los campos de datos de eventos:
chat_id: Es el identificador del chat.session_type: Es el tipo de sesión.agent_id: Es el identificador del agente.agent_custom_id: Es el identificador personalizado del agente, si se ingresó en su perfil. Es opcional.agent_email: Es la dirección de correo electrónico asociada a la cuenta del agente.queue_id: Es el identificador de la cola desde la que se originó la llamada. Este campo se incluye cuando la llamada se originó en una cola. Es opcional.queue_path: Es la ruta de acceso de la cola desde la que se originó la llamada. Este campo se incluye cuando la llamada se originó en una cola. Es opcional.custom_data_secured: Contiene datos personalizados firmados de tu servidor. Es opcional.custom_data_not_secured: Contiene datos personalizados sin firma de tu página web. Para obtener más información, consulta Chat unsigned custom data (opcional). Es opcional.
Finalizar chat
Se produce un evento de finalización del chat cuando finaliza una sesión de chat. Este evento indica cuándo finalizó el chat y contiene información, como qué agente controló el chat en el que se originó.
Este es un ejemplo de un evento End_Chat:
{
"type": "End_Chat",
"data": {
"chat_id": 73522,
"session_type": "Messaging Inbound (Web Chat)",
"agent_id": 1,
"agent_email": "ariel@example.com",
"queue_id": null,
"queue_path": null,
"agent_custom_id": null
}
}
A continuación, se incluyen las descripciones de los campos de datos del evento:
chat_id: Es el identificador del chat.session_type: Es el tipo de sesión.agent_id: Es el identificador del agente.agent_custom_id: Es el identificador personalizado del agente, si se ingresó en su perfil. Es opcional.agent_email: Es la dirección de correo electrónico asociada a la cuenta del agente.queue_id: Es el identificador de la cola desde la que se originó la llamada. Este campo se incluye cuando la llamada se originó en una cola. Es opcional.queue_path: Es la ruta de acceso de la cola desde la que se originó la llamada. Este campo se incluye cuando la llamada se originó en una cola. Es opcional.custom_data_secured: Contiene datos personalizados firmados de tu servidor. Es opcional.custom_data_not_secured: Contiene datos personalizados sin firma de tu página web. Para obtener más información, consulta Chat unsigned custom data (opcional). Es opcional.
Chat activo
Se produce un evento de chat activo cuando el agente cambia a una pestaña de chat en el adaptador de chat.
A continuación, se incluye un ejemplo de un evento Active_Chat:
{
"type": "Active_Chat",
"data": {
"chat_id": 73521,
"session_type": "messaging inbound (web chat)",
"agent_id": 1,
"agent_email": "ariel@example.com",
"queue_id": 7678,
"queue_path": "HB TEAM / Ariel"
}
}
A continuación, se incluyen las descripciones de los campos de datos de eventos:
chat_id: Es el identificador del chat.session_type: Es el tipo de sesión.agent_id: Es el identificador del agente.agent_custom_id: Es el identificador personalizado del agente, si se ingresó en su perfil. Es opcional.agent_email: Es la dirección de correo electrónico asociada a la cuenta del agente.queue_id: Es el identificador de la cola desde la que se originó la llamada. Este campo se incluye cuando la llamada se originó en una cola. Es opcional.queue_path: Es la ruta de acceso de la cola desde la que se originó la llamada. Este campo se incluye cuando la llamada se originó en una cola. Es opcional.custom_data_secured: Contiene datos personalizados firmados de tu servidor. Es opcional.custom_data_not_secured: Contiene datos personalizados sin firma de tu página web. Para obtener más información, consulta Datos personalizados sin firma del chat (opcional). Es opcional.
Mensaje entrante de chat
Un evento de mensaje entrante de chat indica que se recibió un mensaje nuevo del cliente. Incluye el contenido del mensaje.
Los datos de los siguientes campos se informan para un evento de mensaje entrante de chat:
chat_id: Identifica la sesión de chat.session_type: Indica el tipo de sesión que se está creando, como mensajería entrante a través del chat web.agent_id: Identifica al agente que maneja la sesión de chat.agent_custom_id: Este campo solo existe si el perfil del agente incluye un ID personalizado. Es opcional.agent_email: Es la dirección de correo electrónico del agente que administra la sesión de chat. Este campo solo se incluye cuando el chat se origina en una cola. Es opcional.queue_id: Es el ID de la fila de la que se originó la sesión de chat. Este campo se incluye solo cuando el chat se origina en una cola.queue_path: Es la ruta de acceso de la fila de la que se originó la sesión de chat. Este campo solo se incluye cuando el chat se origina en una cola.message: Es un evento que indica que se recibió un mensaje nuevo del consumidor, además del contenido del mensaje.custom_data_secured: Permite la transmisión de datos personalizados del SDK protegidos. Es opcional.custom_data_not_secured: Permite la transmisión de datos personalizados del SDK no protegidos. Es opcional.
Este es un ejemplo de un evento Chat_Inbound_Message:
{
"type": "Chat_Inbound_Message",
"data": {
"chat_id": 73522,
"session_type": "messaging inbound (web chat)",
"agent_id": 1,
"agent_email": "ariel@example.com",
"queue_id": 7678,
"queue_path": "HB TEAM / Ariel",
"message" : "Can you help me with my order tracking number?"
}
}
Mensaje saliente de chat
Se produce un evento de mensaje saliente de chat cuando se recibe un mensaje nuevo del cliente. Incluye el contenido del mensaje.
Los datos de los siguientes campos se informan para un evento de mensaje saliente de chat:
chat_id: Identifica la sesión de chat.session_type: Indica el tipo de sesión que se está creando, como mensajería entrante a través del chat web.agent_id: Identifica al agente que maneja la sesión de chat.agent_custom_id: Este campo solo se incluye si el perfil del agente tiene un ID personalizado. Es opcional.agent_email: Es la dirección de correo electrónico del agente que administra la sesión de chat. Este campo solo se incluye cuando el chat se origina en una cola. Es opcional.queue_id: Es el ID de la fila de la que se originó la sesión de chat. Este campo solo se incluye cuando el chat se origina en una cola.queue_path: Es la ruta de acceso de la cola desde la que se originó la sesión de chat. Este campo solo se incluye cuando el chat se origina en una cola.El evento
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 seguros. Es opcional.
Este es un ejemplo de un evento Chat_Outbound_Message:
{
"type": "Chat_Outbound_Message",
"data": {
"chat_id": 73522,
"session_type": "messaging inbound (web chat)",
"agent_id": 1,
"agent_email": "ariel@example.com",
"queue_id": 7678,
"queue_path": "HB TEAM / Ariel",
"message" : "Please give me a moment to look up your account information"
}
}
Se envió el formulario
Se produce un evento de formulario enviado cuando se envía un formulario al consumidor durante una sesión de chat. El adaptador de chat publica ambos eventos cuando el chat recibe el mensaje del sistema correspondiente.
Este es un ejemplo de un evento Form_Sent:
{
"type": "Form_Sent",
"data": {
"chat_id": 73522,
"session_type": "Messaging Inbound (Web Chat)",
"agent_id": 1,
"agent_custom_id": "007",
"agent_email": "Kim@example.com",
"end_user_id": 5512,
"form_external_id": "payment-details",
"form_name": "Payment details",
"form_type": "secure",
"queue_id": 7678,
"queue_path": "HB TEAM / Kim",
"queue_language_id": "en",
"timestamp": 1727853575000
}
}
A continuación, se incluyen las descripciones de los campos de datos de eventos:
chat_id: Es el identificador del chat.session_type: Es el tipo de sesión.agent_id: Es el identificador del agente.agent_custom_id: Es el identificador personalizado del agente, si se ingresó en su perfil. Es opcional.agent_email: Es la dirección de correo electrónico asociada a la cuenta del agente.end_user_id: Es el identificador del consumidor en el chat. Es opcional.form_external_id: Es el identificador externo del formulario que se envió. Es opcional.form_name: Es el nombre del formulario que se envió. Es opcional.form_type: Es el tipo de formulario que se envió. Es opcional.queue_id: Es el identificador de la fila de la que se originó el chat. Este campo se incluye cuando el chat se originó en una cola. Es opcional.queue_path: Es la ruta de acceso de la fila de la que se originó el chat. Este campo se incluye cuando el chat se originó en una cola. Es opcional.queue_language_id: Es el idioma de la cola. Es opcional.timestamp: Es la hora en que se publicó el evento, en milisegundos desde el tiempo Unix.va_data_parameters: Son las variables configuradas en la cola para enviar al agente virtual. Es opcional.session_variable: Todas las variables del agente virtual que se envían a Contact Center AI Platform. Es opcional.custom_data_secured: Contiene datos personalizados firmados de tu servidor. Es opcional.custom_data_not_secured: Contiene datos personalizados sin firma de tu página web. Para obtener más información, consulta Datos personalizados sin firma del chat. Es opcional.
Se completó el formulario
Se produce un evento de formulario completado cuando el consumidor envía un formulario que se envió durante una sesión de chat. Los datos del evento tienen los mismos campos que el evento Form sent.
A continuación, se muestra un ejemplo de un evento Form_Completed:
{
"type": "Form_Completed",
"data": {
"chat_id": 73522,
"session_type": "Messaging Inbound (Web Chat)",
"agent_id": 1,
"agent_custom_id": "007",
"agent_email": "Kim@example.com",
"end_user_id": 5512,
"form_external_id": "payment-details",
"form_name": "Payment details",
"form_type": "secure",
"queue_id": 7678,
"queue_path": "HB TEAM / Kim",
"queue_language_id": "en",
"timestamp": 1727853601000
}
}
Chat descartado
Un evento de chat descartado se produce cuando el agente cierra la pestaña de chat en el adaptador de chat.
Este es un ejemplo de un evento Dismissed_Chat:
{
"type":"Dismissed_Chat",
"data":{"chat_id":73522,
"session_type":"Messaging Inbound (Web Chat)",
"agent_id":1,
"agent_email":"ariel@example.com"
}
}
A continuación, se incluyen descripciones de los campos de datos de eventos:
chat_id: Es el identificador del chat.session_type: Es el tipo de sesión.agent_id: Es el identificador del agente.agent_custom_id: Es el identificador personalizado del agente, si se ingresó en su perfil. Es opcional.agent_email: Es la dirección de correo electrónico asociada a la cuenta del agente.queue_id: Es el identificador de la fila de la que se originó la llamada. Este campo se incluye cuando la llamada se originó en una cola. Es opcional.queue_path: Es la ruta de acceso de la cola desde la que se originó la llamada. Este campo se incluye cuando la llamada se originó en una cola. Es opcional.custom_data_secured: Contiene datos personalizados firmados de tu servidor. Es opcional.custom_data_not_secured: Contiene datos personalizados sin firma de tu página web. Para obtener más información, consulta Chat unsigned custom data (opcional). Es opcional.
Se inició la sesión de compartir pantalla
Se produce un evento Screen Share session started cuando un agente o un usuario final inician una sesión de uso compartido de pantalla. Las sesiones de Compartir pantalla se pueden iniciar durante una llamada o un chat. Para obtener más información, consulta Compartir pantalla.
Este es un ejemplo de un objeto JSON para un evento de inicio de sesión de uso compartido de pantalla:
{
"type": "Cobrowse_Session_Started",
"data": {
"agent_id": 5,
"chat_id": 791,
"cobrowse_session_id": "Y1zYY6XIYX4oapqpEz3qHw",
"cobrowse_session_requested_by": "agent",
"cobrowse_session_remote_control": "off",
"cobrowse_session_full_device": "off"
}
}
A continuación, se incluyen descripciones de los campos de datos de eventos:
agent_id: Es el identificador del agente.call_id: Es el identificador de una llamada entrante en el canal de IVR (respuesta de voz interactiva). Este campo se incluye si la sesión de Compartir pantalla se inició durante una llamada.chat_id: Es el identificador de un chat entrante en el canal web o móvil. Este campo se incluye si la sesión de Compartir pantalla se inició durante un chat.cobrowse_session_id: Es el identificador de una sesión de uso compartido de pantalla.cobrowse_session_requested_by: Indica quién inició una sesión de Compartir pantalla. Los valores 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.
Se cambió el control remoto de la sesión de uso compartido de pantalla
Se produce un evento de cambio de control remoto de la sesión de compartir pantalla cuando cambia el estado de una sesión de compartir pantalla de control remoto. Este evento indica el estado de la sesión de control remoto de Compartir pantalla. Para obtener más información, consulta Uso compartido de pantalla.
Este es un ejemplo de un objeto JSON para un evento Cobrowse_Session_Remote_Control_Changed:
{
"type": "Cobrowse_Session_Remote_Control_Changed",
"data": {
"agent_id": 5,
"chat_id": 791,
"cobrowse_session_id": "Y1zYY6XIYX4oapqpEz3qHw",
"cobrowse_session_remote_control": "requested"
}
}
A continuación, se incluyen las descripciones de los campos de datos del evento:
agent_id: Es el identificador del agente.call_id: Es el identificador de una llamada entrante en el canal de IVR (respuesta de voz interactiva). Este campo se incluye si la sesión de Compartir pantalla se inició durante una llamada.chat_id: Es el identificador de un chat entrante en el canal web o móvil. Este campo se incluye si la sesión de Compartir pantalla se inició durante un chat.cobrowse_session_id: Es el identificador de una sesión de compartir pantalla.cobrowse_session_remote_control: Indica el estado de una sesión de compartir pantalla con control remoto. Los valores 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 Chat unsigned custom data (opcional). Es opcional.
Cambió la sesión de compartir pantalla de todo el dispositivo
Se produce un evento de cambio de estado de la sesión de uso compartido de pantalla de todo el dispositivo cuando cambia el estado de una sesión de uso compartido de pantalla de todo el dispositivo. Este evento indica el estado de la sesión de uso compartido de pantalla completa del dispositivo. Para obtener más información, consulta Compartir pantalla.
A continuación, se incluye un ejemplo de un evento Cobrowse_Session_Full_Device_Changed:
{
"type": "Cobrowse_Session_Full_Device_Changed",
"data": {
"agent_id": 5,
"cobrowse_session_id": "9-Kshrag-gn6ZSuIxoMtWQ",
"cobrowse_session_full_device": "rejected"
}
}
A continuación, se incluyen descripciones de los campos de datos de eventos:
agent_id: Es el identificador del agente.call_id: Es el identificador de una llamada entrante en el canal de IVR (respuesta de voz interactiva). Este campo se incluye si la sesión de Compartir pantalla se inició durante una llamada.chat_id: Es el identificador de un chat entrante en el canal web o móvil. Este campo se incluye si la sesión de compartir pantalla se inició durante un chat.Cobrowse_session_id: Es el identificador de una sesión de uso compartido de pantalla.Cobrowse_session_full_device: Indica el estado de una sesión de compartir pantalla completa del dispositivo. Los valores 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 Chat unsigned custom data (opcional). Es opcional.
Finalizó la sesión de compartir pantalla
Un evento de inicio de sesión de compartir pantalla se produce cuando un agente, un usuario final o la API finalizan una sesión de compartir pantalla. Para obtener más información, consulta Cómo configurar la función de compartir pantalla.
A continuación, se incluye un ejemplo de un evento Cobrowse_Session_Ended:
{
"type": "Cobrowse_Session_Ended",
"data": {
"agent_id": 5,
"cobrowse_session_id": "9-Kshrag-gn6ZSuIxoMtWQ",
"cobrowse_session_requested_by": "end_user",
"cobrowse_session_ended_by": "agent",
"cobrowse_session_remote_control": "on",
"cobrowse_session_full_device": "rejected"
}
}
A continuación, se incluyen las descripciones de los campos de datos del evento:
agent_id: Es el identificador del agente.call_id: Es el identificador de una llamada entrante en el canal de IVR (respuesta de voz interactiva). Este campo se incluye si la sesión de Compartir pantalla se inició durante una llamada.chat_id: Es el identificador de un chat entrante en el canal web o móvil. Este campo se incluye si la sesión de compartir pantalla se inició durante un chat.cobrowse_session_id: Es el identificador de una sesión de compartir pantalla.cobrowse_session_ended_by: Indica quién finalizó la sesión de Compartir pantalla. Los valores 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 Chat unsigned custom data (opcional). Es opcional.
Transferir
Se produce un evento de transferencia cuando se transfiere una llamada o un chat. Puede referirse a una transferencia con introducción o directa.
Los siguientes campos de evento forman parte de un evento de transferencia.
chat_idocall_id: Identifica la sesión de llamada o chat.session_type: Indica el tipo de sesión que se está creando, como una sesión de mensajería entrante a través del chat web.campaign_id: Es el ID de la campaña. Este campo solo está presente si el tipo de llamada es una llamada de campaña. Es opcional.campaign_name: Es el nombre de la campaña. Este campo solo está presente si el tipo de llamada es una llamada de campaña. Es opcional.from_agent_id: Se usa cuando se enrutan llamadas o chats de un agente a otro para indicar el agente de origen.from_agent_custom_id: Se usa cuando se enrutan llamadas o chats de un agente a otro para indicar el agente de origen. Es opcional.from_agent_email: Se usa cuando se enrutan llamadas o chats de un agente a otro para indicar el agente de origen.to_agent_id: Se usa cuando se enrutan llamadas o chats de un agente a otro para indicar el agente de destino.to_agent_custom_id: Se usa cuando se enrutan llamadas o chats de un agente a otro para indicar el agente de destino. Es opcional.to_agent_email: Se usa cuando se enrutan llamadas o chats de un agente a otro para indicar el agente de destino.from_queue_id: Se usa cuando se enrutan llamadas o chats de una cola a otra para indicar la cola de origen.from_queue_path: Se usa cuando se enrutan llamadas o chats de una fila a otra para indicar la fila de origen.to_queue_id: Se usa cuando se enrutan llamadas o chats de una cola a otra para indicar la cola de destino.to_queue_path: Se usa cuando se enrutan llamadas o chats de una fila a otra para indicar la fila de destino.virtual_agent_id: Es el ID asignado a un agente virtual. Es opcional.va_data_parameters: Son todas las variables configuradas en la cola para enviar al agente virtual. Esto solo es necesario para los eventos que involucran al agente virtual. Es opcional.(
session_variable: Todas las variables del agente virtual que se envían a la plataforma de CCAI en la carga útil. Es opcional.custom_sip_headers: Permite que los encabezados SIP personalizados de las llamadas SIP entrantes aparezcan en el registro de eventos POST. Solo es obligatorio si se usan encabezados SIP personalizados. Es opcional.custom_data_secured: Permite la transmisión de datos personalizados protegidos del SDK. Es opcional.custom_data_not_secured: Permite la transmisión de datos personalizados del SDK no protegidos. Es opcional.
A continuación, se incluye un ejemplo de un evento de transferencia:
{
"type": "Transfer_Chat",
"data": {
"chat_id": 103646,
"session_type": "Messaging Inbound (SMS)",
"campaign_id": 1432,
"campaign_name": "Survey Movie",
"from_agent_id": 1,
"from_agent_custom_id": "007",
"from_agent_email": "Ira@example.com",
"to_agent_id" : 5
"to_agent_custom_id": "100"
"to_agent_email" : "ariel@example.com"
"from_queue_id": 8469,
"from_queue_path": "Developers / Ariel",
"to_queue_id" : 1234,
"to_queue_path" : "Schemes / Auric"
}
}
Se agregó el grupo
Un evento de parte agregada se refiere a cualquier transferencia. Puede ser una transferencia de llamada o de chat.
Un evento de grupo agregado contiene los siguientes datos:
chat_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 del chat web.agent_custom_id: Este campo solo existe si el perfil del agente incluye un ID personalizado. Es opcional.agent_email: Es la dirección de correo electrónico del agente que maneja la llamada o la sesión de chat.queue_id: Es el ID de la fila de la que se originó la sesión de chat. Este campo solo se incluye cuando el chat se origina en una cola. Es opcional.queue_path: Es la ruta de acceso de la cola desde la que se originó la sesión de chat. Este campo solo se incluye cuando el chat se origina en una cola. Es opcional.campaign_id: Es el ID de la campaña. Este campo solo se incluye cuando el tipo de llamada es una llamada de campaña. Es opcional.campaign_name: Es el nombre de la campaña. Este campo solo se incluye cuando el tipo de llamada es una llamada de campaña. Es opcional.type: el tipo de participante, por ejemplo, un usuario final o un agente. Este campo se devuelve como parte de participants.type de la respuesta/api/v1/callso/api/v1/chatsend_user_id: Es el end_user_id. Este campo se devuelve como parte de la respuesta de/api/v1/callso/api/v1/chats. Este campo solo está presente en las llamadas o los chats de usuarios finales que se enrutan de un agente a otro para indicar el agente de destino. Es opcional.virtual_agent_id: Es el identificador asignado a un agente virtual. Es opcional.va_data_parameters: Son todas las variables configuradas en la cola para enviar al agente virtual. Esto solo es obligatorio para los eventos que involucran al agente virtual. Es opcional.session_variable: Son todas las variables del agente virtual que se envían a CCAI Platform en la carga útil. Es opcional.custom_sip_headers: Permite que los encabezados SIP personalizados de las llamadas SIP entrantes aparezcan en el registro de eventos POST. Solo es obligatorio si se usan encabezados SIP personalizados. Es opcional.custom_data_secured: Permite la transmisión de datos personalizados protegidos del SDK. Es opcional.custom_data_not_secured: Permite la transmisión de datos personalizados del SDK no seguros. Es opcional.
Este es un ejemplo de un evento Party_Added.
{
"type": "Party_Added",
"data": {
"chat_id": 103646,
"session_type": "Messaging Inbound (SMS)",
"campaign_id": 1432,
"campaign_name": "Survey Movie",
"agent_id": 1,
"agent_custom_id": "007",
"agent_email": "ariel@example.com",
"queue_id": 8469,
"queue_path": "Developers / Ariel",
"type" : "agent"
}
}
El agente se conecta a la sesión
Un evento de conexión de agente a sesión ocurre cuando un agente se conecta a una sesión. Existen dos tipos diferentes de eventos. El tipo se determina según si es una llamada o un chat.
Los siguientes campos de evento forman parte de un evento de conexión del agente a la sesión.
agent_id: Identifica al agente que controla la llamada o la sesión de chat.agent_email: Es la dirección de correo electrónico del agente que maneja la llamada o la sesión de chat.agent_custom_id: Este campo solo existe si el perfil del agente incluye un ID personalizado. Es opcional.chat_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 solo se incluye cuando el chat se origina en una fila. Es opcional.queue_path: Es la ruta de acceso de la cola desde la que se originó la sesión de chat. Este campo solo se incluye cuando el chat se origina en una cola. Es opcional.session_type: Indica el tipo de sesión que se está creando, como un mensaje entrante a través del chat web.virtual_agent_id: Es el ID asignado a un agente virtual. Es opcional.va_data_parameters: Son todas las variables configuradas en la cola para enviarlas al agente virtual. Esto solo es obligatorio para los eventos que involucran al agente virtual. Es opcional.session_variable: Son todas las variables del agente virtual que se envían a UJET en la carga útil. Es opcional.custom_sip_headers: Permite que los encabezados SIP personalizados de las llamadas SIP entrantes aparezcan en el registro de eventos POST. Solo es obligatorio si se usan encabezados SIP personalizados. Es opcional.custom_data_secured: Permite la transmisión de datos personalizados protegidos del SDK. Es opcional.custom_data_not_secured: Permite la transmisión de datos personalizados del SDK no protegidos. Es opcional.
Este es un ejemplo de datos de eventos de Agent_Joined_Chat:
{
"type": "Agent_Joined_Chat",
"data": {
"chat_id": 103646,
"campaign_id": 1432,
"campaign_name": "Survey Movie",
"agent_id": 1,
"agent_custom_id": "007",
"agent_email": "ariel@example.com",
"queue_id": 8469,
"queue_path": "Developers / Ariel",
"session_type": "Messaging Inbound (SMS)",
}
}
Cierre de sesión del agente
Un evento de salida del agente se produce cuando un agente sale del adaptador del agente.
Los siguientes campos de evento forman parte de un evento Agent_Logout.
agent_id: Es el identificador del agente que accedió.agent_email: Es la dirección de correo electrónico asociada con la cuenta del agente.agent_custom_id: Es el ID personalizado del agente, si se ingresó en su perfil. Es opcional.
A continuación, se incluye un ejemplo de un evento Agent_Logout:
{
"type": "Agent_Logout",
"data": {
"agent_id": 1,
"agent_custom_id": "007",
"agent_email": "ariel@example.com",
}
}
Se agregó Agent Assist
Se produce un evento de Agent Assist agregado cuando un agente activa Agent Assist durante una sesión de chat o llamada.
Ten en cuenta lo siguiente sobre este evento:
El
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 fila. Es opcional.agent_id: Es el identificador del agente.session_id: Es el identificador de la sesión. Es opcional.queue_language_id: Es el idioma de la cola. Es opcional.Timestamp: la hora en que se publicó el evento, en milisegundos desde el tiempo Unix
Se unió el asistente de tareas virtual
Un evento de unión de un asistente de asistencia para tareas virtual se produce cuando un asistente de asistencia para tareas virtual (VTA) se une a una llamada o sesión de chat.
A continuación, se incluye un ejemplo de un evento Task_VA_Joined:
{
"type": "Task_VA_Joined",
"data": {
"chat_id": 103646,
"campaign_id": 1432,
"campaign_name": "Survey Movie",
"virtual_agent_id": 1,
"virtual_agent_name": "Order status assistant",
"participant_id": 1,
"queue_id": 8469,
"queue_path": "Developers / Kim",
"queue_language_id": "en",
"session_type": "Messaging Inbound (SMS)",
"conversation_id": "12345",
"session_id": "78534G4RT4284",
"timestamp": 1727853575000,
"data_parameters": {
"param1": "one",
"param2": "two"
}
}
}
Estos son los campos del evento:
call_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 en una llamada de campaña. Es opcional.virtual_agent_id: Es el identificador de la VTA.virtual_agent_name: Es el nombre del VTA como se configuró en el portal de CCAI Platform.participant_id: Es el identificador del participante del VTA en la sesión.queue_id: Es el identificador de la cola de la que se originó la sesión. Es opcional.queue_path: Es la ruta de acceso de la fila de la que se originó la sesión. Es opcional.queue_language_id: Es el idioma de la cola. Es opcional.session_type: Es el tipo de sesión.conversation_id: Es el identificador de la conversación. Este campo se incluye cuando la sesión usa un perfil de conversación. Es opcional.session_id: Es el identificador de la sesión. Es opcional.timestamp: Es la hora en que se publicó el evento, en milisegundos desde el tiempo Unix.data_parameters: Son las variables configuradas en el portal de CCAI Platform y enviadas al VTA. Es opcional.
Se cerró el asistente de tareas virtual
Se produce un evento de salida del asistente virtual de tareas cuando el VTA abandona la sesión. Además de los campos del evento Asistente de tareas virtual unido, incluye el motivo por el que finalizó la sesión del VTA y las variables de sesión que capturó el VTA.
A continuación, se incluye un ejemplo de un evento Task_VA_Left:
{
"type": "Task_VA_Left",
"data": {
"chat_id": 103646,
"virtual_agent_id": 1,
"virtual_agent_name": "Order status assistant",
"participant_id": 1,
"queue_id": 8469,
"queue_path": "Developers / Kim",
"queue_language_id": "en",
"session_type": "Messaging Inbound (SMS)",
"conversation_id": "12345",
"session_id": "78534G4RT4284",
"timestamp": 1727853600000,
"finish_reason": "Task VA completed",
"data_parameters": {
"param1": "one"
},
"captured_variables": [
{
"intent_name": null,
"variables": {
"order_number": "A-100"
},
"captured_at": "2024-11-15 16:46:31 UTC",
"timestamp": 1727853590000
}
]
}
}
Los campos de evento adicionales son los siguientes:
finish_reason: Es el motivo por el que finalizó la sesión de VTA.captured_variables: Son las variables de sesión que capturó el VTA, cada una con el intent que las capturó y el momento en que se capturaron. Es opcional.
Variables de sesión de la asistencia para tareas virtual recibidas
Se produce un evento de variables de sesión de asistencia para tareas virtuales recibidas cada vez que el ATV envía una carga útil de variables de sesión personalizadas durante la sesión. El evento tiene
los mismos campos que el evento Asistente de tareas virtual abandonó,
excepto finish_reason, y captured_variables contiene las variables recibidas
hasta el momento.
Este es un ejemplo de un evento Task_VA_Variables_Received:
{
"type": "Task_VA_Variables_Received",
"data": {
"chat_id": 103646,
"virtual_agent_id": 1,
"virtual_agent_name": "Order status assistant",
"participant_id": 1,
"queue_id": 8469,
"queue_path": "Developers / Kim",
"queue_language_id": "en",
"session_type": "Messaging Inbound (SMS)",
"conversation_id": "12345",
"session_id": "78534G4RT4284",
"timestamp": 1727853590000,
"data_parameters": {
"param1": "one"
},
"captured_variables": [
{
"intent_name": null,
"variables": {
"order_number": "A-100"
},
"captured_at": "2024-11-15 16:46:31 UTC",
"timestamp": 1727853590000
}
]
}
}
Solo se incluyen las variables cuyo capture_type incluye event en la carga útil de la variable de sesión personalizada del agente virtual, y se excluyen las claves que se indican en invisible_to_adapter_events.
Ventana emergente en segundo plano
La función de ventana emergente permite que los agentes abran una ventana emergente de CRM en segundo plano, lo que significa que la información del cliente se muestra en la pantalla del agente sin que este deba realizar ninguna acción. Esto proporciona una experiencia más fluida para los consumidores y reduce el tiempo de procesamiento para los agentes.
Apertura de registro de CRM
El evento, CRM_Record_Pop, es un evento del servidor que se activa cuando se debe mostrar un ticket. Este evento incluye un parámetro llamado recordUrl que contiene la URL del registro de CRM, lo que te permite realizar una ventana emergente de pantalla suscribiéndote a eventos POST si usas adaptadores incorporados.
Este es un ejemplo de un evento CRM_Record_Pop:
{
"type": "CRM_Record_Pop",
"data": {
"recordUrl": "https://crm.example.com/tickets/4711"
}
}
El evento tiene un solo campo:
recordUrl: La URL del registro del CRM que se mostrará
Para lograrlo, en el siguiente ejemplo, se muestra cómo agregar un objeto de escucha de eventos que escuche los mensajes enviados desde otro marco o ventana. Este fragmento de código está diseñado para habilitar la comunicación entre diferentes marcos o ventanas, y permitir actualizaciones dinámicas del contenido que se muestra en el iframe según los mensajes recibidos.
// Replace with the origin of your tenant.
const ADAPTER_ORIGIN = 'https://tenant.loc.ccaiplatform.com'
// name is the html property of the iframe that shows the CRM record
const iframeTarget = document.querySelector('iframe[name="target_iframe_adapter"]')
// example usage of add event listener
// https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
window.addEventListener('message', (e) => {
// Only accept events posted by the agent adapter.
if (e.origin !== ADAPTER_ORIGIN) {
return
}
let message
try {
message = JSON.parse(e.data)
} catch (err) {
// Not an agent adapter event.
return
}
const { type, data = {} } = message
console.log('EventListener: ', type)
switch (type) {
case 'CRM_Record_Pop': {
const recordUrl = data.recordUrl
if (!recordUrl) {
return
}
console.log(`Opening recordUrl in iframe ${iframeTarget.getAttribute('name')}`)
// changing an iframe target to the record URL pop
iframeTarget.src = recordUrl
break
}
case 'New_Chat':
console.log('Chat started...')
// handling here for New_Chat events
break
case 'End_Chat':
console.log('Chat ended...')
// handling here for End_Chat events
break
default:
// code handling for other types
break
}
}, false)
Abrir la página de terceros
El adaptador de llamadas publica el evento openThirdPartyPage cuando una llamada lleva una clave de terceros (por ejemplo, una clave de administrador de campañas de lista en una llamada de campaña) y el adaptador está a punto de abrir la página de terceros coincidente. Si usas adaptadores incorporados, puedes suscribirte a este evento para abrir la página en tu propia IU.
Este es un ejemplo de un evento openThirdPartyPage:
{
"type": "openThirdPartyPage",
"data": {
"thirdPartyKey": "acqueon:12345",
"callId": 103646
}
}
Estos son los campos del evento:
thirdPartyKey: Es la clave de terceros asociada con la llamada.callId: Es el identificador de la llamada.