Contact Center AI Platform (CCAI Platform) se integra con el CRM de ServiceNow.
Configuración para desarrolladores de ServiceNow
Requisitos mínimos preferidos de la versión de ServiceNow: Tokyo patch 1
Configura un usuario de autenticación básica
Es probable que la cuenta de administrador de ServiceNow tenga habilitada la verificación en 2 pasos y esté asociada a ese usuario. Por lo tanto, no se puede usar para obtener acceso de administrador en CCAI Platform. Para ello, debes crear una cuenta de usuario en ServiceNow.
Crea un usuario básico con credenciales:
Ve a Usuario > Nuevo.
Completa los detalles y selecciona Solo acceso a servicios web.
Anota el ID de usuario y la contraseña.
Roles obligatorios en ServiceNow
Los roles predeterminados en ServiceNow están preconfigurados para proporcionar acceso y permisos específicos dentro de la plataforma. Los administradores pueden crear y configurar roles que otorgan permisos específicos, los cuales rigen lo que pueden hacer los usuarios y los grupos con ese rol.
Para realizar esta integración, debes tener los siguientes roles en ServiceNow:
user_admin: Este rol está diseñado para los administradores que necesitan administrar usuarios, grupos, ubicaciones y empresas dentro de la instancia de ServiceNow.
sn_incident_read: Este rol proporciona acceso de solo lectura a la aplicación de administración de incidentes y sus funciones relacionadas. Permite a los usuarios ver registros de incidentes.
sn_incident_write: Este rol otorga acceso de escritura a la aplicación de administración de incidentes y sus funciones relacionadas, lo que permite a los usuarios crear y modificar registros de incidentes.
personalize_dictionary: Este rol permite personalizar las entradas y las etiquetas del diccionario para satisfacer requisitos comerciales específicos.
function_field_admin: Este rol está destinado a los usuarios que necesitan crear, editar y ver campos de funciones específicamente en el diseñador de informes. No proporciona la capacidad de crear o borrar campos de funciones de la lista o el formulario de la plataforma.
Configura vistas de instancias
En las siguientes secciones, se describen los cambios de configuración necesarios para las vistas de instancias.
(Opcional) Agrega favoritos
Los favoritos son una forma rápida de encontrar los vínculos que usas con más frecuencia en la instancia de ServiceNow. Para agregar un favorito, selecciona el ícono de estrella junto a un campo en el panel de navegación. Si deseas filtrar el panel del navegador más adelante para ver solo tus favoritos, puedes seleccionar el ícono de estrella que se encuentra directamente debajo del campo del navegador de filtros en el panel del navegador.
Ejemplos de Favoritos útiles:
- Incidentes: Asociaciones a registros para el CRM personalizado.
- Usuarios: Son las asociaciones a cuentas para el CRM personalizado.
- Explorador de la API de REST: Es una buena forma de probar la API.
Cómo agregar campos personalizados de forma manual
Selecciona el ícono de expansión (3 líneas horizontales) en la esquina superior izquierda dentro de la vista de objeto que deseas cambiar. Puedes hacerlo en la vista de autoservicio o en la vista predeterminada.
En el menú, selecciona Configurar > Diseño de formulario para abrir el diseñador de formularios.
En la columna de la izquierda, selecciona la pestaña Tipos de campos.
Arrastra el tipo de campo personalizado que deseas agregar.
Una vez que sueltes el tipo de campo en la sección que desees, selecciona el ícono de ajustes para ver la Configuración.
Dentro de la ventana, cambia la etiqueta y toma nota del nombre. El nombre es el que usas en la configuración de la app de CCAI Platform.
Selecciona Guardar en la esquina superior derecha de la pantalla.
Cómo asignar datos de la sesión al CRM
Debes asignar los datos de sesión adecuados desde CCAIP con Dialogflow y usar los siguientes parámetros:
Datos del agente virtual
{
"ujet": {
"session_variable": {
"capture_target": "payload",
"payload": {
"value_one": "$session.params.payload_value_one"
};
"capture_type": [ "comment", "field" ] // optional, default of ["comment"]
}
}
}
Metadatos
https://INSTANCE.service-now.com/api/now/table/sys_dictionary?sysparm_query=name%3Dsys_user https://INSTANCE.service-now.com/api/now/table/sys_dictionary?sysparm_query=name%3Dincident
Etiqueta: column_label
Clave de API: element
Los campos personalizados están al mismo nivel que los campos estándar en la respuesta de sys_user o incident.
Cómo subir un archivo de CCAI Platform al CRM
https://INSTANCE_URL.service-now.com/api/now/attachment/upload
Método: POST
Formato de los datos de la solicitud: property
Ubicación de los datos de respuesta: data.result
Tipo: Multi-part form
Tipo de archivo adjunto: Attachment Url
URL del archivo adjunto: download_link
Parámetros: table below
Ejemplo de solicitud:
{
file: FILE_DATA,
table_name: incident,
table_sys_id: RECORD_ID
}
Integra adaptadores de agentes (formularios personalizados)
En los siguientes pasos, se explica el proceso para habilitar los adaptadores de agentes y la función Click to Call en la instancia de ServiceNow.
Instala y configura OpenFrame
Navega a All > System Applications > All Available Applications > All.
Busca OpenFrame.
Instala OpenFrame.
Una vez instalado, navega a All > OpenFrame > Configurations.
Crea una configuración con una URL. Si tienes varias configuraciones en una instancia de ServiceNow, es posible que tu usuario no tenga acceso a una configuración recién creada. Verifica tus grupos y la lista de órdenes de configuración de OpenFrame para determinar qué configuración usa tu usuario.
Escribe
sys_properties.listen la búsqueda.Editar
glide.ui.concourse.onmessage_enforce_same_origin_whitelist.Agrega la URL nueva a la lista de valores.
Editar
sn_openframe.cross.origin.access.Agrega
autoplaya la lista de valores.
Habilita la próxima experiencia de IU para los usuarios
Escribe
sys_properties.listen la barra de navegación y haz clic en Intro.Establece la propiedad del sistema
glide.ui.polaris.experienceen true.Establece la preferencia del usuario
glide.ui.polaris.useen false para el sistema.Establece la preferencia del usuario
glide.ui.polaris.useen true para un usuario. (Puedes crear una fila de preferencias del usuario).
Actualiza las propiedades del sistema
Ingresa
sys_properties.listen la barra de navegación y haz clic en Intro.Editar
glide.ui.concourse.onmessage_enforce_same_origin_whitelist.Agrega la URL a la lista de valores. Los valores múltiples deben estar separados por comas.
Editar
sn_openframe.cross.origin.access.Agrega la reproducción automática a la lista de valores.
Editar
glide.ui.polaris.experience.Cambia a false, ya que algunas funciones no funcionan si están habilitadas.
Agrega la función Llamar con un clic en la parte superior del formulario
Navega a System UI > UI Actions.
Selecciona Create New Action.
En el formulario, como se ilustra, selecciona la tabla de la que formará parte este Click to Call.

