Integre o Webex Contact Center com o ServiceNow (versão 1 — Legacy)

list-menuComentários?
Ao integrar o Webex Contact Center com o console ServiceNow CRM, você pode iniciar o Webex Contact Center Desktop a partir do ServiceNow.

Pré-requisitos

O tamanho mínimo suportado para a interface do softphone é de 500 px. Qualquer valor menor que 500 px pode resultar em problemas de exibição ou funcionalidade.

Antes de integrar o Webex Contact Center com o console ServiceNow CRM, certifique-se de ter o seguinte:

Siga um dos dois métodos abaixo:

  • Para instâncias de desenvolvedor, recomendamos seguir as etapas do guia de instâncias do desenvolvedor.
  • Se você possui uma instância licenciada pela empresa, siga as diretrizes para instâncias licenciadas pela empresa.

Não recomendamos misturar o aplicativo licenciado corporativo com instâncias de sandbox para desenvolvedores.

Canais digitais como chat e e-mail não são compatíveis com conectores de CRM. Isso se aplica a todas as integrações de CRM usando esses conectores. Planeje adequadamente seus fluxos de trabalho de implantação e engajamento do cliente.

As seções a seguir descrevem as etapas para instalar o conector ServiceNow para instâncias de desenvolvedores.

1

Faça login na sua conta do portal do desenvolvedor do ServiceNow e abra o console administrativo.

2

Na área Minha instância do menu Conta, clique em Começar a criar.

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

3

Na sua instância de desenvolvedor, no campo Navegador de filtros no canto superior esquerdo da janela, navegue até Plugins.

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

4

Procure o plugin Openframe que tem o título Openframe. Talvez seja necessário percorrer a lista.

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

5

Clique em Instalar para instalar o plug-in Openframe.

6

Na caixa de diálogo Ativar plug-in, clique em Ativar.

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

7

Quando a ativação do plug-in for concluída, clique em Fechar e recarregar o formulário na caixa de diálogo Ativação do plug-in.

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 a ativação do plug-in, no campo Navegador de filtros no canto superior esquerdo da janela, navegue até OpenFrame.

9

Clique em Configurações e certifique-se de que o plug-in OpenFrame apareça na lista de configurações do OpenFrame.

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

1

Baixe o arquivo XML mais recente do System Update Set disponível no repositório github neste local: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.

Nome do arquivo: Webexcc-ServiceNow-Update-setv (X) .xml

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

2

Na sua instância do ServiceNow, no campo Navegador de filtros no canto superior esquerdo da janela, navegue até Conjuntos de atualizações do sistema > Conjuntos de atualizações a serem confirmados.

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

Clique no link Importar conjunto de atualizações do XML.

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

4

Clique em Escolher arquivo, selecione o arquivo XML do Conjunto de Atualizações do Sistema e clique em Carregar.

ServiceNow developer instance import XML screen.

ServiceNow developer portal retrieved update sets list.

O conjunto de atualizações aparece na lista Conjuntos de atualizações recuperados e está no estado Carregado.
5

Na lista Conjuntos de Atualizações Recuperados, clique no Nome do Arquivo do Conjunto de Atualizações (link) para abrir o Conjunto de Atualizações.

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

6

No canto superior direito da janela, clique em Visualizar conjunto de atualizações para verificar se há problemas no conjunto de atualizações.

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

7

Clique em Fechar na caixa de diálogo Atualizar visualização do conjunto quando a visualização for concluída.

ServiceNow developer portal with the update set preview success notification.

8

Clique em Confirmar conjunto de atualizações.

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

9

Clique em Fechar na caixa de diálogo Confirmação do Conjunto de Atualizações quando a confirmação do Conjunto de Atualizações for concluída.

ServiceNow developer portal with the update set commit success notification.

1

No campo Navegador de filtros no canto superior esquerdo da janela, digite sys_properties.liste pressione enter.

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

2

Na página Propriedades do sistema, classifique as propriedades por data de atualização. Certifique-se de que você possa ver as seguintes propriedades do Webex Contact Center:

