Adicionar ações do ServiceNow

Quando as ações do ServiceNow estão ativadas, os usuários finais podem pedir ao Google Assistente para realizar as seguintes ações do ServiceNow:

  • Criar incidentes do ServiceNow
  • Atualizar incidentes do ServiceNow

Por exemplo, um usuário pode inserir "criar um incidente do ServiceNow sobre uma falha de hardware do computador" ou "atualizar o incidente INC0010001 do ServiceNow para ter alta urgência" no app. O assistente pede mais detalhes, se necessário, e depois pede que o usuário confirme a solicitação de criação ou atualização.

O assistente pode ler e atualizar os seguintes campos do ServiceNow por ações:

Campo

Descrição

Autor da chamada

Obrigatório. O endereço de e-mail do autor da chamada em nome de quem o incidente está sendo criado, por exemplo, user@google.com.

Título

Um título breve do incidente a ser criado.

Descrição

Detalhes sobre o incidente a ser criado.

Categoria

Categoria do incidente a ser criado.

Impacto

Impacto do incidente.

Urgência

Urgência do incidente.

Estado

Estado do incidente.

Atribuída a

Endereço de e-mail do usuário a quem o incidente será atribuído, por exemplo, user@google.com.

Grupo de atribuição

Grupo de usuários a que o incidente será atribuído.

Código de encerramento

Código de encerramento do incidente.

Fechar notas

Encerre as observações sobre o incidente.

Configurar autenticação e permissões para o ServiceNow

Antes de ativar as ações do ServiceNow, um administrador precisa autorizar e configurar um conector do ServiceNow para ações. Isso é necessário para conectar sua integração e permitir permissão de leitura e gravação para ações.

Antes de configurar a conexão, verifique se você tem o seguinte:

  • Permissão de administrador: você precisa ser um administrador do ServiceNow.

  • Instância do ServiceNow: crie uma instância do ServiceNow seguindo as instruções na documentação do Desenvolvedor do ServiceNow.

  • Google Cloud projeto: configure um Google Cloud projeto com uma conta de administrador capaz de gerenciar configurações no nível da organização, garantindo que ela possa configurar um pool de força de trabalho.

  • Pool de funcionários: verifique se sua organização está configurada para gerenciar um pool de funcionários.

Para mais informações, consulte a postagem do blog sobre o OAuth 2.0 com REST de entrada.

Configurar o ServiceNow

O ServiceNow oferece dois sites principais:

  1. Site principal do ServiceNow: o site da sua instância do ServiceNow.
    • Gerencia usuários, grupos e tarefas de administração do sistema.
    • URL: o URL da sua instância do ServiceNow.
    • Faça login usando suas credenciais de administrador.
  2. Site para desenvolvedores:
    • Configura a base de conhecimento, cria fluxos de trabalho e desenvolve aplicativos personalizados.
    • URL: https://developer.service-now.com.
    • Faça login usando seu ID do ServiceNow.

Criar um endpoint OAuth

Para criar um endpoint OAuth, faça o seguinte:

  1. Faça login na instância principal do ServiceNow com privilégios de administrador.
  2. Acesse Todos > OAuth do sistema > Registro de aplicativos.
  3. Clique em Novo e selecione Criar um endpoint de API OAuth para clientes externos. Recupere o ID e a chave secreta do cliente.
  4. Preencha as informações necessárias:
    1. Nome: nome exclusivo.
    2. URL de redirecionamento: https://vertexaisearch.cloud.google.com/oauth-redirect
  5. Clique em Enviar para criar a credencial.
  6. Depois do envio, clique no nome para ver a chave secreta do cliente.
  7. O secret é mascarado. Clique no ícone de bloqueio ao lado dele para revelar e conferir o secret.
  8. Mantenha uma cópia do ID e da chave secreta do cliente para usar quando necessário.
  9. Acesse developer.service-now.com e clique em Gerenciar senha da instância.
  10. Mantenha uma cópia do nome de usuário e da senha para usar quando necessário.
  11. Nesta etapa, todas as cinco informações necessárias para configurar um repositório de dados do ServiceNow estão disponíveis. Se não houver problemas em usar a função de administrador para extrair dados, crie um repositório de dados.

Configurar funções e permissões

