Integrar Webex Contact Center con ServiceNow (versión 1: Legacy)

list-menu¿Comentarios?
Cuando integra Webex Contact Center con la consola de ServiceNow CRM, puede iniciar Webex Contact Center Desktop desde ServiceNow.

Prerrequisitos

El tamaño mínimo admitido para la interfaz softphone es 500px. Cualquier valor inferior a 500px puede dar lugar a problemas de visualización o funcionalidad.

Antes de integrar Webex Contact Center con la consola de ServiceNow CRM, asegúrese de tener lo siguiente:

Siga uno de los dos métodos siguientes:

  • Para las instancias de desarrollador, se recomienda seguir los pasos que se indican en la guía de instancias de desarrollador.
  • Si posee una instancia con licencia empresarial, siga las pautas para las instancias con licencia empresarial.

No recomendamos mezclar la aplicación con licencia empresarial con instancias de sandbox para desarrolladores.

Los canales digitales como chat y correo electrónico no son compatibles con los conectores CRM. Esto se aplica a todas las integraciones de CRM que utilizan estos conectores. Por favor, planifique sus flujos de trabajo de implementación y participación del cliente en consecuencia.

En las siguientes secciones se describen los pasos para instalar el conector de ServiceNow para instancias de desarrollador.

1

Inicie sesión en su cuenta del portal de desarrolladores de ServiceNow y abra la consola de administración.

2

En el área Mi instancia del menú Cuenta, haga clic en Iniciar construcción.

ServiceNow developer portal screenshot with ‘Start Building’ button highlighted.

3

En su instancia de desarrollador, en el campo Navegador de filtros en la parte superior izquierda de la ventana, vaya a Plugins.

ServiceNow developer instance showing a search for ‘plugins’ filter navigator.

4

Busque el complemento Openframe que tiene el título Openframe. Puede que necesite desplazarse por la lista.

ServiceNow developer instance on the Applications screen, showing the search and results for ‘OpenFrame.’

5

Haga clic en Instalar para instalar el complemento Openframe.

6

En el cuadro de diálogo Activar complemento, haga clic en Activar.

ServiceNow developer instance showing OpenFrame plugin popup with the ‘Activate’ button highlighted.

7

Cuando se complete la activación del complemento, haga clic en Cerrar y recargar formulario en el cuadro de diálogo Activación del complemento.

ServiceNow developer instance showing OpenFrame plugin activation loading.

ServiceNow developer instance showing OpenFrame plugin activation success window with the ‘Close & Reload Form’ button highlighted.

8

Para verificar la activación del complemento, en el campo Navegador de filtros en la parte superior izquierda de la ventana, vaya a OpenFrame.

9

Haga clic en Configuraciones y asegúrese de que el complemento OpenFrame aparezca en la lista Configuraciones de OpenFrame.

ServiceNow developer instance showing OpenFrame Configurations in the filter navigator search.

1

Descargue el archivo XML más reciente del conjunto de actualizaciones del sistema disponible en el repo de github en esta ubicación: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.

Nombre de Archivo: WebExcc-ServiceOw-Update-SETV (X) .xml

Github repo screenshot for Webex Contact Center CRM integrations – ServiceNow.

2

En su instancia de ServiceNow, en el campo Navegador de filtros en la parte superior izquierda de la ventana, vaya a Conjuntos de actualización del sistema > Conjuntos de actualización para confirmar.

ServiceNow developer instance showing a search in the filter navigator on the ‘All’ tab for ‘Update set’ and ‘Update Sets to Commit’ option highlighted.

3

Haga clic en el enlace Importar conjunto de actualizaciones desde XML.

ServiceNow developer instance on the Update Sets results page with ‘Related Links: Import Update Set from XML’ highlighted.

4

Haga clic en Elegir archivo, seleccione el archivo XML del conjunto de actualizaciones del sistema y, a continuación, haga clic en Cargar.

ServiceNow developer instance import XML screen.

ServiceNow developer portal retrieved update sets list.

El conjunto de actualizaciones aparece en la lista Conjuntos de actualizaciones recuperados y está en el estado Cargado.
5

En la lista Conjuntos de actualizaciones recuperados, haga clic en el nombre de archivo del conjunto de actualizaciones (vínculo) para abrir el conjunto de actualizaciones.

ServiceNow developer portal retrieved update sets list for an updated file.

6

En la parte superior derecha de la ventana, haga clic en Vista previa del conjunto de actualizaciones para comprobar si hay problemas en el conjunto de actualizaciones.

ServiceNow developer portal retrieved update sets list for an updated file with the ‘Preview Update Set’ button highlighted.

7

Haga clic en Cerrar en el cuadro de diálogo Vista previa del conjunto de actualizaciones una vez que se haya completado la vista previa.

ServiceNow developer portal with the update set preview success notification.

8

Haga clic en Conmit Update Set.

ServiceNow developer portal retrieved update sets list for an updated file with the ‘Commit Update Set’ button highlighted.

9

Haga clic en Cerrar en el cuadro de diálogo Confirmar conjunto de actualizaciones una vez que se haya completado la confirmación del conjunto de actualizaciones.

ServiceNow developer portal with the update set commit success notification.

1

En el campo Navegador de filtros en la parte superior izquierda de la ventana, escriba sys_properties.listy presione Enter.

ServiceNow developer instance showing a search in the filter navigator on the ‘All’ tab for ‘sys_properties.list’

2

En la página Propiedades del sistema, ordene las propiedades por fecha de actualización. Asegúrese de que puede ver las siguientes propiedades de Webex Contact Center:

ServiceNow developer instance system properties page.

3

Haga clic agentdesktop_urlpara abrir la agentdesktop_url página Propiedad del sistema.

4

En el campo Valor, escriba la dirección URL del escritorio de Webex Contact Center según la región de operación.

ServiceNow developer instance system property details for agentdesktop_url.

5

Haga clic en Actualizar para guardar los cambios.

6

(Opcional) Para cambiar el nombre de la tabla de actividades, edite las propiedades webexccactivitytable según sea necesario.

En la página Propiedades del sistema, haga clic en webexccactivitytable.

Cambie el campo Valor según sea necesario.

ServiceNow developer instance system property details for webexactivitytable.

7

(Opcional) Agregue grupos de usuarios de las siguientes maneras:

  1. En el campo Navegador de filtros en la parte superior izquierda de la ventana, vaya a Grupos en Seguridad del sistema.

    ServiceNow developer instance filter navigator search for ‘Groups’ under ‘System Security’
  2. Cree un nuevo grupo de usuarios o utilice uno existente.

    ServiceNow developer instance group page for WebexccAgentsGroup.

  3. Haga clic en Editar.

  4. Busque sn_openframe_useren Colección y muévelo a su grupo de usuarios.

    ServiceNow developer instance group edit members page showing a search for a collection.

    ServiceNow developer instance group edit members page showing a collection moved into the roles list.

  5. Haga clic en Guardar.

  6. Agregue al usuario como miembro del grupo.

    ServiceNow developer instance group page with user roles assigned.

1

En el campo Navegador de filtros, vaya a OpenFrame > Configuraciones.

ServiceNow developer instance filters navigator with ‘openframe’ in the search field and ‘Configurations’ under ‘OpenFrame’ highlighted in the results.