ServiceNow developer instance system properties page.

3

Clique agentdesktop_urlpara abrir a agentdesktop_url página de propriedades do sistema.

4

No campo Valor, insira a URL para o Webex Contact Center Desktop de acordo com a região de operação.

ServiceNow developer instance system property details for agentdesktop_url.

5

Clique em Atualizar para salvar as alterações.

6

(Opcional) Para alterar o nome da tabela de atividades, edite as propriedades webexccactivitytable conforme necessário.

Na página Propriedades do sistema, clique em webexccactivitytable.

Altere o campo Valor conforme necessário.

ServiceNow developer instance system property details for webexactivitytable.

7

(Opcional) Adicione grupos de usuários das seguintes formas:

  1. No campo Navegador de filtros no canto superior esquerdo da janela, navegue até Grupos em Segurança do sistema.

    ServiceNow developer instance filter navigator search for ‘Groups’ under ‘System Security’
  2. Crie um novo grupo de usuários ou use um existente.

    ServiceNow developer instance group page for WebexccAgentsGroup.

  3. Clique em Editar.

  4. Pesquise sn_openframe_userem Coleção e mova-a para seu grupo de usuários.

    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. Clique em Salvar.

  6. Adicione o usuário como membro do grupo.

    ServiceNow developer instance group page with user roles assigned.

1

No campo Navegador de filtros, navegue até OpenFrame > Configurações.

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

2

Clique em Novo.

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

3

Insira as seguintes propriedades para o URL:

  • Nome: Webex Contact Center Desktop

  • Título: Webex Contact Center

  • Largura: 550 (recomendado)

  • Altura: 600 (recomendado)

4

À direita do campo URL, clique no botão Bloquear e adicione agentdesktop.docomo URL. (Execute esta etapa para apontar a configuração para a página da interface do usuário)

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

5

(Opcional) Selecione os grupos de usuários/agentes para atribuir a configuração.

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

6

Clique em Enviar. O URL aparece como um link.

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

7

Antes de tentar usar o telefone OpenFrame, certifique-se de carregar o arquivo JSON personalizado do ServiceNow Desktop Layout para o Webex Contact Center. Management Portal Para obter mais informações, consulte Configurar o layout do ServiceNow Desktop no Webex Contact Center.

1

Baixe o layout do desktop para o ServiceNow em https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.

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

2

Atualize as propriedades no arquivo Desktop Layout, se necessário.

3

Vá para o Webex Contact Center. Management Portal

4

Na barra de Management Portal navegação, escolha Provisionamento > Layout da área de trabalho.

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

5

Clique em Novo layout e insira os detalhes do layout da área de trabalho.

6

Faça upload do arquivo JSON do ServiceNow Desktop Layout.

7

Clique em Salvar para salvar a configuração.

Agora você pode iniciar o Webex Contact Center Desktop no console ServiceNow.

8

No campo Navegador de filtros, navegue até Service Operations Workspace.

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

As seções a seguir descrevem as etapas para instalar o conector ServiceNow para instâncias corporativas licenciadas.

1

Faça login na sua conta do portal do desenvolvedor do ServiceNow e abra o console administrativo.

2

Na área Minha instância do menu Conta, clique em Começar a criar.

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

3

Na sua instância de desenvolvedor, no campo Navegador de filtros no canto superior esquerdo da janela, navegue até Plugins.

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

4

Procure o plugin Openframe que tem o título Openframe. Talvez seja necessário percorrer a lista.

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

5

Clique em Instalar para instalar o plug-in Openframe.

6

Na caixa de diálogo Ativar plug-in, clique em Ativar.

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

7

Quando a ativação do plug-in for concluída, clique em Fechar e recarregar o formulário na caixa de diálogo Ativação do plug-in.

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 a ativação do plug-in, no campo Navegador de filtros no canto superior esquerdo da janela, navegue até OpenFrame.

9

Clique em Configurações e certifique-se de que o plug-in OpenFrame apareça na lista de configurações do OpenFrame.

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

1

