Pré-requisitos

Atualmente, esse recurso se aplica apenas a agentes.

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

Siga um dos dois métodos abaixo:

Para casos de desenvolvedor, recomendamos seguir as etapas sob o guia de instância do desenvolvedor.

Se você possuir uma instância licenciada por empresa, siga as diretrizes para instâncias licenciadas por empresa.

Não recomendamos misturar o aplicativo licenciado pela empresa com instâncias de caixa de areia de desenvolvedor.

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

1

Inicie uma sessão na sua conta do portal de desenvolvedor ServiceNow e abra o console de administração .

2

Na área Minha instância do menu Conta , clique em Iniciar construção.

3

No caso do seu desenvolvedor, no campo Filtrar navegador no canto superior esquerdo da janela, vá para Plugins.

4

Procure o plug-in Openframe que possui o título Openframe. Pode ser necessário percorrer a lista.

5

Clique em Instalar para instalar o plug-in Openframe.

6

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

7

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

8

Para verificar a ativação do plug-in, no campo Filtro do navegador no canto superior esquerdo da janela, navegue até OpenFrame.

9

Clique em Configurações e assegure-se de que o plug-in OpenFrame apareça na lista Configurações de estrutura aberta.

1

Faça o download do arquivo XML mais recente conjunto de atualizações do sistema disponível no novo focalizado neste local: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.

Nome do arquivo: webexcc-servicenow-update-setV(X).xml

2

Em sua instância ServiceNow, no campo Navegador de filtro , na parte superior esquerda da janela, navegue até Conjuntos de atualização do sistema> Conferências de Configurações para Confirmar.

3

Clique em Importar conjunto de atualização de XML link.

4

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

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

Na lista Conjuntos de atualização recuperados, clique no Nome do arquivo do conjunto de atualizações (link) para abrir o Conjunto de atualizações.

6

No canto superior direito da janela, clique em Visualizar atualização definido para verificar o conjunto de atualizações dos problemas.

7

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

8

Clique em Confirmar conjunto de atualização.

9

Clique em Fechar , na caixa de diálogo Atualizar conjunto de confirmação , depois que a realização do Conjunto de Atualizações for concluída.

1

No campo Filtro do navegador no canto superior esquerdo da janela, digite sys_properties.list e pressione Enter.

2

Na página Propriedades do sistema, classifique as propriedades pela data atualizada. Verifique se você pode ver as seguintes propriedades da Webex Central de contatos:

3

Clique em agentdesktop_url para abrir a página agentdesktop_url de propriedade do sistema.

4

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

5

Clique em Atualizar para salvar as alterações.

6

(Opcional) Para alterar o nome da tabela Atividade, edite as propriedades da webexccitytable conforme necessário.

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

Altere o campo Valor conforme necessário.

7

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

  1. No campo Filtro do navegador no canto superior esquerdo da janela, navegue para Grupos em Segurança do sistema.

  2. Crie um novo grupo de usuários ou use um existente.

  3. Clique em Editar.

  4. Procure sn_openframe_user na Coleção e mova-o para seu grupo de usuários.

  5. Clique em Save (Salvar).

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

1

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

2

Clique em Novo.

3

Digite 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.do como URL. (Faça essa etapa para apontar a configuração para a página UI)

5

(Opcional) Selecione o Usuário/Grupos de Agentes para atribuir a configuração.

6

Clique em Enviar. A URL é exibida como um link.

7

Antes de tentar usar o telefone OpenFrame, assegure-se de fazer o upload do arquivo JSON de Layout de Área de Trabalho personalizado ServiceNow no Webex Contact Center Management Portal. Para obter mais informações, consulte Configurar o ServiceNow Desktop Layout na Webex Contact Center.

1

Faça o download do layout de Desktop para ServiceNow de https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.

2

Atualize as propriedades no arquivo Layout de área de trabalho, se necessário.

3

Vá para o Webex Portal de Gerenciamento de Central de Contatos.

4