2

Haga clic en Nuevo.

ServiceNow developer instance OpenFrame Configurations page with ‘New’ highlighted.

3

Introduzca las siguientes propiedades para la dirección URL:

  • Nombre: Webex Contact Center Desktop

  • Título: Webex Contact Center

  • Ancho: 550 (recomendado)

  • Altura: 600 (recomendado)

4

A la derecha del campo URL, haga clic en el botón Bloquear y agentdesktop.doañádelo como URL. (Haga este paso para señalar la configuración a la página de interfaz de usuario)

ServiceNow developer instance OpenFrame Configurations – New Record page with the lock icon highlighted.

5

(Opcional) Seleccione el (los) grupo (s) de usuario/agente (s) para asignar la configuración.

ServiceNow developer instance OpenFrame Configurations – New Record user group selection.

6

Haga clic en Enviar. La URL aparece como un enlace.

ServiceNow developer instance OpenFrame Configurations – New Record page showing the URL link that appears after submitting the user group selections.

7

Antes de intentar usar el teléfono OpenFrame, asegúrese de cargar el archivo JSON personalizado de ServiceNow Desktop Layout en el Centro de contacto de Webex. Management Portal Para obtener más información, consulte Configurar el diseño de escritorio ServiceNow en el centro de contacto de Webex.

1

Descargue el diseño de escritorio para ServiceNow desde https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.

Github screen for Webex Contact Center CRM Integrations – Desktop Layouts – ServiceNow.

2

Actualice las propiedades en el archivo de diseño de escritorio, si es necesario.

3

Vaya al Centro Management Portal de contacto de Webex.

4

En la barra de Management Portal navegación, elija Aprovisionamiento > Diseño de escritorio.

Webex Contact Center Management Portal provisioning page with Desktop Layout highlighted in the left navigation.

5

Haga clic en Nuevo diseño e introduzca los detalles del diseño de escritorio.

6

Cargue el archivo JSON de diseño de escritorio de ServiceNow.

7

Haga clic en Guardar para guardar la configuración.

Ahora puede iniciar el escritorio de Webex Contact Center dentro de la consola de ServiceNow.

8

En el campo Navegador de filtros, vaya a Área de trabajo de operaciones de servicio.

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

En las siguientes secciones se describen los pasos para instalar el conector de ServiceNow para instancias empresariales con licencia.

1

Inicie sesión en su cuenta del portal de desarrolladores de ServiceNow y abra la consola de administración.

2

En el área Mi instancia del menú Cuenta, haga clic en Iniciar construcción.

ServiceNow developer portal screenshot with ‘Start Building’ button highlighted.

3

En su instancia de desarrollador, en el campo Navegador de filtros en la parte superior izquierda de la ventana, vaya a Plugins.

ServiceNow developer instance showing a search for ‘plugins’ filter navigator.

4

Busque el complemento Openframe que tiene el título Openframe. Puede que necesite desplazarse por la lista.

ServiceNow developer instance on the Applications screen, showing the search and results for ‘OpenFrame.’

5

Haga clic en Instalar para instalar el complemento Openframe.

6

En el cuadro de diálogo Activar complemento, haga clic en Activar.

ServiceNow developer instance showing OpenFrame plugin popup with the ‘Activate’ button highlighted.

7

Cuando se complete la activación del complemento, haga clic en Cerrar y recargar formulario en el cuadro de diálogo Activación del complemento.

ServiceNow developer instance showing OpenFrame plugin activation loading.

ServiceNow developer instance showing OpenFrame plugin activation success window with the ‘Close & Reload Form’ button highlighted.

8

Para verificar la activación del complemento, en el campo Navegador de filtros en la parte superior izquierda de la ventana, vaya a OpenFrame.

9

Haga clic en Configuraciones y asegúrese de que el complemento OpenFrame aparezca en la lista Configuraciones de OpenFrame.

ServiceNow developer instance showing OpenFrame Configurations in the filter navigator search.

1

En el campo Navegador de filtros en la parte superior izquierda de la ventana, escriba sys_properties.list.

ServiceNow developer instance showing a search in the filter navigator on the ‘All’ tab for ‘sys_properties.list’

2

En la página Propiedades del sistema, ordene las propiedades por fecha de actualización. Asegúrese de que puede ver las siguientes propiedades de Webex Contact Center:

ServiceNow developer instance system properties page results.

3

Haga clic agentdesktop_urlpara abrir la agentdesktop_url página Propiedad del sistema.

4

En el campo Valor, escriba la dirección URL del escritorio de Webex Contact Center según la región de operación.

ServiceNow developer instance system property details page for agentdesktop_url.

5

Haga clic en Actualizar para guardar los cambios.

6

(Opcional) Para cambiar el nombre de la tabla de actividades, edite las x_caci_webexccpropiedades.webexccactivitytable según sea necesario.

  1. En la página Propiedades del sistema, haga clic en x_caci_webexcc.webexccactivitytable.

    ServiceNow developer instance system properties page results for x_caci_webexcc.webexccactivitytable.

  2. Cambie el campo Valor según sea necesario.

    ServiceNow developer instance system property page for x_caci_webexcc.webexccactivitytable.

7

(Opcional) Agregue grupos de usuarios de las siguientes maneras:

  1. En el campo Navegador de filtros en la parte superior izquierda de la ventana, vaya a Grupos en Seguridad del sistema.

    ServiceNow developer instance filter navigator results for ‘Groups.’

    SeviceNow developer instance group page for webexccagentsgroup.

  2. Haga clic en Editar y agregue los siguientes roles:

    • sn_openframe_user

    • x_caci_webexcc.agente

    • agent_workspace_user

    • x_caci_webexcc. webexcc_imp_activity_user

    • x_caci_webexcc. webex_contact_center

    SeviceNow developer instance group page for webexccagentsgroup with rolls added.

1

En el campo Navegador de filtros, vaya a OpenFrame > Configuraciones.

ServiceNow developer instance filters navigator with ‘openframe’ in the search field and ‘Configurations’ under ‘OpenFrame’ highlighted in the results.

2

Haga clic en Nuevo.

ServiceNow developer instance OpenFrame Configurations page with ‘New’ highlighted.

3

Introduzca las siguientes propiedades para la dirección URL:

  • Nombre: Webex Contact Center Desktop

  • Título: Webex Contact Center

  • Ancho: 550 (recomendado)

  • Altura: 600 (recomendado)

4

A la derecha del campo URL, haga clic en el botón Bloquear y agréguele x_caci_webexcc_agentdesktop.docomo URL. (Haga este paso para señalar la configuración a la página de interfaz de usuario)

ServiceNow developer instance OpenFrame Configurations – New Record page with the lock icon highlighted.

5

(Opcional) Seleccione el (los) grupo (s) de usuario/agente (s) para asignar la configuración.

ServiceNow developer instance OpenFrame Configurations – New Record user group selection.

6

Haga clic en Enviar. La URL aparece como un enlace.

ServiceNow developer instance OpenFrame Configurations – New Record with URL added.

7

En el campo Navegador de filtros, vaya a Área de trabajo de operaciones de servicio.

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

8