No campo Navegador de filtros no canto superior esquerdo da janela, insira sys_properties.list.

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

2

Na página Propriedades do sistema, classifique as propriedades por data de atualização. Certifique-se de que você possa ver as seguintes propriedades do Webex Contact Center:

ServiceNow developer instance system properties page results.

3

Clique agentdesktop_urlpara abrir a agentdesktop_url página de propriedades do sistema.

4

No campo Valor, insira a URL para o Webex Contact Center Desktop de acordo com a região de operação.

ServiceNow developer instance system property details page for agentdesktop_url.

5

Clique em Atualizar para salvar as alterações.

6

(Opcional) Para alterar o nome da tabela de atividades, edite as propriedades x_caci_webexcc.webexccactivitytable conforme necessário.

  1. Na página Propriedades do sistema, clique em x_caci_webexcc.webexccactivitytable.

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

  2. Altere o campo Valor conforme necessário.

    ServiceNow developer instance system property page for x_caci_webexcc.webexccactivitytable.

7

(Opcional) Adicione grupos de usuários das seguintes formas:

  1. No campo Navegador de filtros no canto superior esquerdo da janela, navegue até Grupos em Segurança do sistema.

    ServiceNow developer instance filter navigator results for ‘Groups.’

    SeviceNow developer instance group page for webexccagentsgroup.

  2. Clique em Editar e adicione as seguintes funções:

    • 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

No campo Navegador de filtros, navegue até OpenFrame > Configurações.

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

2

Clique em Novo.

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

3

Insira as seguintes propriedades para o URL:

  • Nome: Webex Contact Center Desktop

  • Título: Webex Contact Center

  • Largura: 550 (recomendado)

  • Altura: 600 (recomendado)

4

À direita do campo URL, clique no botão Bloquear e adicione x_caci_webexcc_agentdesktop.docomo URL. (Execute esta etapa para apontar a configuração para a página da interface do usuário)

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

5

(Opcional) Selecione os grupos de usuários/agentes para atribuir a configuração.

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

6

Clique em Enviar. O URL aparece como um link.

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

7

No campo Navegador de filtros, navegue até Service Operations Workspace.

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

8

(Opcional) Na lista de grupos de usuários, mova os grupos de usuários que podem acessar o Webex Contact Center Desktop de Disponível para Selecionado.

9

Antes de tentar usar o telefone OpenFrame, certifique-se de carregar o arquivo JSON personalizado do ServiceNow Desktop Layout para o Webex Contact Center. Management Portal Para obter mais informações, consulte Configurar o layout do ServiceNow Desktop no Webex Contact Center.

1

Baixe o layout do desktop para o ServiceNow em https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.

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

2

Atualize as propriedades no arquivo Desktop Layout, se necessário.

3

Vá para o Webex Contact Center. Management Portal

4

Na barra de Management Portal navegação, escolha Provisionamento > Layout da área de trabalho.

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

5

Clique em Novo layout e insira os detalhes do layout da área de trabalho.

6

Faça upload do arquivo JSON do ServiceNow Desktop Layout.

7

Clique em Salvar para salvar a configuração.

Agora você pode iniciar o Webex Contact Center Desktop no console ServiceNow.

8

No campo Navegador de filtros, navegue até Service Operations Workspace.

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

1

No campo Navegador de filtros, navegue até Incidentes > Abrir incidente.

2

Clique com o botão direito do mouse no campo do chamador e clique em Configurar dicionário.

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

3

Adicione atributos “ref_contributions=show_phone,separados por vírgula.

ServiceNow developer instance call incident window for a Directory Entry.

Agora você pode começar a usar o Webex Contact Center Desktop no console ServiceNow.

4

No campo Navegador de filtros, navegue até Service Operations Workspace.

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

  • Suportamos Agent Desktop o login usando somente os conectores WebRTC for Salesforce (SFDC) e Microsoft Dynamics (MS Dynamics).
  • Atualmente, esse recurso é aplicável somente aos agentes.

Agent Desktopno console do ServiceNow