En el caso de los formularios con una referencia a un contacto o usuario, usa la API de
g_form.getReferencepara acceder al número de teléfono del usuario. En el caso de las tablas personalizadas, es posible que el ID de referencia y los atributos resultantes difieran. La comunicación con la plataforma de la CCAI será la misma, por lo que la carga útil y la estructura de datos deben seguir siendo idénticas a las siguientes:function clickToDial() { var user = g_form.getReference('caller_id',function(res) { var phone = res.phone || res.mobile_phone; var payload = {"name": "clicktodial", "number": phone}; var data = {"payload": payload, "method": "openframe_communication" }; CustomEvent.fireAll("openframe_request", data); }); }Para los formularios que tienen un número dentro del formulario al que se puede llamar, usa la API de
g_form.getValuepara recuperar los valores pertinentes. Este es un ejemplo de la acción de IU para la tabla Usuarios. En el caso de las tablas personalizadas, los nombres de los campos del formulario pueden variar. La comunicación con la plataforma de la CCAI será la misma, por lo que la carga útil y la estructura de datos deben seguir siendo idénticas a las siguientes:function clickToDial() { var phone = g_form.getValue('phone') || g_form.getValue('mobile_phone'); var payload = {"name": "clicktodial", "number": phone}; var context = {"payload": payload, "method" : "openframe_communication" }; CustomEvent.fireAll("openframe_request", context); }
Agrega la opción de Llamar por clic junto a las referencias
El botón de llamada junto a las referencias a los contactos debe editarse dentro del formulario. Haz clic con el botón derecho en el campo y navega a Configurar diccionario. Para los atributos, agrega el valor
show_phoneoshow_phone_customer_serviceal valorref_contributions.En UI Macros, edita
show_phoneyshow_phone_customer_service.Reemplaza lo siguiente:
Anterior:
var task = {"entity": p.attr('data-task-table'), "query" :"sys_id="+p.attr('data-task-id')+"$[AMP]sysparm_view="+p.attr('data-task-view'),"value":p.attr('data-task-value'),"label":p.attr('data-task-label')};
var company = {"entity": p.attr('data-company-table'),"query":"sys_id="+p.attr('data-company-id')+"$[AMP]sysparm_view="+p.attr('data-task-view'),"value":p.attr('data-company-value'),"label":p.attr('data-company-label')};
var caller = {"entity": p.attr('data-caller-table'),"query": "sys_id="+p.attr('data-caller-id')+"$[AMP]sysparm_view="+p.attr('data-task-view'),"value":p.attr('data-caller-value'),"label":p.attr('data-caller-label')};
var callContext = [];
callContext.push(task);
callContext.push(company);
callContext.push(caller);
var metaData = {"phoneNumber":p.attr('data-caller-phone'),"taskId":p.attr('data-task-id')};
var data = {"metaData":metaData , "data": callContext};
var payload = {"type": "OUTGOING_CALL", "data" : data};
var createInteractionData ={};
createInteractionData.interactionSysId = -1;
createInteractionData.direction = 'outbound';
createInteractionData.context_document = p.attr('data-task-id');
createInteractionData.context_table = p.attr('data-task-table');
createInteractionData.account = p.attr('data-company-id');
if(p.attr('data-caller-table') === 'customer_contact')
createInteractionData.contact = p.attr('data-caller-id');
createInteractionData.opened_for = p.attr('data-caller-id');
var ga = new GlideAjax('sn_openframe.OpenFrameAjaxUtility');
ga.addParam('sysparm_name', 'createInteractionWithPropertyCheck');
ga.addParam('context', JSON.stringify(createInteractionData));
ga.getXML(function(serverResponse) {
var result = serverResponse.responseXML.getElementsByTagName("result");
var output = JSON.parse(result[0].getAttribute("data"));
if(output.status == "success"){
var interaction = {"entity": "interaction", "query" :"sys_id="+output.fields.interactionSysId, "value":output.fields.number, "label":"Interaction", "display":false};
payload.data.data.push(interaction);
}
var context = {"payload": payload, "method" : "openframe_communication" };
jslog("context with interaction : "+ JSON.stringify(context));
CustomEvent.fireAll("openframe_request", context);
});
Nuevo:
var phone = p.attr('data-caller-phone')
var payload = {"name": "clicktodial", "number": phone};
var data = {"payload": payload, "method": "openframe_communication" };
CustomEvent.fireAll("openframe_request", data);
Configuración de CRM
En los siguientes pasos, se ilustra cómo conectar la API a ServiceNow con el portal de la plataforma de CCAI.
En el portal de la CCAI Platform, navega a Settings > Developer Settings > CRM.
En la sección Plataforma del agente, selecciona ServiceNow.
Ingresa la información de tu dominio de ServiceNow en el campo Dominio de ServiceNow. Puede ser una instancia de desarrollador o de proveedor según sea necesario, pero es una correlación directa con la instancia y es la primera parte de la URL en la dirección web del portal de ServiceNow:
https://{your instance}.servicenow.com.En el campo Selección de la nube de ServiceNow, selecciona
Incidentpara un tipo de ticket básico. Si seleccionasCustom, aparecerán opciones adicionales. Los incidentes son extensiones de la tabla de tareas, y los objetos personalizados deben ser extensiones de los incidentes.En los campos Credenciales de autenticación, ingresa tu nombre de usuario y contraseña.
Si seleccionaste
Incidentpara el tipo de campo Selección de Cloud, verás los siguientes campos:- Lookup Account Object incluye tres campos desplegables:
Object Type,Phone Number lookup fieldsyPhone number primary field.
- Lookup Account Object incluye tres campos desplegables:
Si seleccionaste
Custompara el tipo de campo Selección de Cloud, verás los siguientes campos:- Objeto de registro de búsqueda:
- Tipo de objeto de registro base: Selecciona un tipo de tabla
taskoincident. - Tipo de objeto de registro: Este campo se completará con datos si se extendió una tabla de incidentes, y puedes seleccionarlo si es necesario.
- Tipo de objeto de registro base: Selecciona un tipo de tabla
- Lookup Account Object incluye tres campos desplegables:
Object Type,Phone Number lookup fieldsyPhone number primary field.
- Objeto de registro de búsqueda:
Campos de ID de usuario personalizados: Marca esta casilla si deseas habilitar campos de búsqueda de usuarios personalizados para las sesiones del SDK para dispositivos móviles o del SDK web.
Formato de número de teléfono: Te permite seleccionar el formato que deseas usar para mostrar los números de teléfono.
Archivo de metadatos de la sesión: Marca esta casilla para adjuntar metadatos de la sesión a los registros del CRM.
Haz clic en Guardar para guardar tus selecciones. Si marcaste la casilla Campos de ID de usuario personalizados, tendrás la opción de crear campos personalizados para los registros. Esto agregará pestañas de campos personalizados en la parte inferior de cada incidente de ServiceNow, debajo de las secciones de código de resolución y notas de resolución de la página.
Campos personalizados para registros
Estos son campos personalizados que ya se crearon para la instancia de ServiceNow en el diseñador de formularios. En la documentación de ServiceNow, en la sección Configuración del CRM de ServiceNow, sección Cómo agregar campos personalizados de forma manual, encontrarás instrucciones para crear otros campos personalizados.
| Campo | Tipo | Definición |
|---|---|---|
u_ujet_custom_field_after_call_work |
String | Duración del trabajo después de la llamada |
u_ujet_custom_field_call_duration |
String | Duración de la llamada |
u_ujet_custom_field_comm_id |
Número entero | ID de llamada o chat, según el tipo de contacto |
u_ujet_custom_field_rating |
Número entero | Puntuación de Satisfacción del cliente (CSAT) |
u_ujet_custom_field_email_via_web |
String | Se envió un correo electrónico desde la Web |
u_ujet_custom_field_feedback |
String | Comentarios |
u_ujet_custom_field_from_phone_number |
String | Número de teléfono de la persona que llama |
u_ujet_custom_field_hold_duration |
String | Tiempo total de espera |
u_ujet_custom_field_menu_path |
String | Selección de menú |
u_ujet_custom_field_queue_name |
String | Nombre de la tarea en cola |
u_ujet_custom_field_session_type |
String | Tipo de sesión |
u_ujet_custom_field_verification |
Verdadero o falso | Confirma que se completó la verificación |
u_ujet_custom_field_wait_time |
String | Tiempo total de espera |
Configura OAuth
Para configurar OAuth, sigue los pasos para crear una aplicación de OAuth en ServiceNow. Luego, ingresa las credenciales (ID de cliente de OAuth y secreto de cliente de OAuth) en Configuración del desarrollador > CRM > Método de autenticación.
Crea una aplicación de OAuth en ServiceNow
En tu cuenta de ServiceNow, navega a All > System OAuth > Application Registry.
Crea una aplicación de OAuth y selecciona Crear un extremo de API de OAuth para clientes externos.
Configura los siguientes campos:
Nombre: Ingresa un nombre único.
ID de cliente: El servidor de OAuth de ServiceNow genera automáticamente el ID de cliente.
Secreto del cliente: Es el secreto del cliente de la aplicación de OAuth. Déjalo vacío para que se genere automáticamente.
Duración del token de actualización: Es el tiempo, en segundos, durante el que el token de actualización será válido.
Duración del token de acceso: Es el tiempo, en segundos, durante el que el token de acceso será válido.
URL de redireccionamiento: Ingresa la URL de tu entorno más el subdirectorio. Por ejemplo:
https://servicenow.yourcompany.co/v1/servicenow/oauth_callbackEnforce Token Restriction: Restringe el uso del token de acceso a las APIs definidas en las políticas de acceso a la API de REST que se encuentran en la documentación de ServiceNow. Si desmarcas esta opción, se permitirá el uso del token de acceso en otras APIs de REST.
Haz clic en Enviar.
Después de crear la aplicación, vuelve al registro y recupera el ID de cliente y el secreto del cliente recién creado.
Actualiza la configuración en la configuración para desarrolladores
Navega a Configuración para desarrolladores > CRM.
Asegúrate de que la configuración se haya ingresado y establecido según los pasos anteriores.
En el método de autenticación, haz clic en OAuth.
Ingresa el ID de cliente y el secreto del cliente de OAuth. (Consulta el paso 5 anterior).
Haz clic en Guardar.
Haz clic en Vincular credenciales.
Asignación de campos personalizados para el agente virtual
Si usas Virtual Agent, configura este campo en la pantalla Asignaciones de campos personalizados. Esto permite que las variables del agente virtual se transfieran de la carga útil de la sesión del agente virtual a ServiceNow. Los nombres de las variables pueden ser cualquier cadena. Las etiquetas de los campos que se indican aquí son un ejemplo.
En la pantalla Custom Field Mappings, configura la conexión entre las variables creadas por las definiciones de carga útil que usaste en la configuración inicial del agente virtual y la variable pertinente dentro de ServiceNow.
| Título de la asignación de campos | Etiqueta del campo de CRM | Etiqueta de campo de datos personalizada |
|---|---|---|
| Comentarios sobre el agente virtual | ccaip_custom_field_incident_feedback |
va_feedback |
Configura otros parámetros
Encontrarás los demás parámetros de configuración que te permitirán integrar correctamente la plataforma de CCAI en tu instancia de ServiceNow en el menú desplegable Configuración. Consulta los vínculos de la siguiente lista para obtener más información sobre la configuración de cada sección.
- Idiomas y mensajes
- Usuarios y equipos
- Agente virtual
- Campañas
- Encuestas
- Colas
- Llamadas
- Chat
- SMS
- Administración de consumidores
- Configuración para desarrolladores
Resultados de la prueba
Ahora puedes verificar la funcionalidad de tus flujos de llamadas y chats haciendo clic en los botones correspondientes en la parte superior de la pantalla del portal de CCAI Platform. Es importante que te asegures de que el bloqueador de ventanas emergentes esté inhabilitado cuando ejecutes esta prueba.
Deberías ver que se creó un incidente en ServiceNow, con el contacto de la llamada o el chat que aparece en la sección Actividades del incidente. Esto debería aparecer como una nota de trabajo, en lugar de un comentario del incidente, para que los clientes no vean esta actividad de backend.
La descripción del caso se completará automáticamente con "Llamada con CCAI Platform" o "Chat con CCAI Platform", y es posible que los agentes deban actualizarla.
Una vez que estés conforme con los resultados de tu llamada o chat, puedes ingresar un código y una nota de resolución (si se configuraron los campos de código y notas de resolución de ServiceNow) y, luego, cerrar el caso.
Para verificar que el caso se cerró, es posible que debas hacer clic en el botón de navegación back de tu navegador. Se espera que, en la instancia de ServiceNow, después de resolver el caso, este se cierre automáticamente y se te dirija a la página de registro del cliente.