Contact Center AI Platform (plataforma CCAI) oferece integração com o CRM do ServiceNow.
Configurações de desenvolvedor do ServiceNow
Requisitos mínimos preferenciais da versão do ServiceNow: Tokyo patch 1
Configurar um usuário de autenticação básica
É provável que a conta de administrador do ServiceNow tenha a verificação em duas etapas ativada e associada a esse usuário. Por isso, não é possível usá-lo para conseguir acesso de administrador na plataforma CCAI. Para isso, crie uma conta de usuário no ServiceNow.
Crie um usuário básico com credenciais:
Acesse Usuário > Novo.
Preencha os detalhes e selecione "Acesso somente ao serviço da Web".
Anote o ID do usuário e a senha.
Funções necessárias no ServiceNow
As funções padrão no ServiceNow são pré-configuradas para fornecer acesso e permissões específicas na plataforma. Os administradores podem criar e configurar funções que concedem permissões específicas, que regem o que os usuários e grupos com essa função podem fazer.
Para fazer essa integração, você precisa ter as seguintes funções no ServiceNow:
user_admin: essa função foi criada para administradores que precisam gerenciar usuários, grupos, locais e empresas na instância do ServiceNow.
sn_incident_read: esse papel oferece acesso somente leitura ao aplicativo de gerenciamento de incidentes e às funções relacionadas. Ele permite que os usuários vejam registros de incidentes.
sn_incident_write: essa função concede acesso de gravação ao aplicativo de gerenciamento de incidentes e às funções relacionadas, permitindo que os usuários criem e modifiquem registros de incidentes.
personalize_dictionary: permite personalizar entradas e rótulos do dicionário para atender a requisitos específicos da empresa.
function_field_admin: essa função é destinada a usuários que precisam criar, editar e visualizar campos de função especificamente no designer de relatórios. Ela não permite criar ou excluir campos de função na lista ou no formulário da plataforma.
Configurar visualizações de instâncias
As seções a seguir descrevem as mudanças de configuração necessárias para visualizações de instâncias.
(Opcional) Adicionar favoritos
Os favoritos são uma maneira rápida de encontrar os links mais usados na instância do ServiceNow. Para adicionar um favorito, selecione o ícone de estrela ao lado de um campo no painel Navegador. Se quiser filtrar o painel do navegador para ver apenas seus favoritos, selecione o ícone de estrela diretamente abaixo do campo do navegador de filtros no painel "Navegador".
Exemplos de favoritos úteis:
- Incidentes: associações a registros para CRM personalizado.
- Usuários: associações a contas para CRM personalizado.
- Rest API Explorer: uma boa maneira de testar a API.
Adicionar campos personalizados manualmente
Selecione o ícone de expansão (três linhas horizontais) no canto superior esquerdo dentro da visualização do objeto que você quer mudar. Isso pode ser feito na visualização de autoatendimento ou padrão.
No menu, selecione Configurar > Design do formulário para abrir o Designer de formulários.
Na coluna à esquerda, selecione a guia Tipos de campo.
Arraste o tipo de campo personalizado que você quer adicionar.
Depois de soltar o tipo de campo na seção desejada, selecione o ícone de engrenagem para ver as Configurações.
Dentro da janela, mude o rótulo e anote o nome. O nome é o que você usa nas configurações do app da plataforma CCAI.
Selecione Salvar no canto superior direito da tela.
Mapear dados de sessão para o CRM
Você precisa mapear os dados de sessão adequados do CCAIP usando o Dialogflow e usar os seguintes parâmetros:
Dados do agente virtual
{
"ujet": {
"session_variable": {
"capture_target": "payload",
"payload": {
"value_one": "$session.params.payload_value_one"
};
"capture_type": [ "comment", "field" ] // optional, default of ["comment"]
}
}
}
Metadados
https://INSTANCE.service-now.com/api/now/table/sys_dictionary?sysparm_query=name%3Dsys_user https://INSTANCE.service-now.com/api/now/table/sys_dictionary?sysparm_query=name%3Dincident
Rótulo: column_label
Chave de API: element
Os campos personalizados estão no mesmo nível dos campos padrão na resposta de
sys_user ou incident.
Fazer upload de um arquivo da plataforma CCAI para o CRM
https://INSTANCE_URL.service-now.com/api/now/attachment/upload
Método: POST
Formato dos dados da solicitação: property
Local dos dados de resposta: data.result
Tipo: Multi-part form
Tipo de anexo: Attachment Url
URL do anexo: download_link
Parâmetros: table below
Exemplo de solicitação:
{
file: FILE_DATA,
table_name: incident,
table_sys_id: RECORD_ID
}
Integrar adaptadores de agentes (formulários personalizados)
As etapas a seguir mostram como ativar adaptadores de agente e a função Clique para ligar na instância do ServiceNow.
Instalar e configurar o OpenFrame
Acesse Todos > Aplicativos do sistema > Todos os aplicativos disponíveis > Todos.
Pesquise OpenFrame.
Instale o OpenFrame.
Depois de instalado, acesse Todos > OpenFrame > Configurações.
Crie uma configuração com um URL. Se você tiver várias configurações em uma instância do ServiceNow, talvez o usuário não tenha acesso a uma configuração recém-criada. Verifique seus grupos e a lista de pedidos de configuração do OpenFrame para determinar qual configuração seu usuário está usando.
Digite
sys_properties.listna pesquisa.Editar
glide.ui.concourse.onmessage_enforce_same_origin_whitelist.Adicione o novo URL à lista de valores.
Editar
sn_openframe.cross.origin.access.Adicione
autoplayà lista de valores.
Ativar a nova experiência de interface para usuários
Digite
sys_properties.listna barra de navegação e clique em Enter.Defina a propriedade do sistema
glide.ui.polaris.experiencecomo true.Defina a preferência do usuário
glide.ui.polaris.usecomo false para o sistema.Defina a preferência do usuário
glide.ui.polaris.usecomo true para um usuário. (Você pode criar uma linha de preferências do usuário.)
Atualizar propriedades do sistema
Digite
sys_properties.listna barra de navegação e clique em Enter.Editar
glide.ui.concourse.onmessage_enforce_same_origin_whitelist.Adicione o URL à lista de valores. Vários valores precisam ser separados por vírgulas.
Editar
sn_openframe.cross.origin.access.Adicione a reprodução automática à lista de valores.
Editar
glide.ui.polaris.experience.Mude para false, porque alguns recursos não funcionam se estiverem ativados.
Adicionar o recurso "Clique para ligar" à parte de cima do formulário
Acesse Interface do sistema > Ações da interface.
Selecione Criar nova ação.
No formulário ilustrado, selecione a tabela a que o recurso "Clique para ligar" vai pertencer.