Antes de fazer chamadas externas, certifique-se de fazer o seguinte:

  • Crie o ponto de entrada externo e configure uma estratégia de ponto de entrada externo.

  • Habilite a ANI externa para o perfil do agente.

  • Defina a ANI de discagem externa para um mapeamento de número de discagem para ponto de entrada.

Para obter mais informações, consulte o capítulo Provisionamento do Guia de Cisco Webex Contact CenterConfiguração e Administração.

No campo Navegador de filtros, navegue até Service Operations Workspace.

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

Para obter informações sobre como usar o Desktop, consulte a guia Agente na ajuda do Webex Contact Center.

Visão geral

Este artigo aborda várias maneiras de personalizar suas regras de negócios para o conector ServiceNow CRM. Ele detalha como você pode personalizar os casos de uso com base nas regras de negócios específicas do ServiceNow.

O cliente deve autogerenciar esses casos de uso no ServiceNow. A configuração é específica do ServiceNow e não do software ou experiência do Webex Contact Center.

Essa é uma documentação de referência para auxiliar na modificação das regras de negócios. Os desenvolvedores do ServiceNow criarão e gerenciarão as regras de negócios e fornecerão suporte.

A Cisco fornece apenas exemplos de documentação.

As seções a seguir fornecem detalhes sobre como configurar, ativar e gerenciar o widget de ações para instâncias corporativas e de desenvolvedores.

Confirme o widget Conjunto de atualizações para ações

Para as instâncias corporativas licenciadas, instale o aplicativo Webex Contact Center mais recente da loja ServiceNow.

Para configurar o widget Actions para as instâncias do desenvolvedor, baixe o arquivo XML mais recente do System Update Set disponível no repositório github neste local: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow/ActionsWidget. O nome do arquivo é webexcc-servicenow-update-setv7-1-ActionsWidget.xml. Para confirmar o conjunto de atualizações para o widget Ações, consulte as etapas 2 a 9 em Confirmar o conjunto de atualizações.

Ativar widget de ações

Use a propriedade isWidgetDisplayEnabled para ativar o widget Actions. Você não deve modificar o valor dessa propriedade na seção sem cabeçalho do layout de desktop personalizado. A propriedade é sempre definida como falsa na seção sem cabeçalho do layout de desktop personalizado. Você deve atualizar o valor da propriedade somente na seção do painel do layout de desktop personalizado.

Depois de ativar o widget Ações no layout personalizado da área de trabalho, você pode realizar as seguintes ações:

  • Gerenciar registros de atividades — Clique em Visualizar/Editar registro de atividade para ver a lista de registros de atividades associados ao chamador.
  • Associar objetos do CRM — clique em Associar aos registros de atividades para adicionar objetos do CRM, como tipo de chamada (entrada ou saída), objeto de chamada, notas de chamada e assim por diante, ao registro da atividade.
  • Gerenciar incidentes — clique em Criar incidente. Um novo incidente é criado com os detalhes do chamador pré-preenchidos. Você pode fazer as atualizações necessárias para o incidente. Você pode optar por modificar o tipo de registro de incidente para caso, módulo de RH e assim por diante, com base em seus requisitos. Para alterar o tipo de registro, modifique o valor da propriedade typeOfRecord na configuração do widget Actions. Por exemplo:
    {
                  "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"
                      }
                    }
                  ]
                }
  • Adicionar notas de chamada ao vivo — Você pode capturar informações adicionais sobre a chamada na área de texto e encerrar a chamada. Você pode ver essas notas adicionadas como notas de chamada no registro de atividades.

Alteração de código no ServiceNow

O script inclui mudanças
  1. Vá para o navegador de filtros e pesquise as inclusões de script.

    Selecione o script incluído na interface do usuário do sistema.

  2. Filtre o nome e pesquise por PropUtils.

  3. Altere o método userGetSysID no Script.

    Atual:

    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;
    },

    Novo exemplo de código para o 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);
            },

