Central de Contato Webex Integrate com o ServiceNow
Quando você integra o Webex Contact Center ao console ServiceNow CRM, é possível iniciar Webex Contact Center Desktop dentro do ServiceNow.
Pré-requisitos
Antes de integrar a Webex Contact Center ao console ServiceNow CRM, certifique-se de ter o seguinte:
-
Acesso à Webex Contact Center.
-
O acesso do administrador ao Hub de controle nohttps://admin.webex.com e no Webex Contact Center Management Portal. As URLs do Portal de Gerenciamento são específicas à sua região.
-
América do Norte: https://portal.wxcc-us1.cisco.com
-
Reino Unido: https://portal.wxcc-eu1.cisco.com
-
Cingapura: https://portal-v2.wxcc-sg1.cisco.com
-
-
Um agente com acesso à Área de trabalho. A URL da Área de trabalho é específica à sua região.
-
América do Norte: https://desktop.wxcc-us1.cisco.com
-
Reino Unido: https://desktop.wxcc-eu1.cisco.com
-
Cingapura: https://desktop.wxcc-sg1.cisco.com
-
-
O acesso do agente ao seguinte domínio adicionado na Lista de permitidos de diretivas de segurança de conteúdo:
-
*.service-now.com
Para obter mais informações sobre como definir a lista de permitidos, consulte as Configurações de segurança do Webex Contact Center.
-
-
Uma conta do portal de desenvolvedor ServiceNow. Para criar uma conta, vá para o portal de desenvolvedor ServiceNow em https://developer.servicenow.com/dev.do e clique em Sign up and Start Building.
-
Acesse os seguintes arquivos em https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow:
-
ServiceNow Update Set (XML)
-
Layout do ServiceNow Contact Center Desktop (JSON)
-
- As edições do ServiceNow que Webex Contact Center suportam são Vancouver, Utah, Tokya, Washington e Xanadu. Para obter mais informações, consulte Webex Integração da central de contatos com o ServiceNow.
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é . |
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 |
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 Navegador de filtro , navegue até . |
2 |
Clique em Novo. |
3 |
Digite as seguintes propriedades para o URL:
|
4 |
À direita do campo URL , clique no botão Bloquear e adicione |
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 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 . |
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 plugin estiver concluída, clique em Fechar e recarregar formulário na caixa de diálogo Ativação do plugin . |
8 |
Para verificar a ativação do plugin, 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 plugin OpenFrame apareça na lista Configurações OpenFrame . |
Instâncias que possuem licenças corporativas podem instalar o aplicativo Webex Contact Center diretamente da ServiceNow Store.
Baixe e instale o pacote Webex Contact Center da loja ServiceNow: https://store.servicenow.com/sn_appstore_store.do#!/store/application/6c8e2a4edbc73410e1c75e25ca961947. |
1 |
No campo Navegador de filtros no canto superior esquerdo da janela, digite |
2 |
Na página Propriedades do Sistema , classifique as propriedades por data de atualização. Certifique-se de que você pode ver as seguintes propriedades do Contact Center Webex: |
3 |
Clique em agentdesktop_url para abrir a página Propriedade do sistema agentdesktop_url . |
4 |
No campo Valor , insira a URL do Contact Center Desktop Webex 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 de atividades, edite as propriedades x_caci_webexcc.webexccactivitytable conforme necessário.
|
7 |
(Opcional) Adicione grupos de usuários das seguintes maneiras:
|
1 |
No campo Navegador de filtros , navegue até . |
2 |
Clique em Novo. |
3 |
Insira as seguintes propriedades para o URL:
|
4 |
À direita do campo URL , clique no botão Bloquear e adicione |
5 |
(Opcional) Selecione os grupos de usuários/agentes para atribuir a configuração. |
6 |
Clique em Enviar. O URL aparece como um link. |
7 |
No campo Navegador de filtros , navegue até . |
8 |
(Opcional) Na lista Grupo de usuários , mova os grupos de usuários que podem acessar o Contact Center Desktop Webex de Disponível para Selecionado. |
9 |
Antes de tentar usar o telefone OpenFrame, certifique-se de carregar o arquivo JSON do Layout de Área de Trabalho personalizado do ServiceNow no Portal de Gerenciamento do Contact Center Webex. Para obter mais informações, consulte Configurar o layout da área de trabalho do ServiceNow no Webex Contact Center. |
1 |
Baixe o layout da área de trabalho para o ServiceNow em https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow. |
2 |
Atualize as propriedades no arquivo Desktop Layout, se necessário. |
3 |
Acesse o Portal de Gerenciamento do Contact Center Webex. |
4 |
Na barra de navegação do Portal de geranciamento, escolha . |
5 |
Clique em Novo layout e insira os detalhes do layout da área de trabalho. |
6 |
Carregue o arquivo JSON do Layout da Área de Trabalho do ServiceNow. |
7 |
Clique em Salvar para salvar a configuração. Agora você pode iniciar o Contact Center Desktop Webex no console do ServiceNow. |
8 |
No campo Navegador de filtros , navegue até . |
1 |
No campo Navegador de filtros , 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 Agora você pode começar a usar o Webex Contact Center Desktop no console ServiceNow. |
4 |
No campo Navegador de filtro , navegue até a . |
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 .
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-
Vá até o navegador de filtro e procure
Script inclui
.Selecione o script Inclui em IU do sistema.
-
Filtre o nome e procure
propUtils
. -
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); },
-
Vá para filtrar o navegador e procure a
página
de IU.Selecione páginas de UI em IU do sistema.
-
Filtre o nome e procure
área de trabalho do agente
. -
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
-
Edite a tabela na versão do desenvolvedor do ServiceNow.
-
Vá até o navegador de filtros e procure estúdio.
Selecionar
Webex Contact Center
ou
-
Selecione a caixa de seleção
AtividadeS IMP do WebexCC
mesa -
Adicionar uma nova coluna, por exemplo,
Nome do Cliente
Adicionar coluna ao registro do telefone
-
Edite a tabela de registro do telefone.
-
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 incidenteImpacto do incidente
Atualização do script Service Now
Atualizações do script incluem
-
O navegador de filtros e a procura do
script incluem:
Selecione a opção Script Inclui em Interface de Usuário do Sistema.
-
Filtre o nome com
propUtils
. -
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; },
-
Vá até o navegador de filtros e procure páginas
de
interface de usuário.Selecione a opção Páginas de UI em Interface de Usuário do sistema.
-
Filtre as páginas de interface de usuário com nome e procure
agentdesktop
. -
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 WebexCCmesa 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
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
Clique em Update (Atualizar).
Alterações no script incluem
-
Vá até o navegador de filtro e procure por "script inclu".
Selecione o script Inclui em IU do sistema.
-
Filtrar o nome com
propUtils
. -
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
-
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.
-
Filtre as páginas de interface de usuário com nome e procure agentdesktop
.
-
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 chamadaPara cada nova chamada no conector WebexCC CRM no ServiceNow, crie um Novo Registro de Incidente.
Pesquisar regras de negócios no navegador do filtro
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
Ativar cliente para chamada
O processamento de Integração entre computação e telefonia (CTI) para Incidente é marcado como Verdadeiro.
Atualize a url do screenpop com a Regra de CTI personalizada" cti.do?sysparm_cti_rule=createIncident&sysparm_caller_phone="
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.
Personalização nº 2 - Adicionar variável CAD na tabela de atividades Webex Central de contatos
Visão geralEste 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.
Edite a tabela na versão do desenvolvedor do ServiceNow.
Vá para o
.Selecione a tabela de Atividades do WebexCC.
Por exemplo, CustomerName.
Selecione Layout de lista para atividades WebexCC.
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 scriptCriar 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.