(Opcional) En la lista Grupo de usuarios, mueva los grupos de usuarios que pueden acceder al escritorio de Webex Contact Center de Disponible a Seleccionado.

9

Antes de intentar usar el teléfono OpenFrame, asegúrese de cargar el archivo JSON personalizado de ServiceNow Desktop Layout en el Centro de contacto de Webex. Management Portal Para obtener más información, consulte Configurar el diseño de escritorio ServiceNow en el centro de contacto de Webex.

1

Descargue el diseño de escritorio para ServiceNow desde https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.

Github screen for Webex Contact Center CRM Integrations – Desktop Layouts – ServiceNow.

2

Actualice las propiedades en el archivo de diseño de escritorio, si es necesario.

3

Vaya al Centro Management Portal de contacto de Webex.

4

En la barra de Management Portal navegación, elija Aprovisionamiento > Diseño de escritorio.

Webex Contact Center Management Portal provisioning page with Desktop Layout highlighted in the left navigation.

5

Haga clic en Nuevo diseño e introduzca los detalles del diseño de escritorio.

6

Cargue el archivo JSON de diseño de escritorio de ServiceNow.

7

Haga clic en Guardar para guardar la configuración.

Ahora puede iniciar el escritorio de Webex Contact Center dentro de la consola de ServiceNow.

8

En el campo Navegador de filtros, vaya a Área de trabajo de operaciones de servicio.

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

1

En el campo Navegador de filtros, vaya a Incidentes > Incidentes abiertos.

2

Haga clic derecho en el campo de la persona que llama y haga clic en Configurar diccionario.

ServiceNow developer instance Incidents window with the Configure Directory option highlighted.

3

Agregue atributos “ref_contributions=show_phone,separados por comas.

ServiceNow developer instance call incident window for a Directory Entry.

Ahora puede comenzar a usar el escritorio de Webex Contact Center dentro de la consola de ServiceNow.

4

En el campo Navegador de filtros, vaya a Área de trabajo de operaciones de servicio.

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

  • Apoyamos iniciar sesión Agent Desktop usando WebRTC para conectores Salesforce (SFDC) y Microsoft Dynamics (MS Dynamics) solamente.
  • Actualmente, esta función solo se aplica a los agentes.

Agent Desktopen la consola de ServiceNow

Antes de hacer llamadas fuera de línea, asegúrese de hacer lo siguiente:

  • Cree el punto de entrada de salida y configure una estrategia de punto de entrada de salida.

  • Habilite ANI de salida para el perfil del agente.

  • Establezca la ANI de salida en una asignación de número de marcado a punto de entrada.

Para obtener más información, consulte el capítulo Aprovisionamiento de la Guía de Cisco Webex Contact Center configuración y administración.

En el campo Navegador de filtros, vaya a Área de trabajo de operaciones de servicio.

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

Para obtener información sobre cómo usar Desktop, consulte la pestaña Agente en la ayuda del Centro de contacto de Webex.

Descripción general

Este artículo cubre varias formas de personalizar sus reglas de negocio para el conector de ServiceNow CRM. Detalla cómo puede personalizar los casos de uso según las reglas comerciales específicas de ServiceNow.

El cliente debe autoadministrar estos casos de uso en ServiceNow. La configuración es específica de ServiceNow y no del software o experiencia de Webex Contact Center.

Esta es una documentación de referencia para ayudar a modificar las reglas comerciales. Los desarrolladores de ServiceNow crearán y administrarán las reglas comerciales y brindarán soporte.

Cisco solo proporciona documentación de muestra.

En las siguientes secciones se proporcionan detalles sobre cómo configurar, habilitar y administrar el widget Acciones para instancias empresariales y de desarrollo.

Configure el widget Conjunto de actualizaciones para acciones

Para las instancias empresariales con licencia, instale la aplicación Webex Contact Center más reciente de la tienda ServiceNow.

Para configurar el widget Acciones para las instancias de desarrollador, descargue el archivo XML del conjunto de actualizaciones del sistema más reciente disponible en el repo de github en esta ubicación: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow/ActionsWidget. El nombre del archivo es webexcc-servicenow-update-setv7-1-ActionsWidget.xml. Para confirmar el conjunto de actualizaciones para el widget Acciones, consulte los pasos 2 a 9 en Conmitir el conjunto de actualizaciones.

Habilitar widget de acciones

Utilice la propiedad IsWidgetDisplayEnabled para habilitar el widget Acciones. No debe modificar el valor de esta propiedad en la sección sin encabezado del diseño de escritorio personalizado. La propiedad siempre se establece en false en la sección sin encabezado del diseño de escritorio personalizado. Debe actualizar el valor de la propiedad solo en la sección del panel del diseño de escritorio personalizado.

Una vez que habilite el widget Acciones en el diseño de escritorio personalizado, puede realizar las siguientes acciones:

  • Administrar registros de actividad: haga clic en Ver/Editar registro de actividad para ver la lista de registros de actividad asociados con la persona que llama.
  • Asociar objetos CRM: haga clic en Asociar a registros de actividad para agregar objetos CRM como tipo de llamada (entrante o saliente), objeto de llamada, notas de llamada, etc. al registro de actividad.
  • Administrar incidentes: haga clic en Crear incidente. Se crea un nuevo incidente con los datos de la persona que llama previamente. Puede hacer las actualizaciones necesarias sobre el incidente. Puede optar por modificar el tipo de registro de incidente a caso, módulo de recursos humanos, etc. según sus requisitos. Para cambiar el tipo de registro, modifique el valor de la propiedad TypeOfRecord en la configuración del widget Acciones. Por ejemplo:
    {
                  "comp": "md-tab-panel",
                  "attributes": { "slot": "panel", "class": "widget-pane" },
                  "children": [
                    {
                      "comp": "agentx-custom-desktop",
                      "script": "https://cx-crmconnector.ciscoccservice.com/servicenow/v5/dist/index.js",
                      "properties": {
                        "isWidgetDisplayEnabled": true,
                        "typeOfRecord" : "Create Incident" 
                      },
                      "wrapper": {
                        "title": "SNOW Actions !",
                        "maximizeAreaName": "app-maximize-area"
                      }
                    }
                  ]
                }
  • Agregue notas de llamadas en vivo: puede capturar información adicional sobre la llamada en el área de texto y concluir la llamada. Puede ver estas notas agregadas como notas de llamada en el registro de actividad.

Cambio de código en ServiceNow