Na barra de navegação do Portal de Gerenciamento, escolha Layout de Provisionamento >Desktop.

5

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

6

Carregue o arquivo JSON de layout de área de trabalho ServiceNow.

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 filtro , navegue até a área de trabalho de operações de serviço.

Página inicial ServiceNow com o Webex Contact Center Agent Desktop integrado ao ServiceNow.

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

1

Inicie uma sessão na sua conta do portal de desenvolvedor ServiceNow e abra o console de administração .

2

Na área Minha instância do menu Conta , clique em Iniciar construção.

3

No caso do seu desenvolvedor, no campo Filtrar navegador no canto superior esquerdo da janela, vá para Plugins.

4

Procure o plug-in Openframe que possui o título Openframe. Pode ser necessário percorrer a lista.

5

Clique em Instalar para instalar o plug-in Openframe.

6

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

7

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

8

Para verificar a ativação do plug-in, no campo Filtro do navegador no canto superior esquerdo da janela, navegue até OpenFrame.

9

Clique em Configurações e assegure-se de que o plug-in OpenFrame apareça na lista Configurações de estrutura aberta.

1

No campo Filtrar navegador no canto superior esquerdo da janela, digite sys_properties.list.

2

Na página Propriedades do sistema, classifique as propriedades pela data atualizada. Verifique se você pode ver as seguintes propriedades da Webex Central de contatos:

3

Clique em agentdesktop_url para abrir a página agentdesktop_url de propriedade do sistema.

4

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

5

Clique em Atualizar para salvar as alterações.

6

(Opcional) Para alterar o nome da tabela atividade, edite as propriedades x_caci_webexcc.webexccitytable conforme necessário.

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

  2. Altere o campo Valor conforme necessário.

7

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

  1. No campo Filtro do navegador no canto superior esquerdo da janela, navegue para Grupos em Segurança do sistema.

  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

1

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

2

Clique em Novo.

3

Digite 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.do como a URL. (Faça essa etapa para apontar a configuração para a página UI)

5

(Opcional) Selecione o Usuário/Grupos de Agentes para atribuir a configuração.

6

Clique em Enviar. A URL é exibida como um link.

7

No campo Navegador de filtro , navegue até a área de trabalho de operações de serviço.

Página inicial ServiceNow com o Webex Contact Center Agent Desktop integrado ao ServiceNow.

8

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

9

Antes de tentar usar o telefone OpenFrame, assegure-se de fazer o upload do arquivo JSON de Layout de Área de Trabalho personalizado ServiceNow no Webex Contact Center Management Portal. Para obter mais informações, consulte Configurar o ServiceNow Desktop Layout na Webex Contact Center.

1

Faça o download do layout de Desktop para ServiceNow de https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow.

2

Atualize as propriedades no arquivo Layout de área de trabalho, se necessário.

3

Vá para o Webex Portal de Gerenciamento de Central de Contatos.

4

Na barra de navegação do Portal de Gerenciamento, escolha Layout de Provisionamento >Desktop.

5

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

6

Carregue o arquivo JSON de layout de área de trabalho ServiceNow.

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 filtro , navegue até a área de trabalho de operações de serviço.

Página inicial ServiceNow com o Webex Contact Center Agent Desktop integrado ao ServiceNow.

1

No campo Filtrar navegador , navegue até Incidentes > Abrir Incidente.

2

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

3

Adicionar Atributos Separados por Vírgula"ref_contributions=show_phone,.

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

4

No campo Navegador de filtro , navegue até a área de trabalho de operações de serviço.

Página inicial ServiceNow com o Webex Contact Center Agent Desktop integrado ao ServiceNow.

Agent Desktop no console ServiceNow

Antes de efetuar chamadas efetuadas, assegure-se de fazer o seguinte:

  • Crie o ponto de entrada de saída e configure uma estratégia de ponto de entrada de saída.

  • Ative a ANI de saída para o Perfil do agente.

  • Defina o ANI de saída para um mapeamento de Ponto de discagem número-entrada.

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

