API de integração de bot do Virtual Agent

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 34 min. de leitura
  • . Integração do bot do Virtual Agent A API fornece endpoints que permitem que os usuários integrem qualquer interface de bate-papo ou um ecossistema de bots com o. ServiceNow Virtual Agent e/ou Atendente.

    Esta API é criada com base na estrutura de integração de bate-papo personalizada de conversa fornecida com Virtual Agent e opera no sn_va_as_service namespace.

    Para obter informações adicionais sobre como instalar e configurar o. Virtual Agent API de integração de bot, consulte API do Virtual Agent .

    Integração de bot do VA - POST /sn_va_as_service/bot/integration

    Envia uma mensagem, anexo ou URL especificado para um secundário especificado ServiceNow Virtual Agent Bot (VA).

    Um site do cliente pode ter um ou mais secundários ServiceNow bots. Além de passar mensagens para um ServiceNow Bot secundário do VA, o bot primário ou o cliente de bate-papo pode usar este endpoint para passar mensagens para um agente por meio de Atendente bate-papo. Use actionparâmetro passado no corpo da solicitação para especificar como o conteúdo especificado deve ser tratado.

    Nota:
    Este endpoint pode ser síncrono ou assíncrono, dependendo de como ele está configurado. Quando assíncrona, quando a solicitação é recebida pelo endpoint, ele valida a solicitação e responde com um status de chamada de sucesso ou falha e o código de status HTTP apropriado. Em seguida, o VA processa a solicitação e envia uma segunda resposta para o endpoint de resposta configurado. Por exemplo, para uma integração bot a bot, a segunda resposta seria para o URL do seu bot primário. Essas duas respostas são definidas abaixo. Para obter informações adicionais sobre este endpoint de resposta configurado, consulte Configure o endpoint REST DE resposta de saída e a autenticação de saída para a API do Virtual Agent .
    Nota:
    As respostas nos exemplos de código para este endpoint mostram o que é enviado do VA para o endpoint de resposta configurado. Eles não mostram a resposta real para este endpoint, que é uma resposta simples de sucesso ou falha.

    Formato de URL

    URL padrão: /api/sn_va_as_service/bot/integration

    Parâmetros de solicitação compatíveis

    Tabela 1. Parâmetros de caminho
    Nome Descrição
    Nenhum(a)
    Tabela 2. Parâmetros de consulta
    Nome Descrição
    Nenhum(a)
    Tabela 3. Parâmetros do corpo da solicitação
    Nome Descrição
    ação Ação que o VA deve executar.
    Valores válidos:
    • AGENTE: Alterna a conversa do VA para Atendente.
    • CREATE_CONVERSATION: Cria uma interação de bate-papo.
    • END_CONVERSATION: Encerra a conversa de bate-papo. . message.texto parâmetro deve estar vazio ao usar esta ação.
    • FAULT_CONVERSATION: Falha em uma conversa. Ao definir uma ação FAULT_CONVERSATION, forneça uma descrição para causeparâmetro.
    • SEND_HISTORY: Atualiza somente o histórico do bate-papo. O histórico de bate-papo também pode ser enviado usando o processamento de mensagens padrão com historyparâmetro.
    • SET_USER_TIMEZONE: Define o fuso horário do usuário para o fuso horário especificado em timezoneparâmetro. Este fuso horário permanece em vigor até que você o redefina usando este mesmo parâmetro.
    • START_CONVERSATION : Inicia uma conversa de bate-papo.
    • START_CREATED_CONVERSATION: Inicia uma conversa de bate-papo iniciada usando CREATE_CONVERSATION .
    • ALTERNAR: Alterne a conversa para um tópico que corresponda ao especificado em intent.idou topic.nameparâmetros.
      Nota:
      Use somente o. COMUTADOR ação para alternância de tópicos quando a descoberta de intenção acontece no bot primário. Se a descoberta de intenção acontecer no ServiceNow® VA, use message.textparâmetro.
    • DIGITAÇÃO/EXIBIÇÃO: Exibe o indicador de digitação em Atendente. Primeiro envio DIGITAÇÃO e, depois que o usuário terminar de digitar, envie EXIBINDO .
    • UPDATE_MESSAGES: Esta ação é usada durante conversas do atendente e fornece duas funções de atualização de mensagem para integrações de bate-papo de terceiros para as mensagens recebidas do atendente que são refletidas no painel de bate-papo do agente:
      • O status de entrega de mensagem mais recente após o envio de uma mensagem de terceiros.
      • Texto atualizado no painel de bate-papo do agente.

      A integração de bate-papo de terceiros pode atualizar a parte de texto da mensagem antes de enviá-la ao usuário final. Esta ação pode ser chamada para atualizar o texto no painel de bate-papo do agente para que o agente possa ver o texto atualizado com um marcador "Atualizado".

      Esta ação é usada com message.statuse. message.idparâmetros.

      Esta opção só será válida se a propriedade do adaptador personalizado com o nome third_party_chat vinculada à aplicação do provedor estiver definida como verdadeiro . Esta é uma ação síncrona, independentemente da natureza síncrona/assíncrona do canal. Para obter mais informações, consulte ,

    • Parâmetro nulo ou não passado: Envia a mensagem para ServiceNow VA.
    A integração de bate-papo de terceiros pode atualizar a mensagem de texto acionada pelo atendente antes de enviá-la ao usuário final. Esta ação pode ser chamada para atualizar o texto no painel de bate-papo do agente para que o agente possa ver o texto atualizado com um marcador "Atualizado".

    Tipo de dados: Cadeia de caracteres

    Padrão: Nulo

    BotToBot Sinalizador que indica se a conversa é entre bots, como entre um bot primário e um bot secundário.
    Valores possíveis:
    • Verdadeiro: Conversa de bot para bot.
    • Falso: Autônomo ServiceNow conversa do bot.

    Tipo de dados: Booliano

    Padrão: verdadeiro

    causa Causa de uma falha de conversa de bate-papo, por exemplo, EXTERNAL_FAILURE . Esta propriedade só é usada quando actiona propriedade está definida como FAULT_CONVERSATION.

    Tipo de dados: Cadeia de caracteres

    ClientSessionId Identificador exclusivo da sessão do cliente da aplicação/serviço que o usuário final está usando para se comunicar com o. ServiceNow bot ou os aplicativos de bate-papo de terceiros compatíveis .
    • Este ID ajuda a identificar o conjunto de solicitações/respostas para uma conversa de usuário específica.
    • O formato deste parâmetro é determinado pelo implementador.
    • Este valor só será atualizado se o valor de third_party_chato campo é verdadeiro em Propriedade do Adaptador Personalizado formulário. Consulte .

    Tabela: Interação [interaction]

    Tipo de dados: Cadeia de caracteres

    Padrão: Nulo

    ClientVariables Pares de nome-valor no formato JSON de passagem que são enviados de volta na resposta. Esses valores não são processados pelo endpoint, mas podem ser usados para manter informações específicas do cliente anexadas à conversa.

    Tipo de dados: Objeto

    Padrão: Nulo

    ContextVariables Pares de nome-valor no formato JSON que fornecem informações adicionais sobre o usuário. Forneça essas informações para personalizar a experiência da conversa. Para obter informações adicionais sobre variáveis de contexto, consulte Defina e publique variáveis de contexto de bate-papo .
    Por exemplo:
    "contextVariables": {
      "requester_session_language": "es", 
      "deviceTimeZone": "America/Los_Angeles"
      "live_agent_only": "true",
      "liveagent_deviceType": "test_device_type"
      "topic": "7c3c819073a3101066c7e9344ef6a7e4" 
    } 

    Tipo de dados: Objeto

    Padrão: Nulo

    E-mail Necessário ao habilitar a vinculação de conta, caso contrário, todos os usuários serão considerados usuários convidados. Endereço de e-mail do usuário final do cliente de bate-papo, a pessoa com quem o bot está interagindo. Para obter informações adicionais sobre vinculação de conta, consulte Vincule sua conta de usuário da ServiceNow a um aplicativo de envio de mensagens para conversas do Virtual Agent .

    Tipo de dados: Cadeia de caracteres

    histórico Histórico da conversa do bot primário com o usuário, começando com a solicitação inicial do usuário.

    Tipo de dados: Objeto

    "history": {
      "displayName": "String",
      "isBotMessage": Boolean,
      "timestamp": "String",
      "type": "String",
      "value": "String"
    }
    History.displayName Nome do usuário para quem a mensagem foi enviada. Se for o bot primário, passe Bot .

    Tipo de dados: Cadeia de caracteres

    Histórico.IsBotMessage Sinalizador que indica se a mensagem foi enviada pelo bot primário.
    Valores válidos:
    • Verdadeiro: A mensagem foi enviada pelo bot primário.
    • Falso: A mensagem foi enviada pelo usuário.

    Tipo de dados: Booliano

    carimbo de data/hora Carimbo de data/hora que indica a hora em que a mensagem foi enviada em milissegundos.

    Valores válidos: Carimbo de data/hora Unix de 13 dígitos

    Tipo de dados: Cadeia de caracteres

    history.type Tipo de mensagem enviada.

    Valores válidos: Texto

    Tipo de dados: Cadeia de caracteres

    valor.histórico Conteúdo das informações. Por exemplo, o texto da mensagem.

    Tipo de dados: Cadeia de caracteres

    intenção Descreve a intenção da conversa. Forneça essas informações quando actiono parâmetro está definido como COMUTADOR .

    Tipo de dados: Objeto

    "intent": {
      "id": "String"
    }
    intent.id NLU ID da intenção do tópico do sistema para alternar a conversa. . intent.idé resolvido com base no idioma aprovado na sessão de bate-papo. Se nenhum idioma for aprovado ao iniciar uma conversa, ele obterá o idioma da sessão/perfil do usuário.

    Tipo de dados: Cadeia de caracteres

    Tabela: Idioma do tópico CS [sys_cs_topic_language]

    mensagem Obrigatório. Detalhes da mensagem a ser enviada para ServiceNow bot.

    Tipo de dados: Objeto

    "message": {
      "attachment": [Array of Objects],
      "clientMessageId": "String",
      "status": "String",
      "text": "String",
      "typed": Boolean
    }
    message.attachment Necessário se estiver enviando anexos. Detalhes de cada anexo a ser enviado.

    Anexos só podem ser passados como URL. Uma verificação de vírus é acionada em todos os anexos. Não há restrições no tamanho de um anexo, no entanto, arquivos grandes podem levar um tempo significativo para serem transferidos.

    Tipo de dados: Matriz de objetos

    "attachment": [
      {
        "clientAttachmentId": "String",
        "contentType": "String",
        "fileName": "String",
        "headers":{Object},
        "id": "String",
        "url": "String"
      }
    ]
    Message.attachment.clientAttachmentId Identificador exclusivo do anexo a ser enviado para ServiceNow bot. O formato deste identificador é determinado pelo implementador.

    Tipo de dados: Cadeia de caracteres

    Padrão: Nulo

    Message.attachment.contentType Obrigatório se o anexo for especificado. Tipo mime padrão do anexo.
    Valores válidos (não diferenciam maiúsculas de minúsculas):
    • aplicação/pdf
    • aplicação/msword
    • imagem/png
    • imagem/jpeg
    • texto/simples
    • vídeo/mpeg

    Tipo de dados: Cadeia de caracteres

    Message.attachment.Filename Obrigatório se o anexo for especificado. Nome do arquivo do anexo.

    Tipo de dados: Cadeia de caracteres

    message.attachment.headers Informações adicionais necessárias se o arquivo de anexo for privado e protegido.
    Tipo de dados: Objeto
    "headers":{
      "Authorization":"String"	
    }
    Message.attachment.headers.authorization Informações necessárias para obter autorização para acessar o anexo, como nome de usuário e senha.

    Tipo de dados: Cadeia de caracteres

    message.attachment.url Obrigatório se o anexo for especificado. URL onde o anexo está localizado. O VA obtém o anexo deste URL, executa uma verificação de vírus e processa o arquivo. Se o anexo não for um arquivo público, você deverá passar um message.attachment.headerobjeto que contém as informações de autorização para que o anexo possa ser acessado. Você também deve garantir que o domínio da URL esteja presente nos domínios confiáveis arquivados em sys_cs_provider.

    Tipo de dados: Cadeia de caracteres

    Message.clientMessageId Identificador alfanumérico exclusivo da mensagem. O formato deste identificador é determinado pelo implementador.

    Tipo de dados: Cadeia de caracteres

    Padrão: Nulo

    message.id Usado somente com UPDATE_MESSAGESação. ID exclusivo da mensagem de bate-papo a ser atualizada.

    Tipo de dados: Cadeia de caracteres

    message.status Status da mensagem.
    Valores válidos (não diferenciam maiúsculas de minúsculas):
    • External_error - Usado quando há falha na entrega de mensagem da integração de bate-papo de terceiros para o usuário final. O painel de bate-papo do agente será refletido como um marcador "Falha".
    • Sent_to_user - Inicialmente, uma única marca de seleção é exibida para mensagens entregues do atendente para integração de bate-papo de terceiros. Este status deve ser usado quando a mensagem é entregue com sucesso da integração de bate-papo de terceiros para o usuário final. Após o sucesso, a marca de seleção dupla será exibida no painel de bate-papo do agente.

    Tipo de dados: Cadeia de caracteres

    message.text Necessário se attachmento parâmetro não foi especificado. Texto da mensagem.
    • O idioma da mensagem deve ser passado em contextVariablesparâmetro.
    • Deve ficar em branco se o valor da propriedade da ação for END_CONVERSATION .
    • Deve ser o texto atualizado a ser refletido no painel de bate-papo do agente se o valor da propriedade de ação for UPDATE_MESSAGES .

    Tipo de dados: Cadeia de caracteres

    Tamanho máximo: Ilimitado

    mensagem.digitada Obrigatório. Sinalizador que indica se a mensagem foi digitada ou se era uma seleção de opção (selecionada).
    Valores válidos:
    • Verdadeiro: A mensagem foi digitada pelo usuário.
    • Falso: A mensagem era uma seleção de opção.

    Tipo de dados: Booliano

    requestId Obrigatório. Identificador alfanumérico exclusivo para esta solicitação. O formato deste identificador é determinado pelo implementador.

    Tipo de dados: Cadeia de caracteres

    SilentMessage Sinalizador que indica se esta é uma mensagem silenciosa. Uma mensagem silenciosa é uma mensagem que não requer uma resposta.
    Valores válidos:
    • Verdadeiro: Mensagem silenciosa, nenhuma mensagem de resposta esperada.
    • Falso: Mensagem regular, mensagem de resposta esperada.
    Nota:
    Se uma solicitação com SilentMessage: Verdadeiro enviado, todas as mensagens de bot subsequentes permanecem suprimidas até que uma solicitação para desativar o modo silencioso seja enviada pelo SilentMessage: Falso .

    Tipo de dados: Booliano

    Padrão: falso

    carimbo de data/hora Época do UNIX em que a mensagem foi enviada do usuário final do cliente de bate-papo.

    Tipo de dados: Número

    Unidade: Milissegundos

    Hora atual

    fuso horário Fuso horário GMT do usuário final do cliente de bate-papo.
    Por exemplo:
    "timezone":"Asia/Kolkata"

    Para obter uma lista dos valores de fuso horário disponíveis, consulte https://en.wikipedia.org/wiki/List_of_tz_database_time_zones.

    Tipo de dados: Cadeia de caracteres

    Fuso horário GMT do ServiceNow instância.

    tópico Necessário se o usuário quiser alternar para um tópico específico especificando um nome de tópico. Par nome-valor do tópico para o qual alternar. Você pode especificar o nome do tópico ou o sys_id do tópico.
    Nota:
    Você só pode especificar um único nome ou ID de tópico no objeto.

    Tipo de dados: Objeto

    "topic": {
      "name": "String",
      "id": "String"
    }

    Por exemplo:

    {​ 
      "requestId": "xxxx-xxxx-xxxx-xxxx",​
      "clientSessionId": "xxx-xxx-xxx-xxx",​
      "action":"SWITCH",​
      "topic":{​ 
        "name": "Topic Name"​
      },​ 
      "userId": "beth"​ 
    }​ 
    topic.name Nome do tópico para alternar.

    Tipo de dados: Cadeia de caracteres

    Tabela: No campo de nome da tabela Tópicos do Virtual Agent [sys_cs_topic].

    topic.id Sys_id do tópico para alternar.

    Tipo de dados: Cadeia de caracteres

    Tabela: Tópicos do Virtual Agent [sys_cs_topic]

    userId Obrigatório. Identificador de usuário exclusivo. Este é o identificador do usuário final que está interagindo com o bot.

    Tipo de dados: Cadeia de caracteres

    Cabeçalhos

    Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta. Para obter uma lista de cabeçalhos gerais usados na REST API, consulte Cabeçalhos de REST API compatíveis .

    Tabela 4. Cabeçalhos da solicitação
    Cabeçalho Descrição
    Aceitar Formato de dados do corpo da resposta. Oferece suporte somente a application/json.
    Tipo de conteúdo Formato de dados do corpo da solicitação. Oferece suporte somente a application/json.
    token Necessário se estiver usando autenticação baseada em token; opcional para autenticação Básica ou OAuth. Token de autenticação a ser usado se a autenticação de token tiver sido configurada para este endpoint.

    Tipo de dados: Cadeia de caracteres

    Tabela 5. Cabeçalhos de resposta
    Cabeçalho Descrição
    Nenhum(a)

    Códigos de status

    Os seguintes códigos de status se aplicam a esta ação HTTP. Para obter uma lista de possíveis códigos de status usados na REST API, consulte Códigos de resposta HTTP da REST API .

    Tabela 6. Códigos de status
    Código do status Descrição
    200 Bem-sucedido. A solicitação foi processada com sucesso.
    Se você receber um código de status 200, mas não receber uma resposta de volta, verifique o seguinte:
    • Se a solicitação está falhando na validação estática, JWT ou de token baseado em hash, o que geralmente acontece no thread de trabalho de Virtual Agent. ​
    • Se o formato do corpo da solicitação está correto. Se estiver incorreta, a conversão não acontecerá corretamente.
    • Se o corpo da solicitação não tem alguns parâmetros obrigatórios. Você pode rastrear exceções e erros nos Logs do sistema no ServiceNow instância.
    • Se o site definido na mensagem REST para receber a resposta está operacional; capaz de detectar em logs.
    • Certifique-se de que a Mensagem REST que define onde publicar a resposta esteja definida corretamente.
    400 Solicitação Incorreta. Um tipo de solicitação incorreto ou uma solicitação malformada foi detectada.
    401 Não autorizado. As credenciais do usuário estão incorretas ou não foram aprovadas.
    405 Método inválido. A funcionalidade está desabilitada.
    500 Erro interno do servidor. Ocorreu um erro inesperado ao processar a solicitação. A resposta contém informações adicionais sobre o erro.

    Parâmetros do corpo da resposta

    Status da chamada de endpoint. Enviado em resposta quando a solicitação de chamada inicial é recebida. A solicitação ainda não foi processada.

    Nome Descrição
    erro Descrição do erro detectado. Retornado somente se ocorrer um erro.

    Tipo de dados: Objeto

    "error": {
      "detail": "String",
      "message": "String"
    }
    error.detail Detalhes sobre o erro encontrado.

    Tipo de dados: Cadeia de caracteres

    mensagem.erro Mensagem de erro lançada.

    Tipo de dados: Cadeia de caracteres

    status Status da chamada de endpoint.
    Valores válidos:
    • falha
    • êxito

    Tipo de dados: Cadeia de caracteres

    Parâmetros do corpo de resposta do VA

    Corpo da resposta enviado do VA para o endpoint de resposta configurado.

    Nome Descrição
    Bate-papo do agente Sinalizador que indica se a conversa está conectada ao ServiceNow Atendente.
    Valores possíveis:
    • Verdadeiro: As mensagens de bate-papo vêm de um atendente.
    • Falso: As mensagens de bate-papo vêm de um bot e este parâmetro não é retornado na resposta.

    Tipo de dados: Booliano

    corpo Lista de objetos que descrevem os elementos do corpo da mensagem de resposta.

    Tipo de dados: Matriz de objetos

    "body": [
      {
        "actionType": "String",
        "agentInfo": {Object},
        "data": "String",
        "group": "String",
        "header": "String",
        "height": Number,
        "itemType": "String",
        "label": "String",
        "maskType": "String",
        "maxCount": Number,
        "maxSize": Number,
        "message": "String",
        "messageId": "String",
        "multiSelect": Boolean,
        "nluTextEnabled": Boolean,
        "options": {Object},
        "promptMsg": "String",
        "required": Boolean,
        "style": "String",
        "templateName": "String",
        "type": "String",
        "uiType": "String",
        "value": "String/{Object}",
        "width": Number
      }
    ]
    Body.actionType Tipo de mensagem de ação expedida pelo bot secundário para o bot primário. Por exemplo, indicador de digitação ou tempo de espera do agente.
    Valores possíveis:
    • EndTypingIndicator
    • StartSpinner
    • StartTypingIndicator

    Por exemplo:

    Enviando StartTypeIndicator para o bot primário quando o indicador de digitação está habilitado.

    "body": {​ 
      "uiType":"ActionMsg",​ 
      "actionType":"StartTypingIndicator"​ 
    }  

    Enviando StartSpinner ao transferir para Atendente para exibir o tempo de espera para o usuário final.

    "body": { 
      "uiType":"ActionMsg", 
      "actionType":"StartSpinner", 
      "spinnerType":"wait_time",  
      "message":"Routing you to a live agent...", 
      "waitTime":"8 Seconds" 
    } 

    Tipo de dados: Cadeia de caracteres

    Body.agentInfo Se habilitado na configuração de bate-papo do agente, o nome e o avatar do agente associado.
    Tipo de dados: Objeto
    "agentInfo":{   
      "agentAvatar":"String",
      "agentId":"String",
      "agentName": "String", 
      "sentFromAgent": Boolean
    }

    Por exemplo:

    "agentInfo":{ 
      "sentFromAgent": true,
      "agentName":"Beth Anglin", 
      "agentAvatar":"https://instance.servicenow.com/ee4eebf30a0004d963b5c5ac0d734dc4.iix?t=small" 
    } 
    AgentInfo.agentAvatar URL do arquivo de avatar associado ao agente.

    Por exemplo: "https://instance.servicenow.com/ee4eebf30a0004d963b5c5ac0d734dc4.iix?t=small"

    Tipo de dados: Cadeia de caracteres

    Body.agentInfo.agentId O sys_id do atendente.

    Tabela: Perfil de tempo real [live_profile]

    Tipo de dados: Cadeia de caracteres

    Body.AgentInfo.AgentName Nome de exibição do agente.

    Tipo de dados: Cadeia de caracteres

    body.agentInfo.sentFromAgent Sinalizador que indica se a mensagem foi enviada por um atendente.
    Valores possíveis:
    • Verdadeiro: Enviado por um atendente.
    • Falso: Enviado por um virtual agent.

    Tipo de dados: Booliano

    body.data Cadeia de caracteres JSON que define os dados no cartão.

    Tipo de dados: Cadeia de caracteres

    body.group Grupo de controle avançado ao qual o elemento do corpo pertence. Você pode transformar ainda mais esses controles padrão gravando scripts de transformação de saída. Para obter informações adicionais sobre esses scripts, consulte Scripts de ação do Virtual Agent .
    Valores possíveis:
    • DefaultOutputCard
    • DefaultDate
    • DefaultGroupedPartsOutputControl
    • Html padrão
    • DefaultOutputImage
    • DefaultOutputLink
    • DefaultText
    • DefaultPicker

    Tipo de dados: Cadeia de caracteres

    corpo.cabeçalho Cabeçalho do link.

    Tipo de dados: Cadeia de caracteres

    corpo.altura Altura do elemento HTML.

    Tipo de dados: Número

    Unidade: Pixels

    body.itemType Tipo de elemento do corpo.
    Valores possíveis: (Diferencia maiúsculas de minúsculas)
    • DefaultText
      • Arquivo
      • Imagem
      • Texto de entrada
      • texto de saída
    • DefaultPicker
      • Imagem: Os itens aparecem em um carrossel.
      • Lista: Os itens aparecem em uma lista de estilo suspenso.

    Tipo de dados: Cadeia de caracteres

    body.label Rótulo a ser exibido para o elemento associado.

    Tipo de dados: Cadeia de caracteres

    Corpo.maskType Confidencialidade dos dados associados.
    Valores possíveis:
    • NENHUM: Os dados associados são de natureza geral e não precisam ser protegidos.
    • SEGURO: Os dados associados são de natureza confidencial e devem ser tratados com segurança.

    Tipo de dados: Cadeia de caracteres

    Body.maxCount Retornado somente quando uiType. FileUpload . Número máximo de anexos que podem ser carregados de uma só vez.

    Tipo de dados: Número (inteiro)

    Body.maxSize Retornado somente quando uiType. FileUpload . Tamanho máximo do anexo que pode ser carregado.

    Tipo de dados: Número (inteiro)

    Unidade: Megabytes

    corpo.mensagem Retornado somente quando actionType. StartSpinner . Mensagem a ser exibida para o usuário.

    Tipo de dados: Cadeia de caracteres

    Body.MessageID Identificador exclusivo da mensagem enviada para as aplicações de bate-papo de terceiros compatíveis do ServiceNow Virtual Agent.

    Tabela: Mensagem de conversa [sys_cs_message]

    Tipo de dados: Cadeia de caracteres

    Seleção múltipla de corpo Sinalizador que indica se o usuário pode selecionar várias opções.
    Valores possíveis:
    • Verdadeiro: Várias seleções.
    • Falso: Seleção única.

    Tipo de dados: Booliano

    body.nluTextEnabled Sinalizador que indica se o cliente de bate-papo do usuário pode receber mensagens de texto de Compreensão de linguagem natural (NLU).
    Valores possíveis:
    • Verdadeiro: Pode receber mensagens de NLU.
    • Falso: Não é possível receber mensagens de NLU.

    Tipo de dados: Booliano

    body.options Lista que descreve as opções disponíveis para um controle de seletor.
    Tipo de dados: Matriz de objetos
    "options": [
      {
        "attachment": "String",
        "description": "String",
        "enabled": Boolean,
        "label": "String",
        "renderStyle": "String",
        "value": "String"
      }
    ]
    body.options.attachment URL da imagem no carrossel a ser recuperada.

    Tipo de dados: Cadeia de caracteres

    body.options.description Descrição do item do carrossel.

    Tipo de dados: Cadeia de caracteres

    body.options.habilitado Sinalizador que indica se o controle do seletor está habilitado no cliente de bate-papo do usuário final. Em implementações de bot para bot, o bot primário é responsável por garantir que o controle do seletor seja desabilitado.
    Valores possíveis:
    • Verdadeiro: Habilitado
    • Falso: Desabilitado

    Tipo de dados: Booliano

    body.options.label Rótulo a ser exibido para o associado body.options.valueparâmetro.

    Tipo de dados: Cadeia de caracteres

    Body.options.renderStyle Estilo a ser usado ao renderizar o elemento associado.

    Valor possível: Dados

    Tipo de dados: Cadeia de caracteres

    body.options.value Valor a ser exibido para o associado body.options.labelparâmetro.

    Tipo de dados: Cadeia de caracteres

    body.promptMsg Mensagem de aviso a ser exibida com o controle do seletor.

    Tipo de dados: Cadeia de caracteres

    corpo.obrigatório Sinalizador que indica se o usuário final deve responder à consulta no elemento body.
    Valores possíveis:
    • Verdadeiro: Obrigatório
    • Falso: Opcional

    Tipo de dados: Booliano

    Corpo.SpinnerType Retornado somente quando actionType. StartSpinner . Tipo de girador mostrado para o usuário do bate-papo.

    Valores possíveis:

    wait_time: Mensagem indicando a quantidade de atraso antes de ser transferido para um atendente.

    Tipo de dados: Cadeia de caracteres

    body.style Elemento do corpo.
    Valores possíveis:
    • botão
    • Carrossel
    • lista
    • nulo

    Tipo de dados: Cadeia de caracteres

    Nome.modelo Nome do modelo a ser usado para exibir o cartão associado.

    Tipo de dados: Cadeia de caracteres

    body.type Retornado somente para DefaultOutputLink. Tipo de dados de retorno.

    Valores possíveis: Link

    Tipo de dados: Cadeia de caracteres

    Body.uiType Tipo de elemento do corpo. Os valores possíveis dependem do valor em body.groupparâmetro. Esses valores são mapeados de volta para os controles definidos no Designer do Virtual Agent. Para obter mais informações, consulte Introdução ao Designer do Virtual Agent .
    Valores possíveis:
    • Msg. De ação
    • DefaultOutputCard

      OutputCard

    • DefaultDate
      • Data
      • DateTime
      • Hora
    • DefaultGroupedPartsOutputControl

      GroupedPartsOutputControl

    • Html padrão

      OutputHtml

    • DefaultOutputImage

      OutputImage

    • DefaultOutputLink

      Link de Saída

    • DefaultText
      • Texto de entrada
      • Saída
      • FileUpload
    • DefaultPicker
      • Selecionador
      • TopicPickerControl
      • Booliano

    Tipo de dados: Cadeia de caracteres

    corpo.valor Dados a serem usados para processar o elemento do corpo. O tipo de informação que é passada de volta depende do tipo de elemento do corpo.
    OutputLink: Objeto.
    "value": {
      "action": "String"
    }

    OutputImage: Cadeia de caracteres. URL da imagem.

    OutputHtml: Cadeia de caracteres. HTML que o cliente precisa renderizar.

    Tipo de dados: Cadeia de caracteres ou objeto

    corpo.valor.ação Retornado somente para DefaultOutputLink. URL do link retornado.

    Tipo de dados: Cadeia de caracteres

    WaitTime.WaitTime Tempo que o usuário precisa esperar antes de se conectar a um atendente.

    Tipo de dados: Cadeia de caracteres

    body.width Largura do elemento HTML associado.

    Tipo de dados: Número

    Unidade: Pixels

    ClientSessionId Identificador exclusivo da sessão do cliente da aplicação/serviço de bate-papo que o usuário final está usando para se comunicar com o. ServiceNow bot.

    Tipo de dados: Cadeia de caracteres

    ClientVariables Pares de nome-valor no formato JSON que são copiados do que é passado no clientVariablesparâmetro no corpo da solicitação. Esses valores não são processados pelo endpoint, mas podem ser usados para manter informações específicas do cliente anexadas à conversa.

    Tipo de dados: Objeto

    concluído Sinalizador que indica se ServiceNow Virtual Agent concluiu a conversa com sucesso.
    Valores possíveis:
    • Verdadeiro: A conversa foi concluída com sucesso.
    • Falso: A conversa não está concluída e este parâmetro não é retornado na resposta.

    Tipo de dados: Booliano

    ID da empresa Atualmente não usado.
    interactionId Identificador exclusivo para cada conversa entre ServiceNow Virtual Agent e os aplicativos de bate-papo de terceiros compatíveis.

    Tipo de dados: Cadeia de caracteres

    mensagem Detalhes da mensagem enviada para ServiceNow VA. É o mesmo que o objeto de mensagem passado.

    Tipo de dados: Objeto

    "message": {
      "attachment": {Object},
      "clientMessageId": "String",
      "text": "String",
      "typed": Boolean
    }
    message.attachment Detalhes do anexo. Os anexos podem ser um arquivo ou um URL.

    Tipo de dados: Objeto

    "attachment": {
      "clientAttachmentId": "String",
      "contentType": "String",
      "fileName": "String",
      "url": "String"
    Message.attachment.clientAttachmentId Identificador exclusivo do anexo enviado para ServiceNow VA. O formato deste identificador é determinado pelo implementador.

    Tipo de dados: Cadeia de caracteres

    Message.attachment.contentType Tipo mime padrão do anexo.
    Valores possíveis (não diferenciam maiúsculas de minúsculas):
    • aplicação/msword
    • aplicação/pdf
    • imagem/jpeg
    • imagem/png
    • texto/simples
    • vídeo/mpeg

    Tipo de dados: Cadeia de caracteres

    Message.attachment.Filename Nome do arquivo do anexo.

    Tipo de dados: Cadeia de caracteres

    message.attachment.url URL onde o anexo está localizado.

    Tipo de dados: Cadeia de caracteres

    Message.clientMessageId Identificador alfanumérico exclusivo da mensagem.

    Tipo de dados: Cadeia de caracteres

    message.text Texto da mensagem.

    Tipo de dados: Cadeia de caracteres

    Tamanho máximo: Ilimitado

    mensagem.digitada Sinalizador que indica se a mensagem foi digitada ou se era uma seleção de opção (selecionada).
    Valores possíveis:
    • Verdadeiro: A mensagem foi digitada pelo usuário.
    • Falso: A mensagem era uma seleção de opção.

    Tipo de dados: Booliano

    NowBotId Atualmente não usado.
    NowSessionId Atualmente não usado.
    requestId Identificador exclusivo para esta solicitação.

    Tipo de dados: Cadeia de caracteres

    pontuação Pontuação de confiança da intenção do ServiceNow NLU modelo, especificado como uma porcentagem, como 87,3%. Essa pontuação permite que o bot primário tome a decisão de exibir a intenção associada com base nos bots primários NLU limite de confiança do modelo. . ServiceNow NLU o limite de confiança do modelo é ignorado no ServiceNow para que o bot primário seja NLU o limite de confiança do modelo pode ser aplicado consistentemente em todos os bots secundários.

    Tipo de dados: Número

    TakeControl Sinalizador que indica que ServiceNow Virtual Agent deseja entregar o controle de volta para o bot primário.
    Valores possíveis:
    • Verdadeiro: Retorna o controle para o bot primário.
    • Falso: Manter o controle.

    Tipo de dados: Booliano

    Padrão: falso

    userId Identificador do usuário final que está interagindo com o bot.

    Tipo de dados: Cadeia de caracteres

    Inicie uma conversa usando a ação START_CONVERSATION para iniciar uma conversa

    O exemplo a seguir mostra como usar a ação START_CONVERSATION para iniciar uma conversa com Virtual Agent. Esta chamada direciona o usuário para o tópico de saudação.

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{ 
      "requestId": "asd2423-sda23-qwe23-we23", 
      "action": "START_CONVERSATION", 
      "enterpriseId": "ServiceNow", 
      "nowBotId": "A85PWLERF", 
      "clientSessionId": "", 
      "nowSessionId": "",
      "message":{ 
        "text": "", 
        "typed": true, 
        "clientMessageId": "ABC-123" 
      }, 
      "userId": "beth.anglin", 
      "emailId": "beth.anglin@example.com", 
      "timestamp": 1588824102, 
      "timezone": "America/New_York" 
    }"
    --user "username":"password"
    

    A seguir está o corpo da resposta enviado do VA para o endpoint de resposta configurado.

    { 
      "requestId":"asd2423-sda23-qwe23-we23", 
      "clientSessionId":"", 
      "nowSessionId":"", 
      "message":{ 
        "text":"", 
        "typed":true, 
        "clientMessageId":"ABC-123" 
      },
      "userId":"beth.anglin", 
      "body":[ 
        { 
          "uiType":"OutputText", 
          "group":"DefaultText", 
          "value":"Hi, I'm your Virtual Agent. Let me know how I can help you today.", 
          "maskType":"NONE" 
        },
        { 
          "uiType":"TopicPickerControl", 
          "group":"DefaultPicker", 
          "nluTextEnabled":false, 
          "promptMsg":"Hi guest, please enter your request or make a selection of what I can help with. You can type help any time when you need help.", 
          "label":"Show me everything", 
          "options":[ 
            { 
              "label":"b2b topic", 
              "value":"2bb7bd7670de6010f877c7f188266fc7", 
              "enabled":true 
            }, 
            { 
               "label":"Live Agent Support.", 
               "value":"ce2ee85053130010cf8cddeeff7b12bf", 
               "enabled":true 
            } 
          ] 
        }
      ],
      "score":1 
    } 

    Crie uma interação de bate-papo

    O exemplo a seguir mostra como usar a ação CREATE_CONVERSATION para criar uma interação de bate-papo.

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
      "requestId": "f42f3550-5b44-4cde-aa52-9b6756b3131c",
      "clientSessionId": "",
      "action": "CREATE_CONVERSATION",
      "message": {
        "text": "hi",
        "typed": false
      },
      "userId": "abel.tuter",
      "emailId": "abel.tuter@example.com"
    }"
    --user "username":"password"
    

    A seguir está o corpo da resposta enviado do VA para o endpoint de resposta configurado.

    {
      "requestId": "f42f3550-5b44-4cde-aa52-9b6756b3131c",
      "clientSessionId": "",
      "message": {
        "text": "hi",
        "typed": false
      },
      "userId": "abel.tuter",
      "interactionId": "240c91c8fd9f2e50f877c29ac5fbe8ed",
      "body": [
        {
          "uiType": "ActionMsg",
          "actionType": "CreateConversation",
          "conversationId": "a40c91c8fd9f2e50f877c29ac5fbe8eb",
          "interactionId": "240c91c8fd9f2e50f877c29ac5fbe8ed",
          "messageId": "b80c91c8fd9f2e50f877c29ac5fbe8f8"
        }
      ],
      "score": 1
    }

    Inicie uma conversa iniciada usando a ação START_CREATED_CONVERSATION

    O exemplo a seguir mostra como iniciar uma conversa de bate-papo que foi iniciada usando a ação CREATE_CONVERSATION.

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
      "requestId": "f42f3550-5b44-4cde-aa52-9b6756b3131c",
      "clientSessionId": "",
      "action": "START_CREATED_CONVERSATION",
      "userId": "abel.tuter",
      "emailId": "abel.tuter@example.com"
    }"
    --user "username":"password"
    

    A seguir está o corpo da resposta enviado do VA para o endpoint de resposta configurado.

    { 
      "requestId":"302bas2be70-sadsa-we32-3eq2-1231ra9", 
      "clientSessionId":"",
      "message":{ 
        "text":"hola", 
        "typed":true
      }, 
      "userId”:”abel.tuter", 
      "body":[
        { 
          "uiType":"OutputText", 
          "group":"DefaultText",
          "value":"Hi, I'm your Virtual Agent. Let me know how I can help you today.",
          "maskType":"NONE"
        },
        { 
          "uiType":"TopicPickerControl", 
          "group":"DefaultPicker",
          "nluTextEnabled":false,
          "promptMsg":"Hi guest, please enter your request or make a selection of what I can help with. You can type hellllp! any time when you need help.", 
          "label":"Show me everything",
          "options":[
            {
              "label":"boolean check",
              "value":"1b5257a1db712010d3d6d9595e9619f3",
              "enabled":true
            },
            { 
              "label":"Test_table_datepicker",
              "value":"6515f0cadb4220108249f7541d961980",
              "enabled":true
            }, 
            { 
              "label":"Test File upload",
              "value":"76c1f4b2db7520108249f7541d9619a7",
              "enabled":true
            },
            { 
              "label":"Test B2B 2",
              "value":"8373e55cdb8120108249f7541d96196d",
              "enabled":true
            },
            {
              "label":"FAQ Conversation Builder_Global",
              "value":"9f3114a3dbc520108249f7541d961981",
              "enabled":true
            },
            {
              "label":"Get to know you",
              "value":"a443dd6adb812010d3d6d9595e961954", 
              "enabled":true
            }, 
            { 
              "label":"Get to know you_Global", 
              "value":"b1a56b87db8120108249f7541d9619b2", 
              "enabled":true 
            },
            {
              "label":"Live Agent Support.",
              "value":"ce2ee85053130010cf8cddeeff7b12bf",
              "enabled":true
            },
            {
              "label":"Apply for PTO_B2B NLU",
              "value":"d948c94cdb052010d3d6d9595e961969",
              "enabled":true 
            }
          ]
        } 
       ], 
       "score":1 
    } 

    Falha em uma conversa usando

    O exemplo a seguir mostra como usar a ação FAULT_CONVERSATION e definir o valor de causeparâmetro.

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
      "requestId": "f42f3550-5b44-4cde-aa52-9b6756b3131c",
      "clientSessionId": "",
      "action": "FAULT_CONVERSATION",
      "cause": "EXTERNAL_FAILURE",
      "userId": "abel.tuter",
      "emailId": "abel.tuter@example.com"
    }"
    --user "username":"password"
    

    A seguir está o corpo da resposta enviado do VA para o endpoint de resposta configurado.

    {
      "requestId": "f42f3550-5b44-4cde-aa52-9b6756b3131c",
      "clientSessionId": "",
      "userId": "abel.tuter",
      "body": [],
      "takeControl": true,
      "score": 0
    }

    Atualize a mensagem no painel de bate-papo do agente

    A ação UPDATE_MESSAGES é usada durante conversas do atendente e é usada para refletir atualizações de mensagens no painel de bate-papo do agente de integrações de bate-papo de terceiros. Esta ação pode aceitar uma lista de mensagens e as atualizações de todas as mensagens podem ser feitas em uma única execução.

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
      "requestId": "f42f3550-5b44-4cde-aa52-9b6756b3131c",
      "clientSessionId": "",
      "message": [
        {
          "status": "external_error",
          "id": "54623afeff762210efa1ffffffffff77"
        }
      ],
      "userId": "abel.tuter",
      "emailId": "abel.tuter@example.com",
      "action": "UPDATE_MESSAGES"
    }"
    --user "username":"password"

    A mensagem de resposta enviada do VA para o endpoint de resposta configurado.

    Message Processed Successfully

    Atualizar somente o histórico de bate-papo

    O exemplo a seguir mostra como atualizar somente o histórico de bate-papo.

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
      "requestId": "f42f3550-5b44-4cde-aa52-9b6756b3131c",
    "clientSessionId": "",
      "userId": "abel.tuter",
      "emailId": abel.tuter@example.com,
      "action": "SEND_HISTORY",
      "history": [
        {
          "isBotMessage": true,
          "value": "How can I help you?",
          "displayName": "Genesys Bot",
          "type": "text",
          "timestamp": "1739866290393"
        },
        {
          "isBotMessage": false,
          "value": "I am facing an issue while creating an incident.",
          "displayName": "User",
          "type": "text",
          "timestamp": "1739877357223"
        },
        {
          "isBotMessage": true,
          "value": "Okay. i am routing you to an agent",
          "displayName": "Genesys Bot",
          "type": "text",
          "timestamp": "1739877409746"
        },
        {
          "isBotMessage": false,
          "value": "Thanks.",
          "displayName": "User",
          "type": "text",
          "timestamp": "1739877453201"
        }
      ]
    }"
    --user "username":"password"

    A resposta de sucesso enviada do VA para o endpoint de resposta configurado.

    {"status": "success"}

    Transferir uma conversa para Atendente usando enunciado

    O exemplo a seguir ilustra como transferir uma conversa para Atendente ignorando o tópico de saudação, passando agente como um enunciado em message.textparâmetro. Os valores de enunciado possíveis são definidos na tabela sys_cs_contextual_action. Para obter informações adicionais sobre ações contextuais, consulte Ações contextuais para integrações de bate-papo personalizadas .

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --header "token: ORANGE" \
    --data " {
      "requestId": "322bas2be70-sadsa-we32-3eq2-1231ra9",
      "botToBot": true,
      "clientSessionId": "",
      "silentMessage": false,
      "message":{
        "text": "agent",
        "typed": true
      },
      "userId": "abel.tuter",
      "emailId": "abel.tuter@servicenow.com",
      "timestamp": 1588824102,
      "timezone": "America/New_York"
    }"

    A seguir está o corpo da resposta enviado do VA para o endpoint de resposta configurado.

    {
      "requestId":"322bas2be70-sadsa-we32-3eq2-1231ra9",
      "clientSessionId":"",
      "message":{
        "text":"agent",
        "typed":true
      },
      "userId":"abel.tuter",
      "body":[
        {
          "uiType":"Picker",
          "group":"DefaultPicker",
          "required":true,
          "nluTextEnabled":false,
          "label":"I want to be sure I got this right. What item best describes what you want to do?",
          "itemType":"List",
          "style":"list",
          "multiSelect":false,
          "options":[
            {
              "label":"Live Agent Support.",
              "value":"Live Agent Support.",
              "renderStyle":"data",
              "enabled":false
            },
            {
              "label":"Virtual Agent Capabilities.",
              "value":"Virtual Agent Capabilities.",
              "renderStyle":"data",
              "enabled":false
            },
            {
              "label":"I want something else",
              "value":"-1",
              "renderStyle":"data",
              "enabled":false
            }
          ],
          "scriptedData":null
        }
      ],
      "score":1
    }

    Transfira uma conversa para o Suporte do atendente com base na seleção do usuário

    O exemplo a seguir mostra como transferir a conversa para o Suporte do atendente com base na seleção do usuário na interação anterior.

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --header "token: ORANGE" \
    --data "{
      "requestId": "322bas2be70-sadsa-we32-3eq2-1231ra9",
      "botToBot": true,
      "clientSessionId": "",
      "silentMessage": false,
      "message":{
        "text": "Live Agent Support.",
        "typed": true
      },
      "userId": "abel.tuter",
      "emailId": "abel.tuter@servicenow.com",
      "timestamp": 1588824102,
      "timezone": "America/New_York"
    } "

    A seguir está o corpo da resposta enviado do VA para o endpoint de resposta configurado.

    {
      "requestId":"322bas2be70-sadsa-we32-3eq2-1231ra9",
      "clientSessionId":"",
      "message":{
        "text":"Live Agent Support.",
        "typed":true
      },
      "userId":"abel.tuter",
      "body":[
        {
          "uiType":"OutputText",
          "group":"DefaultText",
          "value":"Please stand by while I connect you to a live agent."
        }
      ],
      "agentChat":true,
      "score":1
    }

    Término A. Virtual Agent definindo o parâmetro de ação

    O exemplo a seguir mostra como encerrar um Virtual Agent definindo o. actionparâmetro para END_CONVERSATION .

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
      "requestId": "s345ew-sjg554-qwe23-we23",
      "action": "END_CONVERSATION",
      "enterpriseId": "ServiceNow",
      "nowBotId": "A85PWLERF",
      "clientSessionId": "",
      "nowSessionId": "",
      "message":{
        "text": "b2b topic",
        "typed": true,
        "clientMessageId": "ABC-123"
      },
      "userId": "beth.anglin",
      "emailId": beth.anglin@example.com,
      "timestamp": 1588824102,
      "timezone": "America/New_York"
    }"
    --user "username":"password"
    

    A seguir está o corpo da resposta enviado do VA para o endpoint de resposta configurado mostrando a conversa encerrada.

    {
      "requestId":"s345ew-sjg554-qwe23-we23",
      "clientSessionId":"",
      "nowSessionId":"",
      "message":{
        "text":"",
        "typed":true,
        "clientMessageId":"ABC-123"
      },
      "userId":"beth.anglin",
      "body":[
        {
          "uiType":"OutputText",
          "group":"DefaultText",
          "value":"The conversation has ended. If you need help again, type hi.",
          "maskType":"NONE"
        }
      ],
      "score":1
    }

    Término A. Atendente definindo o parâmetro de ação

    O exemplo a seguir mostra como encerrar um Atendente definindo o. actionparâmetro para END_CONVERSATION .

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
      "requestId": "sad-sjg554-qwe23-we23",
      "action": "END_CONVERSATION",
      "enterpriseId": "ServiceNow",
      "nowBotId": "A85PWLERF",
      "clientSessionId": "",
      "nowSessionId": "",
      "message":{
        "text": "",
        "typed": true,
        "clientMessageId": "ABC-123"
      },
      "userId": "beth.anglin",
      "emailId": "beth.anglin@example.com",
      "timestamp": 1588824102,
      "timezone": "America/New_York"
    }"
    --user "username":"password"
    

    A seguir está o corpo da resposta enviado do VA para o endpoint de resposta configurado mostrando a conversa encerrada.

    {
      "requestId":"sad-sjg554-qwe23-we23",
      "clientSessionId":"",
      "nowSessionId":"",
      "message":{
        "text":"",
        "typed":true,
        "clientMessageId":"ABC-123"
      },
      "userId":"beth.anglin",
      "body":[
        {
          "uiType":"OutputText",
          "group":"DefaultText",
          "value":"The conversation has ended. If you need help again, type hi.",
          "maskType":"NONE"
        }
      ],
      "completed":true,
      "score":1
    }

    Use comandos definidos na tabela sys_cs_contextual_action como um enunciado para iniciar uma conversa com Virtual Agent

    O exemplo a seguir mostra como usar o. Hicomando definido na tabela sys_cs_contextual_action como um enunciado com o qual iniciar uma conversa Virtual Agent em vez de definir actionparâmetro para START_CONVERSATION como mostrado em exemplos anteriores. Este exemplo mostra o uso de uma das variantes de idioma do Hi"hola".

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --header "token: ORANGE" \
    --data "{
      "requestId": "302bas2be70-sadsa-we32-3eq2-1231ra9",
      "botToBot": true,
      "clientSessionId": "",
      "silentMessage": false,
      "message":{
        "text": "hola",
        "typed": true
      },
      "userId": "fred.ludy",
      "emailId": "abel.tuter@servicenow.com",
      "timestamp": 1588824102,
      "timezone": "America/New_York"
    }"

    A seguir está o corpo da resposta enviado do VA para o endpoint de resposta configurado.

    { 
      "requestId":"302bas2be70-sadsa-we32-3eq2-1231ra9", 
      "clientSessionId":"",
      "message":{ 
        "text":"hola", 
        "typed":true
      }, 
      "userId":"fred.ludy", 
      "body":[
        { 
          "uiType":"OutputText", 
          "group":"DefaultText",
          "value":"Hi, I'm your Virtual Agent. Let me know how I can help you today.",
          "maskType":"NONE"
        },
        { 
          "uiType":"TopicPickerControl", 
          "group":"DefaultPicker",
          "nluTextEnabled":false,
          "promptMsg":"Hi guest, please enter your request or make a selection of what I can help with. You can type hellllp! any time when you need help.", 
          "label":"Show me everything",
          "options":[
            {
              "label":"boolean check",
              "value":"1b5257a1db712010d3d6d9595e9619f3",
              "enabled":true
            },
            { 
              "label":"Test_table_datepicker",
              "value":"6515f0cadb4220108249f7541d961980",
              "enabled":true
            }, 
            { 
              "label":"Test File upload",
              "value":"76c1f4b2db7520108249f7541d9619a7",
              "enabled":true
            },
            { 
              "label":"Test B2B 2",
              "value":"8373e55cdb8120108249f7541d96196d",
              "enabled":true
            },
            {
              "label":"FAQ Conversation Builder_Global",
              "value":"9f3114a3dbc520108249f7541d961981",
              "enabled":true
            },
            {
              "label":"Get to know you",
              "value":"a443dd6adb812010d3d6d9595e961954", 
              "enabled":true
            }, 
            { 
              "label":"Get to know you_Global", 
              "value":"b1a56b87db8120108249f7541d9619b2", 
              "enabled":true 
            },
            {
              "label":"Live Agent Support.",
              "value":"ce2ee85053130010cf8cddeeff7b12bf",
              "enabled":true
            },
            {
              "label":"Apply for PTO_B2B NLU",
              "value":"d948c94cdb052010d3d6d9595e961969",
              "enabled":true 
            }
          ]
        } 
       ], 
       "score":1 
    } 

    Use comandos definidos na tabela sys_cs_contextual_action como um enunciado para encerrar uma conversa

    O exemplo a seguir mostra como usar o. Byecomando definido na tabela sys_cs_contextual_action como um enunciado com o qual encerrar uma conversa Virtual Agent em vez de definir action. END_CONVERSATION como mostrado em exemplos anteriores. Este exemplo mostra o uso de uma das variantes de idioma do Byecomando, "choa".

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --header "token: ORANGE" \
    --data "{
      "requestId": "302bas2be70-sadsa-we32-3eq2-1231ra9",
      "botToBot": true,
      "clientSessionId": "",
      "silentMessage": false,
      "message":{
        "text": "choa",
        "typed": true
      },
      "userId": "fred.ludy",
      "emailId": "abel.tuter@servicenow.com",
      "timestamp": 1588824102,
      "timezone": "America/New_York"
    }"

    A seguir está o corpo da resposta enviado do VA para o endpoint de resposta configurado.

    {
      "requestId":"302bas2be70-sadsa-we32-3eq2-1231ra9",
      "clientSessionId":"",
      "message":{ 
        "text":"chao",
        "typed":true
      }, 
      "userId":"fred.ludy",
      "body":[ 
        {
          "uiType":"Picker",
          "group":"DefaultPicker",
          "required":true,
          "nluTextEnabled":false,
          "label":"Please make a selection.",
          "itemType":"List",
          "style":"list",
          "multiSelect":false,
          "options":[
            {
              "label":"End conversation",
              "value":"1",
              "renderStyle":"data",
              "enabled":false
            }, 
            {
              "label":"Cancel",
              "value":"0",
              "renderStyle":"data",
              "enabled":false
            } 
          ],
          "scriptedData":null 
        }
      ],
      "score":1 
    }

    Mude uma conversa em andamento usando o parâmetro de ação DE ALTERNÂNCIA

    O exemplo a seguir mostra como usar o. COMUTADOR actionparâmetro para mudar uma conversa em andamento para o tópico que corresponde ao especificado em intent.idparâmetro.

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
      "requestId": "sdfsfs-hgfhg-34fssd-zxcz-sd43",
      "enterpriseId": "ServiceNow",
      "nowBotId": "A85PWLERF",
      "clientSessionId": "",
      "nowSessionId": "",
      "action": "SWITCH",
      "intent" : {
        "id": "Saloon Vehicle"
      },
      "message":{
        "typed": true,
        "clientMessageId": "ABC-123"
      },
      "userId": "Guest",
      "timestamp": 1588824102,
      "timezone": "America/New_York"
    }"
    --user "username":"password"
    

    A seguir está o corpo da resposta enviado do VA para o endpoint de resposta configurado mostrando que o VA mudou para o novo tópico.

    {
       "requestId":"sdfsfs-hgfhg-34fssd-zxcz-sd43",
       "clientSessionId":"",
       "nowSessionId":"",
       "message":{
          "typed":true,
          "clientMessageId":"ABC-123"
       },
       "userId":"Guest",
       "body":[
          {
             "uiType":"InputText",
             "group":"DefaultText",
             "required":true,
             "nluTextEnabled":false,
             "label":"limo input:",
             "maskType":"NONE"
          }
       ],
       "score":1
    }

    Obtenha um Compreensão da linguagem natural( NLU pontuação de confiança para um enunciado

    O exemplo a seguir mostra como obter um NLU pontuação de confiança para um enunciado se NLU Está habilitado no VA.

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
      "requestId": "sdfsfs-hgfhg-34fssd-zxcz-sd43", 
      "enterpriseId": "ServiceNow", 
      "nowBotId": "A85PWLERF", 
      "clientSessionId": "", 
      "nowSessionId": "", 
      "message":{ 
        "text": "most popular choice", 
        "typed": true, 
        "clientMessageId": "ABC-123" 
      }, 
      "userId": "Guest", 
      "timestamp": 1588824102, 
      "timezone": "America/New_York" 
    }"
    --user "username":"password"
    

    A seguir está o corpo da resposta enviado do VA para o endpoint de resposta configurado mostrando a pontuação de confiança do NLU.

    { 
      "requestId":"sdfsfs-hgfhg-34fssd-zxcz-sd43", 
      "clientSessionId":"", 
      "nowSessionId":"", 
      "message":{ 
        "text":"most popular choice", 
        "typed":true, 
        "clientMessageId":"ABC-123" 
      }, 
      "userId":"Guest", 
      "body":[ 
        { 
          "uiType":"InputText", 
          "group":"DefaultText", 
          "required":true, 
          "nluTextEnabled":false, 
          "label":"model input:", 
          "maskType":"NONE" 
        }
      ], 
      "score":"0.92" 
    }

    Transfira uma conversa para o atendente em uma fila específica

    O exemplo a seguir mostra como transferir uma conversa para o atendente em uma fila específica. Primeiro, você deve configurar suas filas com condições específicas. Em seguida, você passa essas condições como contextVariablesno corpo da solicitação. Para obter informações adicionais sobre como criar uma fila de item de trabalho, consulte Crie uma fila de item de trabalho .

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
      "requestId": "34re-dasd-qwe23-dsds", // Unique value for a message (hash)
      "enterpriseId": "ServiceNow", // ServiceNow (Optional
      "nowBotId": "A85PWLERF", // In case of multiple ServiceNow secondary bots (one for HR, one for ITSM)
      "action":"AGENT", // Actions to close conversation. Other possible value is END_CONVERSATION
      "clientSessionId": "", // Client conversation id
      "nowSessionId": "", // ServiceNow conversation id
      "message":{
        "text": "How are you?", // User passed message
        "typed": true, // typed or clicked
        "clientMessageId": "ABC-123"
      },
      "userId": "abraham.lincoln", // User’s id in their system
      "emailId": "abraham.lincoln@example.com",
      "timestamp": 1588824102,
      "timezone": "America/New_York",
      "contextVariables":{
        "b2b_category":"humanresource"
      } 
    }"
    --user "username":"password"
    

    A seguir está o corpo da resposta enviado do VA para o endpoint de resposta configurado.

    {
      "requestId":"34re-dasd-qwe23-dsds",
      "clientSessionId":"",
      "nowSessionId":"",
      "message":{
        "text":"How are you?",
        "typed":true,
        "clientMessageId":"ABC-123"
       },
       "userId":"abraham.lincoln",
       "body":[
         {
           "uiType":"OutputText",
           "group":"DefaultText",
           "value":"I am sorry but I didn't understand your request.",
           "maskType":"NONE"
        },
        {
          "uiType":"OutputText",
          "group":"DefaultText",
          "value":"Please try giving me your request in a different way. I'm currently better at understanding short sentences.",
          "maskType":"NONE"
        },
        {
          "uiType":"TopicPickerControl",
          "group":"DefaultPicker",
          "nluTextEnabled":false,
          "promptMsg":"Hi guest, please enter your request or make a selection of what I can help with. You can type help any time when you need help.",
          "label":"Show me everything",
          "options":[
            {
              "label":"Live Agent Support.",
              "value":"ce2ee85053130010cf8cddeeff7b12bf",
              "enabled":true
            }
          ]
        }
      ],
      "score":0
    }

    Transfira um arquivo de anexo público de aplicação/pdf

    Este exemplo mostra como transferir um anexo público de aplicação/PDF.

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --header "token: BOT_Token" \
    --data "{
      "requestId": "f42f3550-5b44-4cde-aa52-9b6756b3131c",
      "clientSessionId": "U94CSJLEN",
      "message": {
        "attachment": {
        "clientAttachmentId": "my-unique-identifier",
        "contentType": "application/pdf",
        "fileName": "MY PDF TEST",
        "url": "http://www.africau.edu/images/default/sample.pdf"
        }
      },
      "userId": "U94CSJLEN",
      "emailId": "admin@example.com"
    }"
    --user "username":"password"
    

    A seguir está o corpo da resposta enviado do VA para o endpoint de resposta configurado.

    {
      "requestId":"f42f3550-5b44-4cde-aa52-9b6756b3131c",
      "clientSessionId":"U94CSJLEN",
      "message":{
        "attachment":{
          "clientAttachmentId":"my-unique-identifier",
          "contentType":"application/pdf",
          "fileName":"MY PDF TEST",
          "url":"http://www.africau.edu/images/default/sample.pdf"}
        },
        "userId":"U94CSJLEN",
        "body":[
          {
            "uiType":"OutputText",
            "group":"DefaultText",
            "required":false,
            "nluTextEnabled":false,
            "label":"File got",
            "maskType":"NONE",
            "itemType":"outputtext"
          },
          {
            "uiType":"OutputText",
            "group":"DefaultText",
            "required":false,
            "nluTextEnabled":false,
            "label":"The conversation has ended. If you need help again, type hi.",
            "maskType":"NONE",
            "itemType":"outputtext"
           }
        ],
      "completed":true,
      "score":1
    }

    Transfira um anexo de vídeo/mpeg

    Este exemplo mostra a solicitação/resposta para carregar um anexo de vídeo/mpeg.

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --header "token: BOT_TOKEN" \
    --data "{
      "requestId": "f42f3550-5b44-4cde-aa52-9b6756b3131c",
      "clientSessionId": "U94CSJLEN",
      "message": {
        "attachment": {
        "clientAttachmentId": "my-unique-identifier10",
        "contentType": "video/mpeg",
        "fileName": "MY TEST10.mp4",
        "url": "https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4"
        }
      },
      "userId": "U94CSJLEN",
      "emailId": "admin@example.com"
    }"
    --user "username":"password"
    

    A seguir está o corpo da resposta enviado do VA para o endpoint de resposta configurado.

    {
      "requestId":"f42f3550-5b44-4cde-aa52-9b6756b3131c",
      "clientSessionId":"U94CSJLEN",
      "message":{
        "attachment":{
          "headers":{
            "Authorization":"Basic amFzbWluZS53YWRod2FuaWE6VGVzdGluZ0AxMjM="
          },
          "clientAttachmentId":"my-unique-identifier10",
          "contentType":"video/mpeg",
          "fileName":"MY TEST10.mp4",
          "url":"https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4"
        }
      },
      "userId":"U94CSJLEN",
      "body":[
        {
          "uiType":"OutputText",
          "group":"DefaultText",
          "required":false,
          "nluTextEnabled":false,
          "label":"File got",
          "maskType":"NONE",
          "itemType":"outputtext"
        },
        {
          "uiType":"OutputText",
          "group":"DefaultText",
          "required":false,
          "nluTextEnabled":false,
          "label":"The conversation has ended. If you need help again, type hi.",
          "maskType":"NONE","itemType":"outputtext"
        }
      ],
      "completed":true,
      "score":1
    }

    Transfira um anexo de imagem/jpeg

    Este exemplo mostra a solicitação/resposta para carregar um anexo de imagem/jpeg.

    curl "https://instance.servicenow.com/api/sn_va_as_service/bot/integration" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --header "token: BOT_TOKEN" \
    --data "{
      "requestId": "f42f3550-5b44-4cde-aa52-9b6756b3131c",
      "clientSessionId": "U94CSJLEN",
      "message": {
        "attachment": {
          "clientAttachmentId": "my-unique-identifier10",
          "contentType": "image/jpeg",
          "fileName": "MY TEST10.jpg",
          "url": "https://image.imagestock.com/image-photo/pink-butterfly-isolated-on-white-260nw-1218104047.jpg"
        }
      },
      "userId": "U94CSJLEN",
      "emailId": "admin@example.com"
    }"
    --user "username":"password"
    

    A seguir está o corpo da resposta enviado do VA para o endpoint de resposta configurado.

    {
      "requestId":"f42f3550-5b44-4cde-aa52-9b6756b3131c",
      "clientSessionId":"U94CSJLEN",
      "message":{
        "attachment":{
          "headers":{
            "Authorization":"Basic amFzbWluZS53YWRod2FuaWE6VGVzdGluZ0AxMjM="
          },
          "clientAttachmentId":"my-unique-identifier10",
          "contentType":"image/jpeg",
          "fileName":"MY TEST10.jpg",
          "url":"https://image.imagestock.com/image-photo/pink-butterfly-isolated-on-white-260nw-1218104047.jpg"
        }
      },
      "userId":"U94CSJLEN",
      "body":[
        {
          "uiType":"OutputText",
          "group":"DefaultText",
          "required":false,
          "nluTextEnabled":false,
          "label":"File got",
          "maskType":"NONE",
          "itemType":"outputtext"
        },
        {
          "uiType":"OutputText",
          "group":"DefaultText",
          "required":false,
          "nluTextEnabled":false,
          "label":"The conversation has ended. If you need help again, type hi.",
          "maskType":"NONE",
          "itemType":"outputtext"
        }
      ],
      "completed":true,
      "score":1
    }