Você precisa ter uma função de administrador de segurança para criar e gerenciar usuários. Se você não tiver essa função, eleve seu papel para security_admin clicando em Elevar função no seu perfil. Selecione a função security_admin e clique em Atualizar. A função security_admin é necessária para criar funções e gerenciar usuários.

  1. Crie uma função personalizada com regras de ACL:
    1. Acesse Todos > Administração de usuários > Funções.
    2. Clique em Nova para criar uma função.
    3. Selecione um nome e clique em Enviar.
    4. Acesse Segurança do sistema > Controle de acesso (ACL) para criar uma regra de ACL.
    5. Clique em Nova para criar uma regra de ACL.
    6. Selecione uma função, como sys_user_role.
    7. Clique em Enviar e atribua a função.
    8. Repita esse processo até que todo o acesso à tabela seja concedido. O conector precisa de acesso às seguintes tabelas para que cada entidade seja executada com sucesso:
      1. Incidente: incident.
      2. Item do catálogo: sc_cat_item, sc_cat_item_user_criteria_mtom, sc_cat_item_user_criteria_no_mtom, sc_cat_item_user_mtom, sc_cat_item_user_no_mtom.
      3. Conhecimento: kb_knowledge, kb_knowledge_base, kb_uc_can_read_mtom, kb_uc_can_contribute_mtom.
      4. Anexo: todos os itens listados.
      5. Identidade: sys_user_role, sys_user_has_role, sys_user_group, sys_user_grmember, sys_user.
      6. Atualizado conforme novos critérios são extraídos: core_company, cmn_location, cmn_department.
      7. Critérios de usuário: user_criteria.
    9. Para verificar se todas as ACLs foram atualizadas, navegue até sys_security_acl_role_list.do na barra de pesquisa.
    10. Selecione a função que você quer verificar.
    11. Confirme se todas as ACLs necessárias estão atribuídas à função selecionada.
  2. Conceda o papel a uma conta de serviço:
    1. Acesse Todos > Administração de usuários > Usuários e selecione o usuário.
    2. Encontre e selecione o usuário a quem você quer conceder a função.
  3. Se nenhum usuário estiver disponível, acesse Segurança do sistema > Usuários e grupos > Usuários.
  4. Clique em Novo para criar uma conta de serviço na tabela Usuário.
  5. Marque a caixa de seleção Acesso somente ao serviço da Web.
  6. Acesse a tabela Funções na parte de baixo da página.
  7. Clique em Editar à direita.
  8. Conceda e atribua o papel criado ao usuário. Dependendo do tipo de função criada, selecione a adequada e atribua.
  9. Consiga o nome de usuário e a senha do usuário. Na mesma página, clique em Definir senha.
  10. Gere uma senha automaticamente e salve-a para uso posterior:
    1. ID do usuário: manager.
    2. Senha: digite a senha gerada automaticamente.

Criar uma função dedicada e atribuir ACLs

Ao usar uma função do usuário que não é de administrador, você pode encontrar problemas ao realizar uma ação do ServiceNow, mesmo que sua função do usuário tenha as permissões necessárias. Para evitar esse problema, crie um papel dedicado e atribua as permissões necessárias.

Criar uma nova função

  1. Acesse Administração de usuários > Funções.
  2. Clique em Novo.
  3. Especifique um nome para o novo papel, como database_admin_restricted.
  4. Opcionalmente, insira uma descrição.
  5. Clique em Enviar.

Atribuir a nova função ao usuário autenticado

  1. Acesse Administração de usuários > Usuários.
  2. Selecione o usuário que precisa do acesso restrito.
  3. No registro do usuário, acesse a lista relacionada Funções.
  4. Na lista relacionada Funções, clique em Editar.
  5. Na coluna Coleção, encontre e selecione a função que acabou de ser criada.
  6. Clique em Adicionar para mover a função para a Lista de funções.
  7. Clique em Salvar.

Implementar permissões no nível da linha

  1. Acesse Segurança do sistema > Controles de acesso (ACL).
  2. Clique em Novo.
  3. Configure os seguintes campos:

    • Tipo:selecione registro.
    • Operação:selecione ler.
    • Nome:
      • No primeiro menu suspenso, selecione a tabela sys_db_object.
      • No segundo menu suspenso, selecione Nenhum.
    • Função necessária:no campo Inserir uma nova linha, pesquise e selecione a função recém-criada.
  4. Clique em Enviar.

  5. Repita essas etapas para implementar permissões no nível da linha nas tabelas sys_glide_object e sys_dictionary.