Alteração do método nas páginas da interface do usuário
  1. Vá para o navegador de filtros e pesquise por UI page.

    Selecione páginas da interface do usuário na interface do usuário do sistema.

  2. Filtre o Nome e pesquise por agentdesktop.

  3. Altere a função screenpop no script Client.

    Função atual:

    // 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
    });

    Exemplo de código para o 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'  
           });
        }
       
    }

Se as informações do chamador existirem no CRM e já houver um novo incidente aberto com esse contato, o aplicativo abrirá o incidente em andamento

Se as informações do chamador não existirem no CRM, o aplicativo abrirá um novo incidente

Se as informações do chamador existirem no CRM, o aplicativo abrirá um novo incidente com detalhes pré-preenchidos

Visão geral

Esse caso de uso detalha o processo para adicionar uma coluna extra à tabela ServiceNow webexcc_imp_activity e criar sn_openframe_phone_log após a instalação do conector de CRM Webex CC for ServiceNow.

Por padrão, a tabela contém determinados campos e valores do sistema prontos para uso.

Você pode criar mais variáveis específicas do negócio (variáveis CAD) dentro do designer de fluxo WebExcc e adicionar as variáveis CAD dentro do registro de atividades pós-chamada do ServiceNow, bem como persistir isso nos dados da tabela de atividades pós-chamada.

Essa é apenas uma documentação de referência e mostra como fazer isso para uma amostra de variável CAD chamada Nome do cliente, que armazena o nome do cliente dentro do IVR e o publica no ServiceNow.

Espera-se que os desenvolvedores do Partner+Customer ServiceNow configurem e gerenciem essa configuração, pois é uma personalização do conector existente.

A Cisco fornece apenas as técnicas de como personalizar e estender o conector.

Até este artigo, a equipe da Cisco validou o suporte para a adição da variável CAD ao registro de atividades e à tabela de atividades usando a técnica descrita abaixo:

Adicionar coluna à atividade WebExcc IMP

  1. Edite a tabela na versão para desenvolvedores do ServiceNow.

    ServiceNow developer instance WebexCC IMP activity table.

  2. Vá até o navegador de filtros e pesquise por studio.

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

    Selecione Webex Contact Center

    Studio app for ServiceNow with the Select Application window open.

    ou

    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. Selecione a tabela de atividades do WebExcc IMP

    Studio app for ServiceNow WebexCC IMP Activity table.

  4. Adicione uma nova coluna, por exemplo, 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.

Adicionar coluna ao registro do telefone

  1. Edite a tabela de registro do telefone.

    ServiceNow developer instance search for a phone log table.

    ServiceNow developer instance phone log table.

  2. Adicione uma nova coluna, por exemplo, 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 transformação de atividades do WebExcc

Studio app for ServiceNow WebexCC Activity Transform Map.

Adicione uma nova coluna, por exemplo, mapeamento 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 colunas da 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 o Service Now recomenda, altere a ação Choice de criar para 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.

Vá para Script Include

Adicione somente uma linha webexcc. u_customername=ActInfo.customerName para PropUtils.

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

ServiceNow developer instance Script Includes page.

Exemplo de script

Veja a linha: webexcc. u_customername=actInfo.customerName; com um comentário de apoio.

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'
});

Crie uma variável CAD no Flow Designer

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

Adicione a variável CAD ao layout da área de trabalho

Exemplo

"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 tela de demonstração

Visualize a variável CAD recém-adicionada na tabela de atividades do 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.

Criar variável CAD para o Flow Designer

Urgência do incidente

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

Impacto do incidente

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

Atualização do script Service Now

As atualizações do script incluem

  1. Vá para o navegador de filtros e pesquise por script includes

    Selecione a opção Script Includes em System UI.

    ServiceNow developer instance filter navigator search for ‘script includes’

  2. Filtre o nome com propUtils.

    ServiceNow developer instance Script Includes name filter by ‘propUtils’

  3. Altere o método userGetSysID no campo Script.

    ServiceNow developer instance Script Includes – propUtils details page.

    Script atual:

    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;
    },

    Novo exemplo de código para o 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;
            },