El guión incluye cambios
  1. Vaya al navegador de filtros y busque secuencias de comandos incluidas.

    Seleccione el script incluye en la interfaz de usuario del sistema.

  2. Filtre el nombre y busque ProPutils.

  3. Cambie el método UserGetSysid en el script.

    Actual:

    UserGetSysId : function () {
    var opened_for;
    var user = new GlideRecord("sys_user");
    user.addQuery(this.getParameter('field'),this.getParameter('value'));
    user.query();
    if (user.next())
    opened_for=user.sys_id;
    var grInt = new GlideRecord('interaction');
    grInt.initialize();
    grInt.assigned_to= gs.getUserID();
    grInt.type= 'phone';
    grInt.opened_for= opened_for;
    var sysid=grInt.insert();
    return sysid;
    },

    Nuevo código de muestra para el incidente:

    UserGetSysId : function () {
                var opened_for;
    
            //Incident related changes
                 var sysidlist = {};
                var user = new GlideRecordSecure("sys_user");
                  user.addQuery(this.getParameter('field'),this.getParameter('value'));
                  user.query();
                  if(user.next()) {
                     opened_for=user.sys_id;//return user.sys_id;
                        var inc = new GlideRecordSecure('incident');
                                inc.addQuery('caller_id', opened_for);
                                inc.addQuery('state','IN','1,2');
                                inc.orderByDesc('sys_created_on');
                                inc.query();
                                    if (inc.next()) {
                                        sysidlist.incsysid=inc.getUniqueValue();
                                   }else{
                                        inc.initialize();
                                        inc.caller_id=opened_for;
                                        inc.contact_type='phone';
                                        inc.short_description='Call Received From '+ this.getParameter('value');
                                        sysidlist.incsysid=inc.insert();
                                    }
                  } 
                var grInt = new GlideRecordSecure('interaction');
                    grInt.initialize(); 
                    grInt.assigned_to= gs.getUserID(); 
                    grInt.type= 'phone'; 
                    grInt.opened_for= opened_for; 
                var sysid=grInt.insert();
                sysidlist.sysid=sysid;
                
                return JSON.stringify(sysidlist);
            },