Implementar permissões no nível do campo

  1. Acesse Segurança do sistema > Controles de acesso (ACL).
  2. Clique em Novo.
  3. Configure os seguintes campos:
    • Tipo:selecione registro.
    • Operação:selecione ler.
    • Nome:
      • No primeiro menu suspenso, selecione a tabela de destino, como sys_db_object.
      • No segundo menu suspenso, aplique a permissão a todos os campos da tabela ou selecione um nome de campo específico, como name.
    • Função necessária:no campo Inserir uma nova linha, pesquise e selecione a função recém-criada.
  4. Clique em Enviar.
  5. Repita essas etapas para implementar permissões no nível do campo para campos específicos ou todos os campos nas tabelas sys_glide_object e sys_dictionary.

Configurar o pool de força de trabalho

Siga as instruções para configurar um pool de forças de trabalho com uma das seguintes configurações:

  1. Configuração do OIDC do Azure
  2. Configuração do SAML do Azure
  3. Configuração do Okta e do OIDC
  4. Configuração do Okta e do SAML

Configurar uma ação do ServiceNow

Antes de começar, verifique se um administrador do Google Cloud concluiu as etapas em Configurar autenticação e permissões para o ServiceNow e forneceu o seguinte:

Campo Descrição
ID do cliente O ID do cliente da sua integração com o ServiceNow.
Chave secreta do cliente A chave secreta do cliente para sua integração com o ServiceNow
Nome de usuário Conta de usuário da sua integração.
Senha Senha da sua integração.
URL da instância (ou Host de destino) URL da instância do seu site do ServiceNow. Ele está no formato: https://INSTANCE_NAME.service-now.com
URL de autenticação O URI de autorização do seu cliente da API ServiceNow. Ele está no formato: https://INSTANCE_NAME.service-now.com/oauth_auth.do
URL do token O URI do token de atualização do seu cliente da API ServiceNow. Ele está no formato: https://INSTANCE_NAME.service-now.com/oauth_token.do

Configurar ações do ServiceNow no console do Google Cloud

Para adicionar ações ao app usando o console, faça o seguinte:

  1. No console Google Cloud , acesse a página Criador de agentes.
  2. No menu de navegação, clique em Ações.
  3. Clique em Adicionar ações.
  4. Para selecionar o ServiceNow como a origem das ações, clique em Conectar no card do ServiceNow.
  5. Na página Configuração, selecione o repositório de dados do ServiceNow na lista suspensa Selecionar uma instância.
    Configurar o serviço agora
    Configurar o ServiceNow
  6. Insira as informações de autorização para a instância do conector selecionada:

    1. Insira o Novo ID do cliente e a Nova chave secreta do cliente que você recuperou ao criar o endpoint OAuth.
    2. Insira o URI de autenticação do ServiceNow. Use o formato https://<var>INSTANCE_NAME</var>.service-now.com/oauth_auth.do.
    3. Insira o URI de destino do ServiceNow. Use o formato https://<var>INSTANCE_NAME</var>.service-now.com.
    4. Insira o URI do token do ServiceNow. Use o formato https://<var>INSTANCE_NAME</var>.service-now.com/oauth_token.do.
    5. Digite a Conta de usuário e a Senha do administrador do ServiceNow.
  7. Opcional: selecione Ativar suporte a PKCE para uma camada extra de segurança no seu app.

  8. Opcional: selecione Incluir tabelas do sistema para tornar acessíveis as informações do sistema do ServiceNow (tabelas do sistema). Selecione essa opção somente após considerar cuidadosamente e se for absolutamente necessário.

  9. Selecione as ações do ServiceNow que você quer ativar.

  10. Clique em Terminar a configuração. Sua ação é exibida na página Ações. As ações levam alguns minutos para entrar em vigor no app.

Configurar ações do ServiceNow usando a API