Uma mudança de método nas páginas da interface do usuário
  1. Vá até o navegador de filtros e pesquise por UI pages.

    Selecione a opção UI Pages em System UI.

    ServiceNow developer instance filter navigator search for ‘Ui page’

  2. Filtre as páginas da interface do usuário com o nome e pesquise por agentdesktop.

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

  3. Altere a função screenpop no campo do script.

    ServiceNow developer instance UI Page – agentdesktop details page.

    Função atual:

    // 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
    });
    
    }

    Exemplo de código para o 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));
       
    }

Se as informações do chamador existirem no CRM e não houver nenhum incidente novo ou em andamento, o aplicativo abrirá um novo incidente.

ServiceNow example of an incident.

ServiceNow example of an interaction.

Altere o código no ServiceNow

Adicionar novas colunas à tabela de atividades do WebExcc IMP

Abra a tabela de atividades do WebExcc IMP

ServiceNow developer instance WebexCC Activity TransformMap.

ServiceNow developer instance WebexCC Activity TransformMap details page.

Adicionar uma nova coluna - InteractionsNumber

ServiceNow developer instance WebexCC Activity TransformMap new column, InteractionNumber.

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

Adicionar uma nova coluna - IncidentNumber

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

Clique em Atualizar.

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.

Adicionar novas colunas à tabela de registro telefônico

Abra a tabela de registros telefônicos

ServiceNow developer instance Phone Log table.

Adicionar uma nova coluna - 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.

Adicionar uma nova coluna - IncidentNumber

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 transformação de atividades do WebExcc

Abra o mapa de transformação no navegador de filtros

ServiceNow developer instance filter navigator search for ‘transform map’

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

Clique em WebExcc Activity TransformMap

ServiceNow developer instance WebexCC Activity TransformMap.

Adicionar novo - para mapa de números de interação

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

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

Adicionar novo - para mapa de números de incidentes

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

Clique em Atualizar.

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

As alterações no script incluem

  1. Vá para o navegador de filtros e pesquise por “script includes”.

    Selecione o script incluído na interface do usuário do sistema.

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

  2. Filtre o nome com PropUtils.

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

  3. Altere o método setWebExccTable.

    ServiceNow developer instance Script includes - propUtils page

    Novo código de amostra para Incident:

    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;
           },

Alterações de método nas páginas da interface do usuário

  1. Vá para o navegador de filtros e pesquise páginas de interface do usuário

    Selecione a opção UI Pages em System UI.

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

  2. Filtre as páginas da interface do usuário com o nome e pesquise por agentdesktop.

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

  3. Altere a função NowActivities e screenpop no script.

    ServiceNow developer instance UI Page – agentdesktop.

    Função atual:

    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);
    
    
    }

    Exemplo de código para o 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 após a atualização

ServiceNow developer instance Phone Logs page.

As personalizações a seguir se aplicam às versões 1.0.5 e anteriores. Para as personalizações das versões mais recentes 1.0.7 e superiores, siga as etapas acima.

Personalização nº 1 — Adicione regras de negócios personalizadas para casos de uso de fluxo de chamadas

Crie um novo registro de incidentes para cada chamada

Para cada nova chamada para o conector WebExcc CRM no ServiceNow, crie um novo registro de incidente.

  1. Pesquise regras de negócios no navegador de filtros

    ServiceNow developer instance Business Rules page header.
  2. Clique em Novo.

    ServiceNow developer instance Business Rule – New Record.

    Exemplo de código para referência:

    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;
    }

    Exemplo de configuração da regra de negócios

    ServiceNow developer instance Business Rule – CTI Processing For Incident page as a sample configuration of the business rule.
  3. Habilitar cliente que pode ser chamado

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

    O processamento de incidentes por integração telefônica por computador (CTI) está marcado como verdadeiro.

    ServiceNow developer instance Business Rules page showing the Client callable column with options to select ‘true’ or ‘false’
  4. Atualize o URL do screenpop com a regra CTI personalizada "cti.do? sysparm_cti_rulesysparm_caller_phone=CriarIncidente& =”

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