No campo Navegador de filtro , navegue até a área de trabalho de operações de serviço.

Página inicial ServiceNow com o Webex Contact Center Agent Desktop integrado ao ServiceNow.

Para obter informações sobre como usar Área de trabalho, consulte a guia Agente na Webex ajuda da Central de contatos.

Visão geral

Este artigo aborda várias maneiras de personalizar as regras de negócios para o conector ServiceNow CRM. Ele detalha como você pode personalizar os casos de uso com base em regras comerciais que são específicas ao ServiceNow.

O cliente deve auto-gerenciar esses casos de uso no ServiceNow. A configuração é específica do ServiceNow e não Webex software ou expertise da Central de contato.

Esta é uma documentação de referência para ajudar na modificação das regras comerciais. Os desenvolvedores do ServiceNow criarão e gerenciarão as regras comerciais e fornecerão suporte.

A Cisco fornece apenas a documentação de exemplo.

As seções a seguir fornecem detalhes sobre como configurar, habilitar e gerenciar ações do widget para instâncias do desenvolvedor e da empresa.

Confirmar o conjunto de atualização para ações do Widget

Para instâncias empresariais licenciadas, instale o mais recente aplicativo Webex Contact Center na loja ServiceNow.

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

Habilitar widget Ações

Use a propriedade isWidgetDisplayEnabled para habilitar o widget Ações. Você não deve modificar o valor dessa propriedade na seção sem cabeça do layout de desktop personalizado. A propriedade sempre é definida como falsa na seção sem cabeça do layout de desktop personalizado. Você deve atualizar o valor da propriedade apenas na seção do painel do layout de área de trabalho personalizado.

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

  • Gerenciar registros de atividades—Clique em Exibir/Editar Registro de Atividade para exibir a lista de registros de atividades associados ao chamador.
  • Associar objetos CRM—Clique em Associar aos registros de atividades para adicionar objetos CRM, como tipo de chamada (entrada ou saída), objeto de chamada, notas de chamada e assim por diante no registro de atividade.
  • Gerenciar incidentes—Clique em Criar incidente. Um novo incidente é criado com os detalhes do chamador preenchidos automaticamente. 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 Ações. 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 finalização da chamada. É possível ver essas notas adicionadas como notas de chamada no registro de atividade.

Alteração de código no ServiceNow