Cambio de método en las páginas de interfaz de usuario
  1. Vaya al navegador de filtros y busque UI page.

    Seleccione las páginas de interfaz de usuario en Interfaz de usuario del sistema.

  2. Filtre el nombre y busque agentdesktop.

  3. Cambie la función de screenpop en el script del cliente.

    Función actual:

    // screen pop
    function screenpop(callerani,callSessionInfo) {
    
    
    
    if(callerani===callSessionInfo.phoneNumber){
    callerani=stripPrefixes(callerani);
    }
    var gaout = new GlideAjax('propUtils');
    gaout.addParam('sysparm_name', 'UserGetSysId');
    gaout.addParam('field', 'phone');
    gaout.addParam('value', callerani);
    gaout.getXMLWait();
    
    
    var sysid = gaout.getAnswer();
      
    openFrameAPI.openServiceNowForm({
    entity: 'interaction',
    query: 'sys_id='+sysid
    });

    Código de muestra para el incidente:

    // screen pop
    function screenpop(callerani,callSessionInfo) {
       
    
        if(callerani===callSessionInfo.phoneNumber){
            callerani=stripPrefixes(callerani);
        }
        
        var gaout = new GlideAjax('propUtils');
            gaout.addParam('sysparm_name', 'UserGetSysId');
            gaout.addParam('field', 'phone');
            gaout.addParam('value', callerani);
            gaout.getXMLWait();
    
    // For Incident-related change
          var sysObj = JSON.parse(gaout.getAnswer());
        
        if(sysObj.incsysid){
            openFrameAPI.openServiceNowForm({
            entity: 'incident',
            query: 'sys_id='+sysObj.incsysid, 
            'interaction_sys_id': sysObj.sysid  
           });
        }else{
            openFrameAPI.openServiceNowForm({
            entity: 'incident',
            query: 'sys_id=-1',
            'interaction_sys_id': sysObj.sysid //'a2ba0ba62fd121106446cc96f699b6b8'  
           });
        }
       
    }

Si la información de la persona que llama existe en CRM y ya se ha abierto un nuevo incidente con este contacto, la aplicación abre el incidente en curso

Si la información de la persona que llama no existe en CRM, la aplicación abre un nuevo incidente

Si la información de la persona que llama existe en CRM, la aplicación abre un nuevo incidente con detalles prellenados

Descripción general

Este caso de uso detalla el proceso para agregar una columna adicional a la tabla ServiceNow webexcc_imp_activity y crear sn_openframe_phone_log tras la instalación de Webex CC para ServiceNow CRM Connector.

De forma predeterminada, la tabla contiene ciertos campos y valores del sistema listos para usar.

Puede crear más variables específicas del negocio (Variables CAD) dentro del diseñador de flujo WebExcc y agregar las variables CAD dentro del registro de actividad posterior a la llamada de ServiceNow, así como conservarlo en los datos de la tabla de actividad posterior a la llamada.

Esta es solo una documentación de referencia y muestra cómo hacerlo para una variable CAD de ejemplo llamada Customer Name que almacena el nombre del cliente dentro del IVR y lo publica en ServiceNow.

Se espera que los desarrolladores de ServiceNow socie+cliente configuren y administren esta configuración, ya que es una personalización para el conector existente.

Cisco solo proporciona las técnicas sobre cómo personalizar y extender el conector.

A partir de este artículo, el equipo de Cisco ha validado el soporte para la adición de la variable CAD al registro de actividad y a la tabla de actividades mediante la técnica que se describe a continuación:

Agregar columna a la actividad WebEXCC IMP

  1. Edite la tabla en la versión para desarrolladores de ServiceNow.

    ServiceNow developer instance WebexCC IMP activity table.

  2. Vaya al navegador de filtros y busque el estudio.

    ServiceNow developer instance filter navigator on the All tab with ‘studio’ entered in the filter.

    Seleccione el centro de contacto de Webex

    Studio app for ServiceNow with the Select Application window open.

    o

    Studio app for ServiceNow with the Select Application window open and ‘Select Store App to Customize’ selected.

    Studio app for ServiceNow with the ‘Select Store App to Customize’ window open and ‘Webex Contact Center’ selected.

    Studio app for ServiceNow with Webex Contact Center application file details.

  3. Seleccione la tabla de actividades WebExcc IMP

    Studio app for ServiceNow WebexCC IMP Activity table.

  4. Agregar una nueva columna, por ejemplo, CustomerName

    Studio app for ServiceNow WebexCC IMP Activity table new column example.

    Studio app for ServiceNow WebexCC IMP Activity table new column example with new column added.

Agregar columna al registro telefónico

  1. Edite la tabla de registro telefónico.

    ServiceNow developer instance search for a phone log table.

    ServiceNow developer instance phone log table.

  2. Agregue una nueva columna, por ejemplo, CustomerName.

    ServiceNow developer instance phone log table new column examples.

    ServiceNow developer instance phone log table new column example with new column added.

Mapa de transformación de actividad WebEXCC

Studio app for ServiceNow WebexCC Activity Transform Map.

Agregue una nueva columna, por ejemplo, mapeo de campo CustomerName.

Studio app for ServiceNow WebexCC Activity Transform Map new column example for CustomerName field mapping.

Studio app for ServiceNow WebexCC Activity Transform Map new column example with CustomeName selected in the Target field.

Personalizar columnas de lista

Studio app for ServiceNow WebexCC Activity Transform Map with popup window to personalized list columns. Choice action option is highlighted in the Selected column.

Como recomienda Service Now, cambie la acción Elección de crear a ignorar.

Studio app for ServiceNow WebexCC Activity Transform Map with the Choice action column, showing the dropdown to choose ‘ignore’ or ‘create.’

Studio app for ServiceNow WebexCC Activity Transform Map with the Choice action column and ‘ignore’ highlighted for the customer name source field.

Configurar lista de registros telefónicos

Studio app for ServiceNow configuring phone log list with CustomerName highlighted in the Selected column.

Ir a Script Incluir

Agregue solo una línea webexcc. u_customername=ACTInfo.CustomerName para PropUtils.

ServiceNow developer instance filter navigator search for ‘script includes.’

ServiceNow developer instance Script Includes page.

Secuencia de comandos de muestra

Vea la línea: webexcc. u_customername=ActInfo.CustomerName; con un comentario de apoyo.

var propUtils = Class.create();
propUtils.prototype = Object.extendsObject(global.AbstractAjaxProcessor,{
         getWebexccProp : function () {
           var webexccprop = {};
           webexccprop.instanceurl= 'https://'+gs.getProperty('instance_name')+'.service-now.com/';
           webexccprop.url=gs.getProperty('x_caci_webexcc.agentdesktop_url');
          // webexccprop.popupurl=gs.getProperty('x_caci_webexcc.screenpop_url');
           return  JSON.stringify(webexccprop);
      
        },
        UserGetSysId : function () {
            var opened_for;
            var user = new GlideRecord("sys_user");
              user.addQuery(this.getParameter('field'),this.getParameter('value'));
              user.query();
              if (user.next())
                 opened_for=user.sys_id;//return user.sys_id;
//            else
//               return null;
            var grInt = new GlideRecord('interaction');
                grInt.initialize();
                grInt.assigned_to= gs.getUserID();
                grInt.type= 'phone';
                grInt.opened_for= opened_for;
            var sysid=grInt.insert();
            return sysid;
        },
        setWebexcctable : function () {
            var sys_id=0;
             
            var actInfo = JSON.parse(this.getParameter('actInfo'));
            var webexcc = new GlideRecordSecure(gs.getProperty('x_caci_webexcc.webexccactivitytable'));
            webexcc.addQuery("callobject", actInfo.CallObject);
            webexcc.query();
            if(!webexcc.next()) {
                webexcc.ani = actInfo.ani;
                webexcc.dnis =actInfo.dnis;
                webexcc.queuename =actInfo.queuename;
                webexcc.wrapuptime =actInfo.wrapuptime;
                webexcc.callduration =actInfo.CallDurationInSeconds;
                webexcc.ringingtime =actInfo.ringingtime;
                webexcc.activitydate =actInfo.ActivityDate;
                webexcc.callobject =actInfo.CallObject;
                webexcc.calltype =actInfo.CallType;
                webexcc.calldisposition=actInfo.CallDisposition;
                 
                // This line is Added - to capture it in the Activity Log
               webexcc.u_customername=actInfo.CustomerName;
                 
                sys_id=webexcc.insert();
 
                //Activities on Incident record;
                var actInfoString =this.getParameter('actInfo');
                var suser = new GlideRecordSecure("sys_user");
                    suser.addQuery("phone", this.getParameter('ani'));
                    suser.query();
                    if(suser.next()) {
                    var inc = new GlideRecordSecure('incident');
                            inc.addQuery('caller_id', suser.sys_id);
                            inc.orderByDesc('sys_created_on');
                            inc.query();
                                if (inc.next()) {
                                    var jsonPretty = JSON.stringify(JSON.parse(actInfoString),null,2); 
                                    inc.comments =jsonPretty;
                                inc.update();
     
                            }
                    }
            }  
            return sys_id;
       },
 
    type: 'propUtils'
});

Crear una variable CAD en Flow Designer

Webex Contact Center CAD variable flow designer with Add Flow Variable popup for CustomerName.

Agregar la variable CAD al diseño de escritorio

Ejemplo

"CadName1:SnowField1,CadName2:SnowField2"
 CadName1 is CustomerName
 SnowField1 is also used as CustomerName which is part of sample scirpt showen above "actInfo.CustomerName".

Example source code for adding the CAD variable to the Desktop Layout.

Capturas de pantalla de demostración

Vea la variable CAD recién agregada en la tabla Actividad WebExcc.

ServiceNow example of the newly added CAD variable in the WebexCC Activity table, showing ‘Customer Name’ in the Cisco WebexCC popup.

ServiceNow example of the newly added CAD variable in the WebexCC Activity table, showing ‘CustomerName’ in the comments section under ‘Activity’ and ‘System Administrator.’

ServiceNow developer instance example of the newly added CAD variable in the WebexCC Activity table, showing the ‘CustomerName’ column.

Crear variable CAD para Flow Designer

Urgencia del incidente

Webex Contact Center flow designer create CAD variable screen showing the edit flow variable popup for an incident urgency flow variable.

Impacto del incidente

Webex Contact Center flow designer create CAD variable screen showing the edit flow variable popup for an incident urgency flow variable.

Actualización del script Service Now

Las actualizaciones del script incluyen

  1. Vaya al navegador de filtros y busque script includes

    Seleccione la opción Script incluye en la interfaz de usuario del sistema.

    ServiceNow developer instance filter navigator search for ‘script includes’

  2. Filtre el nombre con propUtils.

    ServiceNow developer instance Script Includes name filter by ‘propUtils’

  3. Cambie el método UserGetSysid en el campo Script.

    ServiceNow developer instance Script Includes – propUtils details page.

    Guión actual:

    UserGetSysId : function () {
    var opened_for;
    var user = new GlideRecord("sys_user");
    user.addQuery(this.getParameter('field'),this.getParameter('value'));
    user.query();
    if (user.next())
    opened_for=user.sys_id;
    var grInt = new GlideRecord('interaction');
    grInt.initialize();
    grInt.assigned_to= gs.getUserID();
    grInt.type= 'phone';
    grInt.opened_for= opened_for;
    var sysid=grInt.insert();
    return sysid;
    },

    Nuevo código de muestra para el incidente:

    UserGetSysId : function () {
                var opened_for;
                
                var sysidlist = {};
                var user = new GlideRecordSecure("sys_user");
                  user.addQuery(this.getParameter('field'),this.getParameter('value'));
                  user.query();
                  if(user.next()) {
                     opened_for=user.sys_id;//return user.sys_id;
                        var inc = new GlideRecordSecure('incident');
                                inc.addQuery('caller_id', opened_for);
                                inc.addQuery('state','IN','1,2');
                                inc.orderByDesc('sys_created_on');
                                inc.query();
                                    if (inc.next()) {
                                        sysidlist.incsysid=inc.getUniqueValue();
                                   }else{
                                        inc.initialize();
                                        inc.caller_id=opened_for;
                                        inc.contact_type='phone';
                                        inc.urgency=this.getParameter('IncUrgency');
                                        inc.impact=this.getParameter('Impact');
                                        inc.short_description='Call Received From '+ this.getParameter('value');
                                        sysidlist.incsysid=inc.insert();
                                    }
                  } 
                var grInt = new GlideRecordSecure('interaction');
                    grInt.initialize(); 
                    grInt.assigned_to= gs.getUserID(); 
                    grInt.type= 'phone'; 
                    grInt.opened_for= opened_for; 
                var sysid=grInt.insert();
                sysidlist.sysid=sysid;
                
                return JSON.stringify(sysidlist);//sysid;
            },

Un cambio de método en las páginas de interfaz de usuario
  1. Vaya al navegador de filtros y busque UI pages.

    Seleccione la opción Páginas de interfaz de usuario en Interfaz de usuario del sistema.

    ServiceNow developer instance filter navigator search for ‘Ui page’

  2. Filtre las páginas de la interfaz de usuario con nombre y busque agentdesktop.

    ServiceNow developer instance UI Pages name filter to search ‘agentdesktop’

  3. Cambie la función de pantalla emergente en el campo de script.

    ServiceNow developer instance UI Page – agentdesktop details page.

    Función actual:

    // screen pop
    function screenpop(callerani,callSessionInfo) {
    
    
    if(callerani===callSessionInfo.phoneNumber){
    callerani=stripPrefixes(callerani);
    }
    var gaout = new GlideAjax('propUtils');
    gaout.addParam('sysparm_name', 'UserGetSysId');
    gaout.addParam('field', 'phone');
    gaout.addParam('value', callerani);
    gaout.getXMLWait();
    
    
    var sysid = gaout.getAnswer();
      
    openFrameAPI.openServiceNowForm({
    entity: 'interaction',
    query: 'sys_id='+sysid
    });
    
    }

    Código de muestra para el incidente:

    // screen pop
    function screenpop(callerani,callSessionInfo) {
       
        var Impact=3;
        if(callSessionInfo.callAssociatedData.Impact != null && callSessionInfo.callAssociatedData.Impact != undefined)
        {
            Impact=callSessionInfo.callAssociatedData.Impact.value;
        }
        var IncUrgency=3;
        if(callSessionInfo.callAssociatedData.Urgency != null && callSessionInfo.callAssociatedData.Urgency != undefined)
        {
            IncUrgency=callSessionInfo.callAssociatedData.Urgency.value;
        }
        if(callerani===callSessionInfo.phoneNumber){
            callerani=stripPrefixes(callerani);
        }
        
        var gaout = new GlideAjax('propUtils');
            gaout.addParam('sysparm_name', 'UserGetSysId');
            gaout.addParam('field', 'phone');
            gaout.addParam('value', callerani);
            gaout.addParam('IncUrgency', IncUrgency);
            gaout.addParam('Impact', Impact);
            gaout.getXMLWait();
          // var sysid = gaout.getAnswer();
          var sysObj = JSON.parse(gaout.getAnswer());
        
        if(sysObj.incsysid){
            openFrameAPI.openServiceNowForm({
            entity: 'incident',
            query: 'sys_id='+sysObj.incsysid, 
            'interaction_sys_id': sysObj.sysid  
           });
        }else{
            openFrameAPI.openServiceNowForm({
            entity: 'incident',
            query: 'sys_id=-1',
            'interaction_sys_id': sysObj.sysid  
           });
        }
        window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj));
       
    }