O sysparm_cti_rule=name em que 'name' é o nome de uma função deve ser invocado para processamento de CTI em vez de usar o script padrão.

Defina a função em uma sys_scriptentrada marcada como cliente chamável.

Se você precisar inserir, atualizar ou excluir qualquer GlideRecord na função, chame uma função separada que não seja do cliente para realizar as atualizações.

Para tornar um script chamável pelo cliente, você deve marcar a caixa de seleção chamável pelo cliente no formulário que é exibido quando a entrada é exibida. sys_script

A caixa de seleção que pode ser chamada pelo cliente não aparece por padrão. Para visualizar, você deve modificar os campos que aparecem no formulário usando o ícone de engrenagem e o mecanismo de balde de lama.

Referências

Personalização nº 2 - Adicionar variável CAD na tabela de atividades do Webex Contact Center

Visão geral

Este artigo detalha o processo para adicionar uma coluna adicional à tabela ServiceNow, criada após a instalação do conector de CRM Webex CC for ServiceNow. webexcc_activity

Por padrão, a tabela contém campos e valores do sistema prontos para uso.

Você pode potencialmente criar mais variáveis específicas do negócio (variáveis CAD) dentro do designer de fluxo WebExcc e adicionar essas variáveis CAD ao registro de atividades pós-chamada do ServiceNow e persistir isso nos dados da tabela de atividades pós-chamada.

  • Essa é apenas a documentação de referência e mostra como fazer isso para uma amostra de variável CAD chamada Nome do cliente, que armazena o nome do cliente dentro do IVR e o publica no ServiceNow.

  • Os desenvolvedores do Partner+Customer ServiceNow configurarão e gerenciarão essa configuração, pois é uma personalização do conector existente.

  • A Cisco fornecerá apenas as técnicas de como personalizar e estender o conector.

  • Até este artigo, a equipe da Cisco validou o suporte para a adição da variável CAD ao registro de atividades e à tabela de atividades usando a técnica descrita abaixo.

Adicionar coluna à atividade WebExcc
  1. Edite a tabela na versão para desenvolvedores do ServiceNow.

    ServiceNow developer instance Table – WebexCC Activity page.
  2. Vá para o Studio > Webex Contact Center.

    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. Selecione a tabela de atividades do WebExcc.

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

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

    App Engine Studio WebexCC Activity table screen.

  5. Selecione Layout de lista para a atividade WebExcc.

    App Engine Studio WebexCC Activity table list layout showing ‘CustomerName’ highlighted in the ‘Selected’ column.
Criar um novo script Inclui

Essa etapa não é necessária se você estiver usando o XML do Conjunto de Atualizações - É necessário adicionar apenas uma linha "webexcc. u_customername=ActInfo.customerName "para 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.

Exemplo de script

Veja a linha com: webexcc. u_customername=actInfo.customerName; com um comentário de apoio.

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 a página da interface do usuário com um novo nome de scriptApp Engine Studio agentdesktop UI page with new script name.

Crie uma variável CAD no Flow DesignerWebex Contact Center flow designer with Add Flow Variable popup showing adding a CustomerName variable.

Adicione a variável CAD ao layout da área de trabalhoWebex Contact Center CAD variable to the desktop layout script with ‘CustomerName:CustomerName’ highlighted.

Capturas de tela de demonstração

Visualize a variável CAD recém-adicionada na tabela de atividades do WebExcc.

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

ServiceNow developer instance WebexCC Activities screen.

O conector CRM opera com base na versão do widget especificada no JSON do layout da área de trabalho. É extremamente importante garantir que a versão do widget no layout da área de trabalho seja mantida atualizada.

Espera-se que os administradores garantam que todos os layouts de desktop desse conector de CRM usem essa versão do 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 atualização do ServiceNow — .1.0_v5.0.3.jsonServiceNow_Desktop_0. Em março de 2024, a versão do pacote é 1.0.9
  • Última atualização de XML — Webexcc-ServiceNow-Update-setV7-1-ActionsWidget.xml, junho de 2024

Este artigo foi útil?
Este artigo foi útil?