O Script inclui alterações
  1. Vá até o navegador de filtro e procure Script inclui.

    Selecione o script Inclui em IU do sistema.

  2. Filtre o nome e procure propUtils.

  3. Alterar o método IDD do usuário no script.

    Curent:

    UserGetSysId: função () { var opened_for; usuário var = new GlideRecord("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); se (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 código de exemplo para o incidente:

    UserGetSysId: função () { var opened_for; //Incident related changes var sysidlist = {}; usuário var = novo 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 = novo GlideRecordSecure('interação'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'telefone'; grInt.opened_for= opened_for; var sysid=grInt.insert(); sysidlist.sysid=sysid; retornar JSON.stringify(sysidlist); },

Alteração de método em páginas de IU
  1. Vá para filtrar o navegador e procure a página de IU.

    Selecione páginas de UI em IU do sistema.

  2. Filtre o nome e procure área de trabalho do agente.

  3. Alterar a screenpop Função no script Cliente.

    Função atual:

    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({ entidade: 'interaction', consulta: 'sys_id='+sysid });

    Código de exemplo para o incidente:

    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({ entidade: 'incidente', consulta: 'sys_ id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entidade: 'incidente', consulta: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid //'a2ba0ba62fd121106446cc96f699b6b8' }); }

Se a informação do chamador existir no CRM, e já houver um novo incidente aberto com esse contato, o aplicativo abre o incidente

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

Se a informação do chamador existir 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 na instalação do Webex CC do Conector ServiceNow CRM.

Por padrão, a tabela contém determinados campos e valores de sistema fora da caixa.

Você pode criar mais variáveis específicas ao negócio (Variáveis CAD) dentro do Designer de Fluxos WebexCC e adicionar as variáveis CAD dentro do log de atividades pós-chamada ServiceNow, bem como manter isso nos dados da tabela de atividades pós-chamada.

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

Espera-se que os desenvolvedores parceiro+cliente ServiceNow configurem e gerenciem essa configuração, uma vez que é uma personalização para o conector existente.

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

A partir deste artigo, a equipe da Cisco validou o suporte para a adição da variável CAD à Tabela de Log de Atividades e Atividades usando a técnica descrita a seguir:

Adicionar coluna à atividade IMP do WebexCC

  1. Edite a tabela na versão do desenvolvedor do ServiceNow.

  2. Vá até o navegador de filtros e procure estúdio.

    Selecionar Webex Contact Center

    ou

  3. Selecione a caixa de seleção AtividadeS IMP do WebexCC mesa

  4. Adicionar uma nova coluna, por exemplo, Nome do Cliente

Adicionar coluna ao registro do telefone

  1. Edite a tabela de registro do telefone.

  2. Adicionar uma nova coluna, por exemplo, Nome do Cliente.

Mapa de Transformação das Atividades do WebexCC

Adicionar uma nova coluna, por exemplo, Nome do Cliente Mapeamento de campos.

Personalizar colunas da lista

Como o Serviço Agora recomenda, altere a ação Escolha de criar para ignorar.

Configurar lista de registros do telefone

Ir para Script Incluir

Adicionar apenas uma linha webexcc.u_customername=actInfo.CustomerName A propUtils.

Exemplo de script

Consulte a linha: webexcc.u_customername=actInfo.CustomerName; com um comentário de suporte.

var propUtils = Class.create(); propUtils.prototype = Object.extendsObject(global. AbstractAjax Encapsulaor,{ 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 // retornar nulo; var grInt = novo GlideRecord('interação'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'telefone'; grInt.opened_for= opened_for; var sysid=grInt.insert(); sysid retorno; }, 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; Esta linha é adicionada - para capturá-la no Log de atividades webexcc.u_customername=actInfo.CustomerName; sys_id=webexcc.insert(); Atividades no registro de incidente; var actInfoString =this.getParameter('actInfo'); var suser = novo GlideRecordSecure("sys_user"); suser.addQuery("telefone", isto.getParameter('ani')); suser.consulta(); 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(); } } retornar sys_id; }, tipo: 'propUtils' });

Criar uma variável CAD no Designer de Fluxos

Adicione a variável CAD ao Layout da Área de Trabalho

Exemplo

"CadName1:SnowField1,CadName2:SnowField2" CadName1 é CustomerName SnowField1 também é usado como CustomerName, que é parte de exemplo de showen de ficção científica acima de "actInfo.CustomerName".

Demonstração de que a demo se torna uma demo,

Visualize a variável CAD recém-adicionada na tabela de Atividades WebexCC.

Criar variável CAD para Designer de Fluxos

Urgência de incidente

Impacto do incidente

Atualização do script Service Now

Atualizações do script incluem

  1. O navegador de filtros e a procura do script incluem:

    Selecione a opção Script Inclui em Interface de Usuário do Sistema.

  2. Filtre o nome com propUtils.

  3. Alterar o método IDD do usuário no campo Script .

    Script atual:

    UserGetSysId: função () { var opened_for; usuário var = new GlideRecord("sys_user"); user.addQuery(this.getParameter('field'),this.getParameter('value')); user.query(); se (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 código de exemplo para o incidente:

    UserGetSysId: função () { var opened_for; var sysidlist = {}; usuário var = novo 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 = novo GlideRecordSecure('interação'); grInt.initialize(); grInt.assigned_to= gs.getUserID(); grInt.type= 'telefone'; grInt.opened_for= opened_for; var sysid=grInt.insert(); sysidlist.sysid=sysid; retornar JSON.stringify(sysidlist);/sysid; },

Uma alteração de método nas páginas IU
  1. Vá até o navegador de filtros e procure páginas deinterface de usuário.

    Selecione a opção Páginas de UI em Interface de Usuário do sistema.

  2. Filtre as páginas de interface de usuário com nome e procure agentdesktop.

  3. Alterar a screenpop Função no campo script.

    Função atual:

    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({ entidade: 'interaction', consulta: 'sys_id='+sysid }); }

    Código de exemplo para o incidente:

    screenpop da função pop da tela(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', 'telefone'); 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({ entidade: 'incident', consulta: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entidade: 'incidente', consulta: '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 incidentes novos ou reais, o aplicativo abrirá um novo incidente

Alterar o código no ServiceNow

Adicionar novas colunas ao AtividadeS IMP do WebexCC mesa

Abrir o ícone AtividadeS IMP do WebexCC mesa

Adicionar uma nova coluna - Número de interações

Adicionar uma nova coluna - Número de incidentes

Clique em Atualizar.

Adicionar novas colunas ao Log do Telefone mesa

Abrir o ícone Log do Telefone mesa

Adicionar uma nova coluna - Número de interações

Adicionar uma nova coluna - Número de incidentes

Mapa de Transformação das Atividades do WebexCC

Abrir Mapa de transformação A partir do navegador de filtros

Clique em Transformação das atividades do WebexCC

Adicionar novo - para Mapa do Número de Interação

Adicionar novo - para Mapa do Número de Incidente

Clique em Update (Atualizar).

Alterações no script incluem

  1. Vá até o navegador de filtro e procure por "script inclu".

    Selecione o script Inclui em IU do sistema.

  2. Filtrar o nome com propUtils.

  3. Alterar o método definirWebexcctable.

    Novo código de exemplo 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="; exclua actInfo['interaction_sys_id']; excluir actInfo['incident_sys_id']; if( interactionsysid!= null &&sysysid != indefinido){ 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.consulta(); 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(); } retornar sys_id; },

Alterações de método nas páginas UI

  1. Vá até o navegador de filtro e procure Páginas de IU

    Selecione a opção Páginas de UI em Interface de Usuário do sistema.

  2. Filtre as páginas de interface de usuário com nome e procure agentdesktop .

  3. Alterar a Agora atividades e screenpop Função no script.

    Função atual:

    função nowActivities(actInfo, ani) { var gaout = novo GlideAjax('propUtils'); gaout.addParam('sysparm_name', 'setWebexcctable'); gaout.addParam('actInfo', JSON.stringify(actInfo)); gaout.addParam('ani', stripPrefixes(ani)); gaout.getXML(SetCCsysId); } }

    Código de exemplo para o incidente:

    função nowActivities(actInfo, ani) { var sysObjstr = window.localStorage.getItem("screenpopinteraction"); if(sysObjstr != null &&sysObjstr != undefined) { var sysObjjson=JSON.parse(sysObjstr); actInfo.interaction_sys_id=sysObjson.sysid; actInfo.incident_sys_id=sysObjson.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); } função screenpop(callerani,callSessionInfo) { if(callerani===callSessionInfo.phoneNumber){ callerani=stripPrefixes(callerani); } var gaout = novo 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({ entidade: 'incidente', consulta: 'sys_id='+sysObj.incsysid, 'interaction_sys_id': sysObj.sysid }); }else{ openFrameAPI.openServiceNowForm({ entidade: 'incidente', consulta: 'sys_id=-1', 'interaction_sys_id': sysObj.sysid }); } window.localStorage.setItem("screenpopinteraction", JSON.stringify(sysObj)); } 

Resultados após a atualização

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

Personalização n.º 1 - Adicionar regras comerciais personalizadas para ocorrências de uso de fluxo de chamada

Crie um novo registro de incidente para cada chamada

Para cada nova chamada no conector WebexCC CRM no ServiceNow, crie um Novo Registro de Incidente.

  1. Pesquisar regras de negócios no navegador do filtro

  2. Clique em Novo.

    Código de exemplo para referência:

    função customcti() { url var = null; nome do var = sysparm_caller_name; eid = sysparm_caller_id; telefone var = 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 &ll&eid != '') { userID = UserGetSysId("employee_number",eid); } if (userID == null &ll &name != null &> name != '') { userID = UserGetSysId("name", nome); } 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; url de retorno; } função UserGetSysId(campo, valor) { usuário var = novo GlideRecord("sys_user"); user.addQuery(campo, valor); user.query(); if (user.next()) return user.sys_id; else return null; }

    Exemplo de configuração da regra comercial

  3. Ativar cliente para chamada

    O processamento de Integração entre computação e telefonia (CTI) para Incidente é marcado como Verdadeiro.

  4. Atualize a url do screenpop com a Regra de CTI personalizada" cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone="

Exemplo

O sysparm_cti_rule=nome em que 'nome' é o nome de uma função a ser invocada CTI Processamento , em vez de usar o script padrão.

Defina a função em uma entrada sys_script marcada para o cliente como callable.

Se precisar inserir, atualizar ou excluir quaisquer GlideRecords na função, chame uma função nãocliente à parte para efetuar as atualizações.

Para tornar um cliente de script callable, você deve marcar a caixa de seleção cliente-callable no formulário exibido quando o sys_script entrada é exibido.

A caixa de seleção cliente-callable 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 recipiente de slush.

Referências

Personalização nº 2 - Adicionar variável CAD na tabela de atividades Webex Central de contatos

Visão geral

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

Por padrão, a tabela contém campos e valores de sistema fora de caixa.

Você pode criar mais variáveis específicas de negócios (Variáveis CAD) dentro do Designer de Fluxos WebexCC e adicionar essas variáveis CAD no log de atividades pós-chamada ServiceNowe manter 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 variável CAD de exemplo chamada Nome do cliente que armazena o nome do cliente dentro da IVR e publica isso no ServiceNow.

  • Os desenvolvedores partner+customer ServiceNow configurarão e gerenciarão essa configuração, uma vez que é uma personalização para o conector existente.

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

  • A partir deste artigo, a equipe da Cisco validou o suporte para a adição da variável CAD à Tabela de Log de Atividades e Atividades usando a técnica descrita abaixo.

Adicionar coluna à atividade do WebexCC
  1. Edite a tabela na versão do desenvolvedor do ServiceNow.

  2. Vá para o Estudio > Webex Central de Contatos.

  3. Selecione a tabela de Atividades do WebexCC.

  4. Por exemplo, CustomerName.

  5. Selecione Layout de lista para atividades WebexCC.

Crie um novo Script Inclui

Esta etapa não será necessária se você estiver usando a XML Do conjunto de atualizações - somente uma linha será necessária para ser adicionada "webexcc.u_customername=actInfo.CustomerName" ao propUtils.

Exemplo de script

Consulte a linha com:webexcc.u_customername=actInfo.CustomerName; com um comentário de suporte.

var propUtils2 = Class.create(); propUtils2.prototype = Object.extendsObject(global. AbstractAjax Encapsulaor,{ 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; // Esta linha é adicionada - para capturá-la no Webexcc de atividade. u_customername=actInfo.CustomerName; sys_id=webexcc.insert(); Atividades no registro de incidente; var actInfoString =this.getParameter('actInfo'); var suser = novo GlideRecordSecure("sys_user"); suser.addQuery("telefone", isto.getParameter('ani')); suser.consulta(); 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(); } } retornar sys_id; }, tipo: 'propUtils2' });
Editar a página de interface de usuário com um novo nome de script

Criar uma variável CAD no Designer de Fluxos

Adicione a variável CAD ao Layout da Área de Trabalho

Demonstração de que a demo se torna uma demo,

Visualize a variável CAD recém-adicionada na tabela de Atividades WebexCC.