Si la información de la persona que llama existe en CRM y no hay ningún incidente nuevo o en curso, la aplicación abre un nuevo incidente

ServiceNow example of an incident.

ServiceNow example of an interaction.

Cambie el código en ServiceNow

Agregar nuevas columnas a la tabla Actividad de WebExcc IMP

Abra la tabla de actividades de WebExcc IMP

ServiceNow developer instance WebexCC Activity TransformMap.

ServiceNow developer instance WebexCC Activity TransformMap details page.

Agregar una nueva columna - InteractionsNumber

ServiceNow developer instance WebexCC Activity TransformMap new column, InteractionNumber.

ServiceNow developer instance WebexCC Activity TransformMap details page showing the new ‘interactionnumber’ column added.

Agregar una nueva columna - Número de incidente

ServiceNow developer instance WebexCC Activity TransformMap details page showing adding a new ‘incidentnumber’ column.

Haga clic en Actualizar.

ServiceNow developer instance WebexCC Activity TransformMap details page showing editing the max length for the IncidentNumber column.

ServiceNow developer instance WebexCC Activity TransformMap details page showing the new ‘incidentnumber’ column added.

Agregar nuevas columnas a la tabla Registro telefónico

Abra la tabla de registro telefónico

ServiceNow developer instance Phone Log table.

Agregar una nueva columna - InteractionsNumber

ServiceNow developer instance Directory Entry – New Record page showing a new column for InteractionsNumber.

ServiceNow Developer instance Phone Log table with InteractionsNumber column added.

Agregar una nueva columna - Número de incidente

ServiceNow developer instance Directory Entry – New Record page showing a new column for IncidentNumber.

ServiceNow Developer instance Phone Log table with IncidentNumber column added.

Mapa de transformación de actividad WebEXCC

Abra el mapa de transformación desde el navegador de filtros

ServiceNow developer instance filter navigator search for ‘transform map’

ServiceNow developer instance Table Transform Maps showing WebexCC Activity TransformMap in results.

Haga clic en WebExcc Activity TransformMap

ServiceNow developer instance WebexCC Activity TransformMap.

Agregar nuevo - para mapa de números de interacción

ServiceNow developer instance WebexCC Activity TransformMap with ‘InteractionNumber’ entered into the ‘Target field’

ServiceNow developer instance WebexCC Activity TransformMap with ‘InteractionNumber’ added.

Agregar nuevo - para el mapa del número de incidente

ServiceNow developer instance WebexCC Activity TransformMap with ‘IncidentNumber’ entered into the ‘Target field’

Haga clic en Actualizar.

ServiceNow developer instance WebexCC Activity TransformMap with ‘IncidentNumber’ added.

Los cambios en el script incluyen

  1. Vaya al navegador de filtros y busque “script incluye”.

    Seleccione el script incluye en la interfaz de usuario del sistema.

    ServiceNow developer instance filter navigator with search for ‘script includes’

  2. Filtre el nombre con PropUtils.

    ServiceNow developer instance Script Includes with Name filter applied to search and  ‘propUtils’ entered into the search field.

  3. Cambie el método setWebExccTable.

    ServiceNow developer instance Script includes - propUtils page

    Nuevo código de muestra para Incidente:

    setWebexcctable : function () {
                var sys_id=0;
                
                var actInfo = JSON.parse(this.getParameter('actInfo'));
                var webexcc = new GlideRecordSecure(gs.getProperty('webexccactivitytable'));
                webexcc.addQuery("u_callobject", actInfo.CallObject);
                webexcc.query();
                if(!webexcc.next()) {
                    
                    //Activities on Incident record;
                    //var actInfoString =this.getParameter('actInfo');
                    var incsysid=actInfo.incident_sys_id;
                    var interactionsysid=actInfo.interaction_sys_id;
                    var incnum="";
                    var intenum="";
                    delete actInfo['interaction_sys_id'];
                    delete actInfo['incident_sys_id'];
                    if( interactionsysid!= null && interactionsysid != undefined){
                        var inte = new GlideRecordSecure('interaction');
                        //inte.get('sys_id', interactionsysid );
                        
                        inte.addQuery('sys_id', interactionsysid );
                        inte.query();
                        if (inte.next()) {
                            intenum=inte.number;
                           // inte.setValue('state','Closed Complete');
                            inte.work_notes='Update State to closed.';
                            inte.update();
        
                        }
                    }
                    if( incsysid!= null && incsysid != undefined){
                        var inci = new GlideRecordSecure('incident');
                        inci.addQuery('sys_id', incsysid );
                        inci.query();
                        if (inci.next()) {
                            incnum=inci.number;
                            var jsonPretty = JSON.stringify(actInfo,null,2); //JSON.stringify(JSON.parse(actInfoString),null,2);  
                            inci.comments =jsonPretty;
                            inci.update();
        
                        }
                    }else{
                      var suser = new GlideRecordSecure("sys_user");
                        suser.addQuery("phone", this.getParameter('ani'));
                        suser.query();
                        if(suser.next()) {
                        var inc = new GlideRecordSecure('incident');
                                inc.addQuery('caller_id', suser.sys_id);
                                inc.addQuery('state','IN','1,2');
                                inc.orderByDesc('sys_created_on');
                                inc.query();
                                    if (inc.next()) {
                                        var jsonPretty = JSON.stringify(actInfo,null,2);  
                                        inc.comments =jsonPretty;
                                    inc.update();
        
                                }
                        } 
                    }
                   
                    
                    webexcc.u_ani = actInfo.ani;
                    webexcc.u_dnis =actInfo.dnis;
                    webexcc.u_queuename =actInfo.queuename;
                    webexcc.u_wrapuptime =actInfo.wrapuptime;
                    webexcc.u_callduration =actInfo.CallDurationInSeconds;
                    webexcc.u_ringingtime =actInfo.ringingtime;
                    webexcc.u_activitydate =actInfo.ActivityDate;
                    webexcc.u_callobject =actInfo.CallObject;
                    webexcc.u_calltype =actInfo.CallType;
                    webexcc.u_calldisposition=actInfo.CallDisposition;
                    webexcc.u_incidentnumber=incnum;
                    webexcc.u_interactionsnumber=intenum;
                    sys_id=webexcc.insert();
    
                    
                                
                }    
                return sys_id;
           },

