API de integração de bot do Virtual Agent
. 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 Agente/ou Atendente.
Esta API foi criada com base na estrutura de integração de bate-papo personalizada conversacional fornecida com Virtual Agente opera no sn_va_as_service namespace.
Para obter informações adicionais sobre como instalar e configurar o. Virtual AgentAPI de integração de bot, consulte Virtual Agent API .
VA Bot Integração - POST /sn_va_as_service/bot/integration
Envia uma mensagem, anexo ou URL especificado para um secundário especificado ServiceNow Virtual Agent(VA) bot.
O site de um cliente pode ter um ou mais secundários ServiceNowbots. Além de passar mensagens para um ServiceNowVA bot secundário, o bot primário ou o cliente de bate-papo pode usar este endpoint para passar mensagens para um agente por meio de Atendentebate-papo. Use o. actionparâmetro passado no corpo da solicitação para especificar como o conteúdo especificado deve ser tratado.
Formato de URL
URL padrão: /api/sn_va_as_service/bot/integration
Parâmetros de solicitação compatíveis
| Nome | Descrição |
|---|---|
| Nenhum(a) |
| Nome | Descrição |
|---|---|
| Nenhum(a) |
| Nome | Descrição |
|---|---|
| ação | Ação que o VA deve executar. Valores válidos:
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:
Tipo de dados: Booliano Padrão: verdadeiro |
| 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. ServiceNowbot. 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. Tipo de dados: Cadeia de caracteres Padrão: Nulo |
| ClientVariables | Pares nome-valor formatados em 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 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 do bate-papo . Por exemplo: Tipo de dados: Objeto Padrão: Nulo |
| Necessário ao habilitar a vinculação de contas, 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 a qual o bot está interagindo. Para obter informações adicionais sobre vinculação de contas, consulte Vincule sua conta de usuário da ServiceNow a uma aplicação 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 Por exemplo: |
| Histórico.displayName | Nome do usuário para o qual a mensagem foi enviada. Se for o bot primário, aprovado 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:
Tipo de dados: Booliano |
| histórico.tipo | 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 INTERRUTOR .Tipo de dados: Objeto |
| 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 | Necessário. Detalhes da mensagem a ser enviada para ServiceNowbot. Tipo de dados: Objeto |
| message.attachment | Necessário se enviar anexos. Detalhes de cada anexo a ser enviado. Você só pode passar anexos como um URL. Uma verificação de vírus é acionada em todos os anexos. Não há restrições quanto ao tamanho de um anexo, no entanto, arquivos grandes podem levar um tempo significativo para serem transferidos. Tipo de dados: Matriz de objetos |
| Message.attachment.clientAttachmentId | Identificador exclusivo do anexo a ser enviado ao ServiceNowbot. O formato deste identificador é determinado pelo implementador. Tipo de dados: Cadeia de caracteres Padrão: Nulo |
| Message.attachment.contentType | Necessário se o anexo for especificado. Tipo mime padrão do anexo. Valores válidos (não diferenciam maiúsculas de minúsculas):
Tipo de dados: Cadeia de caracteres |
| Message.attachment.Filename | Necessário se o anexo for especificado. Nome do arquivo do anexo. Tipo de dados: Cadeia de caracteres |
| cabeçalhos.anexo.mensagem | Informações adicionais necessárias se o arquivo anexo for privado e protegido. Tipo de dados: Objeto |
| 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 | Necessário se o anexo for especificado. URL em que 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ê deve 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 do URL esteja presente nos domínios confiáveis arquivados 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.text | Necessário se attachmento parâmetro não foi especificado. Texto da mensagem. O idioma da mensagem deve ser passado no contextVariablesparâmetro. Tipo de dados: Cadeia de caracteres Tamanho máximo: Ilimitado |
| mensagem.digitada | Necessário. Sinalizador que indica se a mensagem foi digitada ou se era uma seleção de opção (selecionada). Valores válidos:
Tipo de dados: Booliano |
| requestId | Necessá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:
Nota: Se uma solicitação com SilentMessage: Verdadeiro é enviada, todas as mensagens de bot subsequentes permanecem suprimidas até que uma solicitação para desativar o modo silencioso seja enviada por aprovação 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 Padrão: Hora atual |
| Fuso horário | Fuso horário GMT do usuário final do cliente de bate-papo. Por exemplo: 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 Padrão: Fuso horário GMT do ServiceNowinstâ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 Por exemplo: |
| topic.name | Nome do tópico para o qual alternar. Tipo de dados: Cadeia de caracteres Tabela: No campo de nome da tabela Tópicos do Virtual Agent [sys_cs_topic]. |
| id.tópico | Sys_id do tópico para alternar. Tipo de dados: Cadeia de caracteres Tabela: Tópicos do Virtual Agent [sys_cs_topic] |
| userId | Necessá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 da REST API compatíveis .
| Cabeçalho | Descrição |
|---|---|
| Aceitar | Formato de dados do corpo da resposta. Suporta somente application/json. |
| Tipo de conteúdo | Formato de dados do corpo da solicitação. Suporta somente 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 |
| 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 REST API códigos de resposta HTTP .
| Código de 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:
|
| 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. Isso é 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 | 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:
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:
Tipo de dados: Booliano |
| corpo | Lista de objetos que descrevem os elementos do corpo da mensagem de resposta. Tipo de dados: Matriz de objetos |
| Tipo.actionType | Tipo de mensagem de ação expedida pelo bot secundário para o bot primário. Por exemplo, digitar indicador ou tempo de espera do agente. Valores possíveis:
Por exemplo: Enviando Enviando Tipo de dados: Cadeia de caracteres |
| Informações do agente.corpo | Se habilitado na configuração de bate-papo do agente, o nome e o avatar do agente associado. Tipo de dados: Objeto Por exemplo: |
| 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 |
| AgentInfo.AgentName.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:
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:
Tipo de dados: Cadeia de caracteres |
| cabeçalho.corpo | Cabeçalho do link. Tipo de dados: Cadeia de caracteres |
| altura do corpo | 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)
Tipo de dados: Cadeia de caracteres |
| rótulo.corpo | Rótulo a ser exibido para o elemento associado. Tipo de dados: Cadeia de caracteres |
| Tipo.maskType | Confidencialidade dos dados associados. Valores possíveis:
Tipo de dados: Cadeia de caracteres |
| MaxCount | Retornado somente quando uiTypeé Arquivo carregado . Número máximo de anexos que podem ser carregados de uma só vez.Tipo de dados: Número (inteiro) |
| Tamanho.maxSize | Retornado somente quando uiTypeé Arquivo carregado . Tamanho máximo do anexo que pode ser carregado.Tipo de dados: Número (inteiro) Unidade: Megabytes |
| mensagem.corpo | Retornado somente quando actionTypeé StartSpinner . Mensagem a ser exibida ao usuário.Tipo de dados: Cadeia de caracteres |
| Seleção múltipla.Corpo | Sinalizador que indica se o usuário pode selecionar várias opções. Valores possíveis:
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:
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 |
| corpo.opções.anexo | 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:
Tipo de dados: Booliano |
| label.options.body | 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 |
| valor.options.corpo | Valor a ser exibido para o associado body.options.labelparâmetro. Tipo de dados: Cadeia de caracteres |
| body.promptMsg | Mensagem de prompt 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:
Tipo de dados: Booliano |
| Tipo.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:
Tipo de dados: Cadeia de caracteres |
| Nome.templateName | 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 |
| Tipo.uicorpo | 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:
Tipo de dados: Cadeia de caracteres |
| valor.corpo | 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. 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 |
| valor.corpo.ação | Retornado somente para DefaultOutputLink. URL do link retornado. Tipo de dados: Cadeia de caracteres |
| WaitTime.WaitTime | Tempo que o usuário precisa aguardar antes de se conectar a um atendente. Tipo de dados: Cadeia de caracteres |
| largura.corpo | 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. ServiceNowbot. 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ídos | Sinalizador que indica se ServiceNow Virtual Agentconcluiu a conversa com sucesso. Valores possíveis:
Tipo de dados: Booliano |
| ID da empresa | Atualmente não usado. |
| mensagem | Detalhes da mensagem enviada para ServiceNowVA. É o mesmo que o objeto de mensagem passado. Tipo de dados: Objeto |
| message.attachment | Detalhes do anexo. Os anexos podem ser um arquivo ou um URL. Tipo de dados: Objeto |
| Message.attachment.clientAttachmentId | Identificador exclusivo do anexo enviado para ServiceNowVA. 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):
Tipo de dados: Cadeia de caracteres |
| Message.attachment.Filename | Nome do arquivo do anexo. Tipo de dados: Cadeia de caracteres |
| message.attachment.url | URL em que 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:
Tipo de dados: Booliano |
| Now BotId | Atualmente não usado. |
| Now SessionId | 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 NLUmodelo, 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 NLUlimite de confiança do modelo. . ServiceNow NLUo limite de confiança do modelo é ignorado no ServiceNowpara que o bot primário seja NLUo limite de confiança do modelo pode ser aplicado de forma consistente em todos os bots secundários. Tipo de dados: Número |
| Tome Control | Sinalizador que indica que ServiceNow Virtual Agentdeseja entregar o controle de volta ao bot primário. Valores possíveis:
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"
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
}
Transfira uma conversa para Atendenteusando enunciado
O exemplo a seguir ilustra como transferir uma conversa para Atendente, ignorando o tópico de saudação, passando agente como um enunciado no message.textparâmetro. Os possíveis valores de enunciado 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"
}"
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"
} "
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 Agentconfiguração do parâmetro de ação
O exemplo a seguir mostra como encerrar um Virtual Agentconfiguração de 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"
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. Atendenteconfiguração do parâmetro de ação
O exemplo a seguir mostra como encerrar um Atendenteconfiguração de 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"
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 os comandos definidos na tabela sys_cs_contextual_action como um enunciado para iniciar uma conversa 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 Agentem vez de definir o. actionparâmetro para START_CONVERSATION como mostrado nos 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"
}"
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 Agentem vez de definir actionpara END_CONVERSATION como mostrado nos 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"
}"
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. INTERRUTOR actionparâmetro para mudar uma conversa em andamento para o tópico que corresponde ao especificado no 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"
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( NLUpontuação de confiança de um enunciado
O exemplo a seguir mostra como obter um NLUpontuação de confiança para um enunciado se NLUEstá 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"
O corpo da resposta enviado do VA para o endpoint de resposta configurado mostrando a pontuação de confiança de 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"
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"
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"
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"
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
}