Para formulários com uma referência a um contato ou usuário, use a API
g_form.getReferencepara acessar o número de telefone do usuário. Para tabelas personalizadas, o ID de referência e os atributos resultantes podem ser diferentes. A comunicação com a plataforma de CCAI será a mesma. Portanto, o payload e a estrutura de dados precisam permanecer idênticos ao seguinte:function clickToDial() { var user = g_form.getReference('caller_id',function(res) { var phone = res.phone || res.mobile_phone; var payload = {"name": "clicktodial", "number": phone}; var data = {"payload": payload, "method": "openframe_communication" }; CustomEvent.fireAll("openframe_request", data); }); }Para formulários com um número dentro do formulário para chamar, use a API
g_form.getValuepara recuperar os valores relevantes. Este é um exemplo da ação da UI para a tabela "Usuários". Para tabelas personalizadas, os nomes dos campos de formulário podem ser diferentes. A comunicação com a plataforma de CCAI será a mesma. Portanto, a carga útil e a estrutura de dados precisam permanecer idênticas ao seguinte:function clickToDial() { var phone = g_form.getValue('phone') || g_form.getValue('mobile_phone'); var payload = {"name": "clicktodial", "number": phone}; var context = {"payload": payload, "method" : "openframe_communication" }; CustomEvent.fireAll("openframe_request", context); }
Adicionar o recurso "Clique para ligar" ao lado das referências
O botão de chamada ao lado das referências a contatos precisa ser editado no formulário. Clique com o botão direito do mouse no campo e navegue até Configurar dicionário. Para atributos, adicione o valor
show_phoneoushow_phone_customer_serviceao valorref_contributions.Em macros de interface, edite
show_phoneeshow_phone_customer_service.Substitua:
Anterior:
var task = {"entity": p.attr('data-task-table'), "query" :"sys_id="+p.attr('data-task-id')+"$[AMP]sysparm_view="+p.attr('data-task-view'),"value":p.attr('data-task-value'),"label":p.attr('data-task-label')};
var company = {"entity": p.attr('data-company-table'),"query":"sys_id="+p.attr('data-company-id')+"$[AMP]sysparm_view="+p.attr('data-task-view'),"value":p.attr('data-company-value'),"label":p.attr('data-company-label')};
var caller = {"entity": p.attr('data-caller-table'),"query": "sys_id="+p.attr('data-caller-id')+"$[AMP]sysparm_view="+p.attr('data-task-view'),"value":p.attr('data-caller-value'),"label":p.attr('data-caller-label')};
var callContext = [];
callContext.push(task);
callContext.push(company);
callContext.push(caller);
var metaData = {"phoneNumber":p.attr('data-caller-phone'),"taskId":p.attr('data-task-id')};
var data = {"metaData":metaData , "data": callContext};
var payload = {"type": "OUTGOING_CALL", "data" : data};
var createInteractionData ={};
createInteractionData.interactionSysId = -1;
createInteractionData.direction = 'outbound';
createInteractionData.context_document = p.attr('data-task-id');
createInteractionData.context_table = p.attr('data-task-table');
createInteractionData.account = p.attr('data-company-id');
if(p.attr('data-caller-table') === 'customer_contact')
createInteractionData.contact = p.attr('data-caller-id');
createInteractionData.opened_for = p.attr('data-caller-id');
var ga = new GlideAjax('sn_openframe.OpenFrameAjaxUtility');
ga.addParam('sysparm_name', 'createInteractionWithPropertyCheck');
ga.addParam('context', JSON.stringify(createInteractionData));
ga.getXML(function(serverResponse) {
var result = serverResponse.responseXML.getElementsByTagName("result");
var output = JSON.parse(result[0].getAttribute("data"));
if(output.status == "success"){
var interaction = {"entity": "interaction", "query" :"sys_id="+output.fields.interactionSysId, "value":output.fields.number, "label":"Interaction", "display":false};
payload.data.data.push(interaction);
}
var context = {"payload": payload, "method" : "openframe_communication" };
jslog("context with interaction : "+ JSON.stringify(context));
CustomEvent.fireAll("openframe_request", context);
});
Novo:
var phone = p.attr('data-caller-phone')
var payload = {"name": "clicktodial", "number": phone};
var data = {"payload": payload, "method": "openframe_communication" };
CustomEvent.fireAll("openframe_request", data);
Configurações de CRM
As etapas a seguir ilustram como conectar a API ao ServiceNow usando o portal da plataforma CCAI.
No portal da plataforma CCAI, navegue até Configurações > Configurações do desenvolvedor > CRM.
Na seção "Plataforma do agente", selecione ServiceNow.
Insira as informações do seu domínio do ServiceNow no campo Domínio do ServiceNow. Pode ser uma instância de desenvolvedor ou de fornecedor, conforme necessário, mas é uma correlação direta com a instância e é a primeira parte do URL no endereço da Web do portal do ServiceNow:
https://{your instance}.servicenow.com.No campo Seleção da nuvem do ServiceNow, selecione
Incidentpara um tipo de tíquete básico. Se você selecionarCustom, outras opções vão aparecer. Incidentes são extensões da tabela de tarefas. Objetos personalizados precisam ser extensões de incidentes.Nos campos Credenciais de autenticação, insira seu nome de usuário e senha.
Se você selecionou
Incidentpara o tipo de campo de seleção do Cloud, os seguintes campos vão aparecer:- O objeto de pesquisa de conta inclui três campos suspensos:
Object Type,Phone Number lookup fieldsePhone number primary field.
- O objeto de pesquisa de conta inclui três campos suspensos:
Se você selecionou
Custompara o tipo de campo de seleção do Cloud, os seguintes campos vão aparecer:- Objeto de registro de pesquisa:
- Tipo de objeto de registro de base: selecione um tipo de tabela
taskouincident. - Tipo de objeto de registro: esse campo será preenchido com dados se uma tabela de incidentes tiver sido estendida, e você poderá selecioná-lo se necessário.
- Tipo de objeto de registro de base: selecione um tipo de tabela
- O objeto de pesquisa de conta inclui três campos suspensos:
Object Type,Phone Number lookup fieldsePhone number primary field.
- Objeto de registro de pesquisa:
Campos de ID do usuário personalizados: marque esta caixa se quiser ativar campos de pesquisa de usuário personalizados para sessões do SDK para dispositivos móveis ou da Web.
Formato do número de telefone: permite selecionar o formato que você quer usar para mostrar números de telefone.
Arquivo de metadados da sessão: marque esta caixa para anexar metadados da sessão aos registros do CRM.
Clique em Salvar para armazenar suas seleções. Se você marcou a caixa Campos de ID do usuário personalizados, poderá criar campos personalizados para registros. Isso vai adicionar guias de campos personalizados à parte de baixo de cada incidente do ServiceNow, abaixo das seções de código e observações de resolução da página.
Campos personalizados para registros
São campos personalizados que já foram criados para a instância do ServiceNow no Designer de formulários. As instruções sobre como criar outros campos personalizados estão na documentação do ServiceNow em Configuração do CRM do ServiceNow, seção Adicionar campos personalizados manualmente.
| Campo | Tipo | Definição |
|---|---|---|
u_ujet_custom_field_after_call_work |
String | Duração do trabalho após a ligação |
u_ujet_custom_field_call_duration |
String | Duração da chamada |
u_ujet_custom_field_comm_id |
Número inteiro | ID de chamada ou chat, dependendo do tipo de contato |
u_ujet_custom_field_rating |
Número inteiro | Pontuação de CSAT |
u_ujet_custom_field_email_via_web |
String | E-mail enviado da Web |
u_ujet_custom_field_feedback |
String | Feedback |
u_ujet_custom_field_from_phone_number |
String | Número de telefone do autor da chamada |
u_ujet_custom_field_hold_duration |
String | Tempo total de espera |
u_ujet_custom_field_menu_path |
String | Seleção de menu |
u_ujet_custom_field_queue_name |
String | Nome da fila |
u_ujet_custom_field_session_type |
String | Tipo de sessão |
u_ujet_custom_field_verification |
Verdadeiro/falso | Confirmar que a verificação foi concluída |
u_ujet_custom_field_wait_time |
String | Tempo de espera total |
Configurar o OAuth
Para configurar o OAuth, crie um aplicativo OAuth no ServiceNow. Em seguida, insira as credenciais (ID e chave secreta do cliente OAuth) em Configurações do desenvolvedor > CRM > Método de autenticação.
Criar um aplicativo OAuth no ServiceNow
Na sua conta do ServiceNow, acesse Todos > OAuth do sistema > Registro de aplicativos.
Crie um aplicativo OAuth e selecione Criar um endpoint de API OAuth para clientes externos.
Configure os seguintes campos:
Nome: insira um nome exclusivo.
ID do cliente: o ID do cliente é gerado automaticamente pelo servidor OAuth do ServiceNow.
Chave secreta do cliente: a chave secreta do cliente para o aplicativo OAuth. Deixe em branco para gerar automaticamente.
Ciclo de vida do token de atualização: o tempo, em segundos, em que o token de atualização será válido.
Ciclo de vida do token de acesso: o tempo, em segundos, em que o token de acesso será válido.
URL de redirecionamento: insira o URL do seu ambiente mais o subdiretório. Exemplo:
https://servicenow.yourcompany.co/v1/servicenow/oauth_callbackAplicar restrição de token: restringe o uso do token de acesso às APIs definidas nas políticas de acesso à API REST encontradas na documentação do ServiceNow. Se você desmarcar essa opção, o token de acesso poderá ser usado em outras APIs REST.
Clique em Enviar.
Depois de criar o aplicativo, volte ao registro e recupere o ID do cliente e a chave secreta do cliente recém-criada.
Atualizar configurações nas opções do desenvolvedor
Acesse Configurações do desenvolvedor > CRM.
Verifique se as configurações foram inseridas e definidas conforme as etapas anteriores.
Em "Método de autenticação", clique em OAuth.
Insira o ID e a chave secreta do cliente OAuth. Consulte a etapa 5 acima.
Clique em Salvar.
Clique em Vincular credenciais.
Mapeamento de campos personalizados para o agente virtual
Se você estiver usando o agente virtual, configure esse campo na tela Mapeamentos de campos personalizados. Isso permite que as variáveis do agente virtual sejam transferidas do payload da sessão do agente virtual para o ServiceNow. Os nomes de variáveis podem ser qualquer string. Os rótulos de campo listados aqui são um exemplo.
Na tela Mapeamentos de campos personalizados, configure a conexão entre as variáveis criadas pelas definições de payload usadas na configuração inicial do agente virtual e a variável relevante no ServiceNow.
| Título do mapeamento de campo | Rótulo do campo de CRM | Rótulo do campo de dados personalizado |
|---|---|---|
| Feedback do agente virtual | ccaip_custom_field_incident_feedback |
va_feedback |
Definir outras configurações
As outras configurações que permitem integrar corretamente a plataforma CCAI à sua instância do ServiceNow estão no menu suspenso Configurações. Consulte os links na lista a seguir para mais informações sobre como configurar cada seção.
- Idiomas e mensagens
- Usuários e equipes
- Agente virtual
- Campanhas
- Pesquisas
- Filas
- Chamadas
- Chat
- SMS
- Gerenciamento de consumidores
- Configurações do desenvolvedor
Testar saídas
Agora é possível verificar a funcionalidade dos fluxos de chamada e chat clicando nos botões relevantes na parte de cima da tela do portal da CCAI Platform. É importante garantir que o bloqueador de pop-ups esteja desativado ao executar esse teste.
Um incidente será criado no ServiceNow, com o contato da chamada ou do chat listado na seção Atividades do incidente. Isso aparece como uma Observação de trabalho, e não como um comentário de incidente, para que essa atividade de back-end não fique visível para os clientes.
A descrição do caso será preenchida automaticamente com "Chamada usando a plataforma CCAI" ou "Chat usando a plataforma CCAI" e talvez precise ser atualizada pelos agentes.
Quando estiver satisfeito com as saídas da sua ligação ou conversa, insira um código e uma observação de resolução (se os campos de código e observações de resolução do ServiceNow estiverem configurados) e feche o caso.
Para verificar se o caso foi encerrado, talvez seja necessário clicar no botão de navegação back do navegador. É esperado que, na instância do ServiceNow, depois de resolver o caso, ele seja fechado automaticamente e você seja direcionado para uma página de registro do cliente.