Cambios de método en las páginas de interfaz de usuario

  1. Vaya al navegador de filtros y busque páginas de interfaz de usuario

    Seleccione la opción Páginas de interfaz de usuario en Interfaz de usuario del sistema.

    ServiceNow developer instance filter navigator with search for ‘Ui page’

  2. Filtre las páginas de interfaz de usuario con nombre y busque agentdesktop.

    ServiceNow developer instance UI Pages with Name filter applied to search.

  3. Cambie la función NowActivities y screenpop en el script.

    ServiceNow developer instance UI Page – agentdesktop.

    Función actual:

    function nowActivities(actInfo, ani) {
        
        var gaout = new GlideAjax('propUtils');
        gaout.addParam('sysparm_name', 'setWebexcctable');
        gaout.addParam('actInfo', JSON.stringify(actInfo));
        gaout.addParam('ani', stripPrefixes(ani));
        gaout.getXML(SetCCsysId);
    
    
    }

    Código de muestra para el incidente:

    function nowActivities(actInfo, ani) {
        var sysObjstr = window.localStorage.getItem("screenpopinteraction");
        if(sysObjstr != null && sysObjstr != undefined)
        {
            var sysObjjson=JSON.parse(sysObjstr);
            actInfo.interaction_sys_id=sysObjjson.sysid;
            actInfo.incident_sys_id=sysObjjson.incsysid;
        }
        var gaout = new GlideAjax('propUtils');
        gaout.addParam('sysparm_name', 'setWebexcctable');
        gaout.addParam('actInfo', JSON.stringify(actInfo));
        gaout.addParam('ani', stripPrefixes(ani));
        gaout.getXML(SetCCsysId);
    
    
    }
    
    function screenpop(callerani,callSessionInfo) {
       
    
        if(callerani===callSessionInfo.phoneNumber){
            callerani=stripPrefixes(callerani);
        }
        
        var gaout = new GlideAjax('propUtils');
            gaout.addParam('sysparm_name', 'UserGetSysId');
            gaout.addParam('field', 'phone');
            gaout.addParam('value', callerani);
            gaout.getXMLWait();
          // var sysid = gaout.getAnswer();
          var sysObj = JSON.parse(gaout.getAnswer());
        
        if(sysObj.incsysid){
            openFrameAPI.openServiceNowForm({
            entity: 'incident',
            query: 'sys_id='+sysObj.incsysid, 
            'interaction_sys_id': sysObj.sysid  
           });
        }else{
            openFrameAPI.openServiceNowForm({
            entity: 'incident',
            query: 'sys_id=-1',
            'interaction_sys_id': sysObj.sysid  
           });
        }
        window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj));
            
       
    }
    
    

Resultados después de la actualización

ServiceNow developer instance Phone Logs page.

Las siguientes personalizaciones se aplican a las versiones 1.0.5 y siguientes. Para las personalizaciones para las versiones más recientes 1.0.7 y superiores, siga los pasos anteriores.

Personalización # 1: agregue reglas comerciales personalizadas para casos de uso de flujo de llamadas

Cree un nuevo registro de incidentes para cada llamada

Por cada nueva llamada al conector WebEXCC CRM en ServiceNow, cree un nuevo registro de incidentes.

  1. Buscar reglas de negocio en el navegador de filtros

    ServiceNow developer instance Business Rules page header.
  2. Haga clic en Nuevo.

    ServiceNow developer instance Business Rule – New Record.

    Código de muestra para referencia:

    function customcti() {
                var url = null;
                var name = sysparm_caller_name;
                eid = sysparm_caller_id;
                var phone = sysparm_caller_phone;
                var taskID = sysparm_task_id;
                var fQuery = sysparm_query;
                if (fQuery == null)
                   fQuery = '';
                var view = sysparm_view;
                if (view == null || view == '')
                    view = "itil";
     
                var userID = null;
                if (eid != null && eid != '') {
                    userID = UserGetSysId("employee_number",eid);
                }
                if (userID == null && name != null && name != '') {
                    userID = UserGetSysId("name", name);                
                }
                if (userID == null && phone != null && phone != '') {
                    userID = UserGetSysId("phone", phone);
                }
     
                if (userID != null) {
                    if (fQuery.length > 0)
                        fQuery += "^";
                    fQuery += "caller_id=" + userID;
                }
                if (url == null) {
                    url = "incident.do?sys_id=-1";
                    if (fQuery != null)
                       url += "&sysparm_query=" + fQuery;
                }
                answer = url;
                return url;
    }
     
    function UserGetSysId(field, value) {
      var user = new GlideRecord("sys_user");
      user.addQuery(field, value);
      user.query();
      if (user.next())
         return user.sys_id;
      else
         return null;
    }

    Ejemplo de configuración de la regla de negocio

    ServiceNow developer instance Business Rule – CTI Processing For Incident page as a sample configuration of the business rule.
  3. Habilitar el cliente llamable

    ServiceNow developer instance Business Rules page with the Personalized List Columns popup screen showing ‘Client callable’ in the ‘Selected’ column.

    El procesamiento de integración de telefonía informática (CTI) para incidentes está marcado como Verdadero.

    ServiceNow developer instance Business Rules page showing the Client callable column with options to select ‘true’ or ‘false’
  4. Actualice la URL de screenpop con la regla CTI personalizada "cti.do? sysparm_cti_rule=Crear incidente & = sysparm_caller_phone "

    System Property page for screenpop_url showing update to the custom CTI rule in the ‘Value’ field.
Ejemplo

El sysparm_cti_rule=nombre donde 'name' es el nombre de una función debe invocarse para CTI Processing en lugar de usar el script predeterminado.