Para adicionar ações ao seu app usando a API, faça o seguinte:

  1. Crie um conector do ServiceNow para ações:

      curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -H "X-GFE-SSL: yes" \
      -H "X-Goog-User-Project: PROJECT_ID" \
      "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global:setUpDataConnector" \
      -d '{
        "collectionId": "COLLECTION_ID",
        "collectionDisplayName": "COLLECTION_DISPLAY_NAME",
        "dataConnector": {
          "dataSource": "servicenow",
          "params": {
            "user_account": "USER_ACCOUNT",
            "client_id": "CLIENT_ID",
            "client_secret": "CLIENT_SECRET",
            "password": "PASSWORD",
            "instance_uri": "INSTANCE_URI",
            "auth_type": "OAUTH_PASSWORD_GRANT"
          },
          "refreshInterval": "86400s",
          "entities": [
            {
              "entityName": "knowledge_base",
              "params": {
                "inclusion_filters":{},
                "exclusion_filters":{}
              }
            },
            {
              "entityName": "catalog"
            },
            {
              "entityName": "knowledge"
            },
            {
              "entityName": "incident"
            },
            {
              "entityName": "attachment"
            }
          ],
          "syncMode": "PERIODIC",
          "staticIpEnabled": false
        }
      }'
    

    Substitua:

    • PROJECT_ID: ID do projeto.

    • COLLECTION_ID: um ID da coleção.

    • COLLECTION_DISPLAY_NAME: um nome de exibição para a coleção.

    • USER_ACCOUNT: a conta de usuário da sua integração do ServiceNow.

    • CLIENT_ID: o ID do cliente da sua integração com o ServiceNow.

    • PASSWORD: a senha da sua integração do ServiceNow.

    • INSTANCE_URI: o URI da instância do seu site do ServiceNow.

  2. Atualize o conector para incluir configurações de ação.

    curl -X PATCH \
      -H "Authorization: Bearer $(gcloud auth print-access-token --project "PROJECT_NUMBER")" \
      -H "Content-Type: application/json" \
      -H "X-Goog-User-Project: PROJECT_ID" \
      "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/COLLECTION_ID/dataConnector?update_mask=action_config,bap_config,destination_configs" \
      -d '{
      "name": "projects/PROJECT_ID/locations/global/collections/COLLECTION_ID/dataConnector",
      "actionConfig": {
        "isActionConfigured": true,
        "actionParams": {
          "client_id": "CLIENT_ID",
          "client_secret": "CLIENT_SECRET",
          "auth_uri": "AUTH_URI",
          "token_uri": "TOKEN_URI",
          "pkce_support_enabled": true,
          "include_system_tables": true
        }
      },
      "bapConfig": {
        "supported_connector_modes": "ACTIONS"
      },
      "destinationConfigs": [
        {
          "key": "host_url",
          "destinations": [
            {
              "host": "INSTANCE_URL"
            }
          ]
        }
      ]
    }'
    

    Substitua:

    • PROJECT_ID: ID do projeto.

    • COLLECTION_ID: o ID da coleção.

    • USERNAME: conta de usuário da sua integração do ServiceNow.

    • CLIENT_ID: o ID do cliente da sua integração do ServiceNow.

    • PASSWORD: senha da sua integração do ServiceNow.

    • AUTH_URI: o URI de autorização da integração do ServiceNow.

    • TOKEN_URI: o URI do token de atualização para sua integração do ServiceNow.

    • INSTANCE_URL: URL da instância do seu site do ServiceNow.

  3. Ative as ações do ServiceNow para seu assistente.

    curl -X PATCH \
      -H "Authorization: Bearer $(gcloud auth print-access-token --project "PROJECT_NUMBER")" \
      -H "Content-Type: application/json" \
      -H "X-Goog-User-Project: PROJECT_NUMBER" \
      "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_NUMBER/locations/global/collections/default_collection/engines/APP_ID/assistants/default_assistant?update_mask=enabledActions" \
      -d '{
        "name": "projects/PROJECT_NUMBER/locations/global/collections/default_collection/engines/APP_ID/assistants/default_assistant",
        "enabledActions": {
          "projects/PROJECT_NUMBER/locations/global/collections/CONNECTOR_ID/dataConnector": {
            "actionInfo": [
              {
                "actionName": "create_servicenow_incident",
                "actionDisplayName": "Create ServiceNow Incident"
              },
              {
                "actionName": "update_servicenow_incident",
                "actionDisplayName": "Update ServiceNow Incident"
              }
            ]
          }
        }
      }'
    

    Substitua:

    • PROJECT_NUMBER: o número do seu projeto Google Cloud .

    • APP_ID: o ID do app.

    • CONNECTOR_ID: o ID da coleção do conector que você gerou na etapa anterior.

Depois de adicionar ações, o assistente pode realizá-las em nome dos usuários finais no app. Na primeira vez que um usuário pede ao assistente para realizar uma ação do ServiceNow, ele precisa autorizar o acesso à conta do ServiceNow. Para usar o assistente, os usuários precisam ter licenças do Gemini Enterprise Plus.