Defina la función en una sys_scriptentrada marcada como cliente llamable.

Si debe insertar, actualizar o eliminar cualquier GliDeRecord (s) en la función, llame a una función distinta a la que se pueda llamar al cliente para realizar las actualizaciones.

Para que un script pueda ser llamado por el cliente, debe marcar la casilla de verificación que se puede llamar por el cliente en el formulario que aparece cuando se muestra la entrada. sys_script

La casilla de verificación que puede llamar por el cliente no aparece de forma predeterminada. Para ver, debe modificar los campos que aparecen en el formulario utilizando el icono de engranaje y el mecanismo del cubo de granizado.

Referencias

Personalización # 2: Agregar variable CAD en la tabla de actividades del Centro de contacto de Webex

Descripción general

Este artículo detalla el proceso para agregar una columna adicional a la tabla ServiceNow, webexcc_activity que se crea tras la instalación de Webex CC para ServiceNow CRM Connector.

De forma predeterminada, la tabla contiene campos y valores del sistema listos para usar.

Potencialmente, puede crear más variables específicas del negocio (Variables CAD) dentro del diseñador de flujo WebExcc y agregar esas variables CAD dentro del registro de actividad posterior a la llamada de ServiceNow, y conservarlo en los datos de la tabla de actividad posterior a la llamada.

  • Esta es solo la documentación de referencia y muestra cómo hacerlo para una variable CAD de ejemplo llamada Customer Name que almacena el nombre del cliente dentro del IVR y lo publica en ServiceNow.

  • Los desarrolladores de Partner+Customer ServiceNow configurarán y administrarán esta configuración, ya que es una personalización para el conector existente.

  • Cisco solo proporcionará las técnicas sobre cómo personalizar y extender el conector.

  • A partir de este artículo, el equipo de Cisco ha validado el soporte para la adición de la variable CAD al registro de actividad y a la tabla de actividades mediante la técnica que se describe a continuación.

Agregar columna a la actividad WebEXCC
  1. Edite la tabla en la versión para desarrolladores de ServiceNow.

    ServiceNow developer instance Table – WebexCC Activity page.
  2. Vaya al estudio > Centro de contacto de Webex.

    ServiceNow developer instance filter navigator search for ‘studio’  highlighting the cross launch search result for ‘App Engine Studio’

    App Engine Studio Select Application screen showing Webex Contact Center in the search results.

    App Engine Studio Webex Contact Center screen.

  3. Seleccione la tabla de actividades WebEXCC.

    App Engine Studio WebexCC Activity table.
  4. Por ejemplo, CustomerName.

    App Engine Studio WebexCC Activity table column edit example for ‘CustomerName’ column.

    App Engine Studio WebexCC Activity table screen.

  5. Seleccione el diseño de lista para la actividad WebEXCC.

    App Engine Studio WebexCC Activity table list layout showing ‘CustomerName’ highlighted in the ‘Selected’ column.
Crear un nuevo script incluye

Este paso no es necesario si está utilizando el XML del conjunto de actualizaciones: solo se requiere agregar una línea "webexcc. u_customername=ActInfo.CustomerName "a PropUtils.

ServiceNow developer instance filter navigator search for ‘script includes’

ServiceNow developer instance Script Includes page with ‘Application’ in the filter.

ServiceNow developer instance Script Includes – New Record page.

Secuencia de comandos de muestra

Vea la línea con: webexcc. u_customername=ACTInfo.CustomerName; con un comentario de apoyo.

var propUtils2 = Class.create();
propUtils2.prototype = Object.extendsObject(global.AbstractAjaxProcessor,{
         getWebexccProp : function () {
           var webexccprop = {};
           webexccprop.instanceurl= 'https://'+gs.getProperty('instance_name')+'.service-now.com/';
           webexccprop.url=gs.getProperty('x_caci_webexcc.agentdesktop_url');
           webexccprop.popupurl=gs.getProperty('x_caci_webexcc.screenpop_url');
           return  JSON.stringify(webexccprop);
      
        },
        setWebexcctable : function () {
            var sys_id=0;
             
            var actInfo = JSON.parse(this.getParameter('actInfo'));
            var webexcc = new GlideRecordSecure(gs.getProperty('x_caci_webexcc.webexccactivitytable'));
            webexcc.addQuery("callobject", actInfo.CallObject);
            webexcc.query();
            if(!webexcc.next()) {
                webexcc.ani = actInfo.ani;
                webexcc.dnis =actInfo.dnis; 
                webexcc.queuename =actInfo.queuename;
                webexcc.wrapuptime =actInfo.wrapuptime;
                webexcc.callduration =actInfo.CallDurationInSeconds;
                webexcc.ringingtime =actInfo.ringingtime;
                webexcc.activitydate =actInfo.ActivityDate;
                webexcc.callobject =actInfo.CallObject;
                webexcc.calltype =actInfo.CallType;
                webexcc.calldisposition=actInfo.CallDisposition;
 
               // This line is Added - to capture it in the Activity Log
               webexcc.u_customername=actInfo.CustomerName;
 
                sys_id=webexcc.insert();
  
                // Activities on Incident record;
                var actInfoString =this.getParameter('actInfo');
                var suser = new GlideRecordSecure("sys_user");
                    suser.addQuery("phone", this.getParameter('ani'));
                    suser.query();
                    if(suser.next()) {
                    var inc = new GlideRecordSecure('incident');
                            inc.addQuery('caller_id', suser.sys_id);
                            inc.orderByDesc('sys_created_on');
                            inc.query();
                                if (inc.next()) {
                                    var jsonPretty = JSON.stringify(JSON.parse(acting string),null,2);  
                                    inc.comments =jsonPretty;
                                inc.update();
                                 }
                    } 
            }    
            return sys_id;
       },
 
    type: 'propUtils2'
});
Edite la página de interfaz de usuario con un nuevo nombre de scriptApp Engine Studio agentdesktop UI page with new script name.

Crear una variable CAD en Flow DesignerWebex Contact Center flow designer with Add Flow Variable popup showing adding a CustomerName variable.

Agregar la variable CAD al diseño de escritorioWebex Contact Center CAD variable to the desktop layout script with ‘CustomerName:CustomerName’ highlighted.

Capturas de pantalla de demostración

Vea la variable CAD recién agregada en la tabla Actividad WebEXCC.

ServiceNow developer instance showing newly added CAD variable in the WebexCC Activity table.

ServiceNow developer instance WebexCC Activities screen.

El conector CRM funciona según la versión del widget especificado en el formato de escritorio JSON. Es extremadamente importante asegurarse de que la versión del widget dentro del diseño de escritorio se mantenga actualizada.

Se espera que los administradores se aseguren de que todos los diseños de escritorio para este conector CRM utilicen esta versión de widget. If the layout is not updated to use the latest version, functionality will no longer be supported and may cease to work correctly.

  • Última actualización de ServiceNow: .1.0_v5.0.3.json. ServiceNow_Desktop_0 A partir de marzo de 2024, la versión del paquete es 1.0.9
  • Última actualización de XML: WebExcc-ServiceNow-Update-Setv7-1-ActionsWidget.xml, junio de 2024

¿Ha encontrado este artículo útil?
¿Ha encontrado este artículo útil?