Virtual Agent-Bot Integration API
Die Virtual Agent-Bot Integration -API bietet Endpunkte, mit denen Anwender jede Chatschnittstelle oder ein Bot-Ökosystem mit ServiceNow Virtual Agent und/oder Service Desk-Mitarbeiterintegrieren können.
Diese API basiert auf dem anwenderdefinierten Chatintegrations-Framework für Konversationen, das mit Virtual Agent bereitgestellt wird, und wird im Namespace sn_va_as_service ausgeführt.
Weitere Informationen zum Installieren und Konfigurieren der Bot-Integrations-API Virtual Agent finden Sie unter Virtual Agent-API.
VA-Bot-Integration – POST /sn_va_as_service/bot/integration
Sendet eine angegebene Nachricht, einen angegebenen Anhang oder eine angegebene URL an einen angegebenen sekundären ServiceNow Virtual Agent (VA)-Bot.
Die Site eines Kunden kann einen oder mehrere sekundäre Bots ServiceNow enthalten. Zusätzlich zur Übertragung von Nachrichten an einen sekundären VA-Bot von ServiceNow kann der primäre Bot oder Chatclient diesen Endpunkt verwenden, um Nachrichten an einen Service Desk-Mitarbeiter über den Chat von Service Desk-Mitarbeiter zu übergeben. Verwenden Sie den im Anforderungstext übergebenen Parameter action, um anzugeben, wie der angegebene Inhalt behandelt werden soll.
URL-Format
Standard-URL: /api/sn_va_as_service/bot/integration
Unterstützte Anforderungsparameter
| Name | Beschreibung |
|---|---|
| Keine |
| Name | Beschreibung |
|---|---|
| Keine |
| Name | Beschreibung |
|---|---|
| Aktion | Aktion, die der VA ausführen soll. Gültige Werte:
Datentyp: Zeichenfolge Standard: Null |
| BotToBot | Kennzeichnung, die angibt, ob die Konversation zwischen Bots stattfindet, z. B. zwischen einem primären und einem sekundären Bot. Mögliche Werte:
Datentyp: Boolesch Standardwert: true |
| clientSessionId | Eindeutiger Bezeichner der Clientsitzung der Anwendung/des Service, die bzw. der der Endanwender für die Kommunikation mit dem Bot ServiceNow verwendet. Diese ID hilft, den Satz von Anforderungen/Antworten für eine bestimmte Anwenderkonversation zu identifizieren. Das Format dieses Parameters wird vom Implementierer bestimmt. Datentyp: Zeichenfolge Standard: Null |
| clientVariables | Pass-Through-Name/Wert-Paare im JSON-Format, die in der Antwort zurückgesendet werden. Diese Werte werden nicht vom Endpunkt verarbeitet, können jedoch verwendet werden, um bestimmte Kundeninformationen als Anhang an die Konversation anzuhängen. Datentyp: Objekt Standard: Null |
| contextVariables | JSON-formatierte Name/Wert-Paare, die zusätzliche Informationen über den Anwender bereitstellen. Geben Sie diese Informationen an, um die Konversations-Experience anzupassen. Weitere Informationen zu Kontextvariablen finden Sie unter Chat-Kontextvariablen definieren und veröffentlichen. Beispiel: Datentyp: Objekt Standard: Null |
| emailId | Erforderlich, wenn die Account-Verknüpfung aktiviert wird, andernfalls gelten alle Anwender als Gastanwender. E-Mail-Adresse des Endanwenders des Chatclients, der Person, mit der der Bot interagiert. Weitere Informationen zur Verknüpfung von Accounts finden Sie unter Ihren ServiceNow-Anwenderaccount mit einer Messaging-Anwendung für Virtual Agent-Konversationenverknüpfen. Datentyp: Zeichenfolge |
| Verlauf | Verlauf der Konversation des primären Bots mit dem Anwender, beginnend mit der ersten Anforderung durch den Anwender. Datentyp: Objekt Beispiel: |
| history.displayName | Name des Benutzers, an den die Nachricht gesendet wurde. Wenn der primäre Bot, übergeben Sie Bot. Datentyp: Zeichenfolge |
| history.isBotMessage | Kennzeichnung, die angibt, ob die Nachricht vom primären Bot gesendet wurde. Gültige Werte:
Datentyp: Boolesch |
| history.type | Typ der gesendeten Nachricht. Gültige Werte: Text Datentyp: Zeichenfolge |
| history.value | Inhalt der Informationen. Zum Beispiel der Nachrichtentext. Datentyp: Zeichenfolge |
| Absicht | Beschreibt die Absicht der Konversation. Geben Sie diese Informationen an, wenn der Parameter action auf SWITCHfestgelegt ist.Datentyp: Objekt |
| intent.id | NLU Absichts-ID des Systemthemas, zu der die Konversation wechseln soll. Befindet sich in der Tabelle „CS-Themensprache“ [sys_cs_topic_language]. intent.id wird basierend auf der in der Chatsitzung übergebenen Sprache aufgelöst. Wenn beim Starten einer Konversation keine Sprache übergeben wird, wird die Sprache aus der Sitzung/dem Profil des Anwenders abgerufen. Datentyp: Zeichenfolge |
| Nachricht | Erforderlich. Details der Nachricht, die an den Bot ServiceNow gesendet werden soll. Datentyp: Objekt |
| message.attachment | Erforderlich, wenn Anhänge gesendet werden. Details jedes zu sendenden Anhangs. Sie können Anhänge nur als URL übergeben. Ein Virenscan wird für alle Anhänge ausgelöst. Es gibt keine Beschränkung der Größe von Anhängen. Die Übertragung großer Dateien kann jedoch erhebliche Zeit in Anspruch nehmen. Datentyp: Array von Objekten |
| message.attachment.clientAttachmentId | Eindeutiger Bezeichner des Anhangs, der an den Bot ServiceNow gesendet werden soll. Das Format dieses Bezeichners wird vom Implementierer bestimmt. Datentyp: Zeichenfolge Standard: Null |
| message.attachment.contentType | Erforderlich, wenn Anhang angegeben ist. Standard-MIME-Typ des Anhangs. Gültige Werte (Groß-/Kleinschreibung nicht relevant):
Datentyp: Zeichenfolge |
| message.attachment.fileName | Erforderlich, wenn Anhang angegeben ist. Dateiname des Anhangs. Datentyp: Zeichenfolge |
| message.attachment.headers | Zusätzliche Informationen erforderlich, wenn die Anhangdatei privat und geschützt ist. Datentyp: Objekt |
| message.attachment.headers.Authorization (Nachricht.Anhang.Header.Autorisierung) | Informationen, die zum Erhalten der Autorisierung für den Zugriff auf den Anhang erforderlich sind, z. B. Anwendername und Passwort. Datentyp: Zeichenfolge |
| message.attachment.url | Erforderlich, wenn Anhang angegeben ist. URL, unter der sich der Anhang befindet. Der VA ruft den Anhang von dieser URL ab, führt einen Virenscan durch und verarbeitet dann die Datei. Wenn der Anhang keine öffentliche Datei ist, müssen Sie ein Objekt message.attachment.header übergeben, das die Autorisierungsinformationen enthält, damit auf den Anhang zugegriffen werden kann. Sie müssen auch sicherstellen, dass die URL-Domäne in den vertrauenswürdigen Domänen in sys_cs_providervorhanden ist. Datentyp: Zeichenfolge |
| message.clientMessageId | Eindeutiger alphanumerischer Bezeichner für die Nachricht. Das Format dieses Bezeichners wird vom Implementierer bestimmt. Datentyp: Zeichenfolge Standard: Null |
| message.text | Erforderlich, wenn der Parameter attachment nicht angegeben ist. Nachrichtentext. Die Sprache der Nachricht muss im Parameter contextVariables übergeben werden. Datentyp: Zeichenfolge Maximale Länge: Unbegrenzt |
| message.typed | Erforderlich. Kennzeichnung, die angibt, ob die Nachricht eingegeben wurde oder eine Optionsauswahl war (ausgewählt). Gültige Werte:
Datentyp: Boolesch |
| requestId | Erforderlich. Eindeutiger alphanumerischer Bezeichner für diese Anforderung. Das Format dieses Bezeichners wird vom Implementierer bestimmt. Datentyp: Zeichenfolge |
| stilleNachricht | Kennzeichnung, die angibt, ob es sich um eine stille Nachricht handelt. Eine stille Nachricht ist eine Nachricht, die keine Antwort erfordert. Gültige Werte:
Hinweis: Wenn eine Anforderung mit stilleMessage = wahr gesendet wird, bleiben alle nachfolgenden Bot-Nachrichten unterdrückt, bis eine Anforderung zum Deaktivieren des unbeaufsichtigten Modus durch Übergabe von stilleMessage = falschgesendet wird.Datentyp: Boolesch Standardwert: false |
| timestamp | Unix-Epoch-Zeit, zu der die Nachricht vom Endanwender des Chat-Clients gesendet wurde. Datentyp: Zahl Einheit: Millisekunden Standard: Aktuelle Uhrzeit |
| Feld | GMT-Zeitzone des Endanwenders des Chat-Clients. Beispiel: Eine Liste der verfügbaren Zeitzonenwerte finden Sie unter https://en.wikipedia.org/wiki/List_of_tz_database_time_zones. Datentyp: Zeichenfolge Standard: GMT-Zeitzone der Instanz ServiceNow. |
| Thema | Erforderlich, wenn der Benutzer durch Angabe eines Themennamens zu einem bestimmten Thema wechseln möchte. Name-Wert-Paar des Themas, zu dem gewechselt werden soll. Sie können entweder den Themennamen oder die sys_id des Themas angeben. Hinweis: Sie können nur einen einzelnen Themennamen oder eine einzelne Themen-ID im Objekt angeben. Datentyp: Objekt Beispiel: |
| topic.name | Name des Themas, zu dem gewechselt werden soll. Befindet sich im Namensfeld der Tabelle „Virtual Agent-Themen“ [sys_cs_topic]. Datentyp: Zeichenfolge |
| topic.id | Sys_id des Themas, zu dem gewechselt werden soll. Befindet sich im Feld sys_id der Tabelle „Virtual Agent-Themen“ [sys_cs_topic]. Datentyp: Zeichenfolge |
| userId | Erforderlich. Eindeutiger Benutzerbezeichner. Dies ist der Bezeichner des Endanwenders, der mit dem Bot interagiert. Datentyp: Zeichenfolge |
Header
Die folgenden Anforderungs- und Antwortkopfzeilen gelten nur für diese HTTP-Aktion oder für diese Aktion auf eine bestimmte Weise. Eine Liste der allgemeinen Header, die in der REST API verwendet werden, finden Sie unter Unterstützte REST API-Header.
| Kopfzeile | Beschreibung |
|---|---|
| Akzeptieren | Datenformat des Antworttexts. Unterstützt nur application/json. |
| Content-Type | Datenformat des Anforderungstexts. Unterstützt nur application/json. |
| Token | Erforderlich, wenn tokenbasierte Authentifizierung verwendet wird. optional für Standard- oder OAuth-Authentifizierung. Zu verwendendes Authentifizierungstoken, wenn die Tokenauthentifizierung für diesen Endpunkt eingerichtet wurde. Datentyp: Zeichenfolge |
| Kopfzeile | Beschreibung |
|---|---|
| Keine |
Statuscodes
Die folgenden Statuscodes gelten für diese HTTP-Aktion. Eine Liste der möglichen Statuscodes, die in der REST API verwendet werden, finden Sie unter HTTP-Antwortcodesder REST-API.
| Statuscode | Beschreibung |
|---|---|
| 200 | Erfolgreich. Die Anforderung wurde erfolgreich verarbeitet. Wenn Sie den Statuscode 200 erhalten, aber keine Antwort erhalten, überprüfen Sie Folgendes:
|
| 400 | Fehlerhafte Anforderung. Ein fehlerhafter Anforderungstyp oder eine falsch formatierte Anforderung wurde erkannt. |
| 401 | Nicht autorisiert. Die Anmeldeinformationen sind falsch oder wurden nicht übergeben. |
| 405 | Ungültige Methode. Die Funktion ist deaktiviert. |
| 500 | Interner Serverfehler. Beim Verarbeiten der Anforderung ist ein unerwarteter Fehler aufgetreten. Der Antworttext enthält Informationen zum Fehler. |
Parameter des Antwort-Haupttexts
Status des Endpunktaufrufs. Dies wird als Antwort gesendet, wenn die erste Anrufanforderung empfangen wird. Die Anforderung wurde noch nicht verarbeitet.
| Name | Beschreibung |
|---|---|
| Fehler | Beschreibung des erkannten Fehlers. Wird nur zurückgegeben, wenn ein Fehler auftritt. Datentyp: Objekt |
| Fehler.detail | Details zum aufgetretenen Fehler. Datentyp: Zeichenfolge |
| Fehlernachricht | Fehlermeldung ausgegeben. Datentyp: Zeichenfolge |
| status | Status des Endpunktaufrufs. Gültige Werte:
Datentyp: Zeichenfolge |
Parameter des VA-Antworttexts
Antworttext, der vom VA an den konfigurierten Antwortendpunkt gesendet wird.
| Name | Beschreibung |
|---|---|
| agentChat | Kennzeichnung, die angibt, ob die Konversation mit ServiceNow Service Desk-Mitarbeiterverbunden ist. Mögliche Werte:
Datentyp: Boolesch |
| body | Liste von Objekten, die die Elemente des Antwortnachrichtentexts beschreiben. Datentyp: Array |
| „body.actionType“ | Typ der Aktionsnachricht, die vom sekundären Bot an den primären Bot gesendet wird. Beispiel: Eingabeindikator oder Wartezeit des Service Desk-Mitarbeiters. Gültige Werte:
Beispiel: Datentyp: Zeichenfolge |
| „body.agentInfo“ | Name und Avatar des zugehörigen Service Desk-Mitarbeiters, sofern im Setup des Mitarbeiterchats aktiviert Datentyp: Objekt Beispiel: |
| „body.agentInfo.agentAvatar“ | URL der Avatar-Datei, die dem Service Desk-Mitarbeiter zugeordnet ist. Beispiel: „https://instance.servicenow.com/ee4eebf30a0004d963b5c5ac0d734dc4.iix?t=small“ Datentyp: Zeichenfolge |
| „body.agentInfo.agentName“ | Anzeigename des Service Desk-Mitarbeiters. Datentyp: Zeichenfolge |
| „body.agentInfo.sentFromAgent“ | Kennzeichnung, die angibt, ob die Nachricht von einem Servicemitarbeiter gesendet wurde. Mögliche Werte:
Datentyp: Boolesch |
| „body.data“ | JSON-Zeichenfolge, die die Daten auf der Karte definiert. Datentyp: Zeichenfolge |
| „body.group“ | Rich-Kontrollgruppe, zu der das Textelement gehört. Sie können diese Standardsteuerelemente weiter transformieren, indem Sie ausgehende Transformationsskripts schreiben. Weitere Informationen zu diesen Skripts finden Sie unter Virtual Agent-Aktionsskripts. Mögliche Werte:
Datentyp: Zeichenfolge |
| text.header | Linkheader. Datentyp: Zeichenfolge |
| „body.height“ | Höhe des HTML-Elements. Datentyp: Zahl Einheit: Pixel |
| „body.itemType“ | Typ des Textelements. Mögliche Werte: (Groß-/Kleinschreibung beachten)
Datentyp: Zeichenfolge |
| „body.label“ | Bezeichnung, die für das zugeordnete Element angezeigt werden soll. Datentyp: Zeichenfolge |
| „body.maskType“ | Gibt die Vertraulichkeit der zugeordneten Daten an. Mögliche Werte:
Datentyp: Zeichenfolge |
| Körper.maxAnzahl | Wird nur zurückgegeben, wenn uiTypeden Wert FileUpload aufweist. Maximale Anzahl an Anhängen, die gleichzeitig hochgeladen werden können.Datentyp: Zahl (Ganzzahl) |
| Körper.maxGröße | Wird nur zurückgegeben, wenn uiTypeden Wert FileUpload aufweist. Maximale Größe des Anhangs, die hochgeladen werden kann.Datentyp: Zahl (Ganzzahl) Einheit: Megabyte |
| „text.message“. | Wird nur zurückgegeben, wenn actionTypeStartSpinnerist. Nachricht, die dem Anwender angezeigt werden soll.Datentyp: Zeichenfolge |
| „body.multiSelect“ | Kennzeichnung, die angibt, ob der Anwender mehrere Optionen auswählen kann. Mögliche Werte:
Datentyp: Boolesch |
| „body.nluTextEnabled“ | Kennzeichnung, die angibt, ob der Anwenderchat-Client NLU-Textnachrichten (Natural Language Understanding) empfangen kann. Mögliche Werte:
Datentyp: Boolesch |
| „text.options“ | Liste von Objekten, die die für ein Auswahlsteuerelement verfügbaren Optionen beschreiben. Datentyp: Array |
| „textkörper.optionen.anhang“ | URL des abzurufenden Bildes im Karussell. Datentyp: Zeichenfolge |
| „text.options.description“ | Beschreibung des Karussellelements. Datentyp: Zeichenfolge |
| „textkörper.optionen.aktiviert“. | Kennzeichnung, die angibt, ob das Auswahlsteuerelement auf dem Chat-Client des Endanwenders aktiviert ist. Bei Bot-zu-Bot-Implementierungen ist der primäre Bot dafür verantwortlich, dass das Auswahlsteuerelement deaktiviert wird. Mögliche Werte:
Datentyp: Boolesch |
| „body.options.label“ | Bezeichnung, die für den zugeordneten Parameter body.options.value angezeigt werden soll. Datentyp: Zeichenfolge |
| „body.options.renderStyle“ | Beim Rendern des zugeordneten Elements zu verwendender Stil. Möglicher Wert: Daten Datentyp: Zeichenfolge |
| „text.options.value“ | Wert, der für den zugeordneten Parameter body.options.label angezeigt werden soll. Datentyp: Zeichenfolge |
| „body.promptMsg“ | Aufforderungsnachricht, die mit dem Auswahlsteuerelement angezeigt werden soll. Datentyp: Zeichenfolge |
| Textkörper.erforderlich | Kennzeichnung, die angibt, ob der Endanwender auf die Abfrage im Textelement antworten muss. Mögliche Werte:
Datentyp: Boolesch |
| „body.spinnerType“ | Wird nur zurückgegeben, wenn actionTypeStartSpinnerist. Typ des dem Chat-Anwender angezeigten Ladekreisels.Mögliche Werte: wait_time: Nachricht, die die Verzögerung angibt, bevor sie an einen Servicemitarbeiter übertragen wird. Datentyp: Zeichenfolge |
| „body.style“ | Stil des Textkörperelements. Mögliche Werte:
Datentyp: Zeichenfolge |
| „body.templateName“ | Name der Vorlage, die zum Anzeigen der zugehörigen Karte verwendet werden soll. Datentyp: Zeichenfolge |
| Korpus.Typ | Wird nur für DefaultOutputLink zurückgegeben. Typ der Rückgabedaten. Mögliche Werte: Link Datentyp: Zeichenfolge |
| „body.uiType“ | Typ des Textelements. Die möglichen Werte hängen vom Wert im Parameter body.group ab. Diese Werte sind den im Virtual Agent-Designer definierten Steuerungen zugeordnet. Weitere Informationen finden Sie unter Erste Schritte mit Virtual Agent-Designer. Mögliche Werte:
Datentyp: Zeichenfolge |
| Textkörper.Wert | Daten, die zur Verarbeitung des Textelements verwendet werden. Die Art der Informationen, die zurückgegeben werden, hängt vom Typ des Textelements ab. Ausgabelink: Objekt. Ausgabebild: Zeichenfolge. Bild-URL. AusgabeHtml: Zeichenfolge. HTML, die der Client rendern muss. Datentyp: Zeichenfolge oder Objekt |
| „textkörper.wert.aktion“ | Wird nur für DefaultOutputLink zurückgegeben. URL des zurückgegebenen Links. Datentyp: Zeichenfolge |
| „text.wartezeit“ | Zeit, die der Benutzer warten muss, bevor er mit einem Servicemitarbeiter verbunden wird. Datentyp: Zeichenfolge |
| Korpus.Breite | Breite des zugeordneten HTML-Elements. Datentyp: Zahl Einheit: Pixel |
| clientSessionId | Eindeutiger Client-Sitzungsbezeichner der Chat-Anwendung/des Chat-Services, die/der der Endanwender für die Kommunikation mit dem ServiceNow -Bot verwendet Datentyp: Zeichenfolge |
| clientVariables | JSON-formatierte Name/Wert-Paare, die aus dem kopiert werden, was im Parameter clientVariables im Anforderungstext übergeben wird. Diese Werte werden nicht vom Endpunkt verarbeitet, können jedoch verwendet werden, um bestimmte Kundeninformationen als Anhang an die Konversation anzuhängen. Datentyp: Objekt |
| abgeschlossen | Kennzeichnung, die angibt, ob ServiceNow Virtual Agent die Konversation erfolgreich abgeschlossen hat. Mögliche Werte:
Datentyp: Boolesch |
| EnterpriseId | Derzeit nicht verwendet. |
| Nachricht | Details der an den VA ServiceNow gesendeten Nachricht. Dies entspricht dem übergebenen Nachrichtenobjekt. Datentyp: Objekt |
| message.attachment | Details des Anhangs. Anhänge können entweder eine Datei oder eine URL sein. Datentyp: Objekt |
| message.attachment.clientAttachmentId | Eindeutiger Bezeichner des Anhangs, der an den VA ServiceNow gesendet wurde. Das Format dieses Bezeichners wird vom Implementierer bestimmt. Datentyp: Zeichenfolge |
| message.attachment.contentType | Standard-MIME-Typ des Anhangs. Mögliche Werte (Groß-/Kleinschreibung nicht relevant):
Datentyp: Zeichenfolge |
| message.attachment.fileName | Dateiname des Anhangs. Datentyp: Zeichenfolge |
| message.attachment.url | URL, unter der sich der Anhang befindet. Datentyp: Zeichenfolge |
| message.clientMessageId | Eindeutiger alphanumerischer Bezeichner für die Nachricht. Datentyp: Zeichenfolge |
| message.text | Nachrichtentext. Datentyp: Zeichenfolge Maximale Länge: Unbegrenzt |
| message.typed | Kennzeichnung, die angibt, ob die Nachricht eingegeben wurde oder eine Optionsauswahl war (ausgewählt). Gültige Werte:
Datentyp: Boolesch |
| nowBotId | Derzeit nicht verwendet. |
| nowSessionId | Derzeit nicht verwendet. |
| requestId | Eindeutiger Bezeichner für diese Anforderung. Datentyp: Zeichenfolge |
| Punktzahl | Absichtskonfidenzpunktzahl aus dem Modell ServiceNow NLU, angegeben in Prozent, z. B. 87,3 %. Diese Punktzahl ermöglicht es dem primären Bot, die Entscheidung zu treffen, ob die zugehörige Absicht basierend auf dem Konfidenzschwellenwert des Modells NLU des primären Bots angezeigt werden soll. Der Konfidenzschwellenwert des Modells ServiceNow NLU ] wird in der Instanz ServiceNow ignoriert, sodass der Konfidenzschwellenwert des Modells NLU ] des primären Bots konsistent auf alle sekundären Bots angewendet werden kann. Datentyp: Zahl |
| ÜbernehmenSteuerung | Kennzeichnung, die angibt, dass ServiceNow Virtual Agent die Kontrolle wieder an den primären Bot übergeben möchte. Gültige Werte:
Datentyp: Boolesch Standardwert: false |
| userId | Bezeichner des Endanwenders, der mit dem Bot interagiert. Datentyp: Zeichenfolge |
Starten Sie eine Konversation mit der Aktion START_CONVERSATION
Das folgende Beispiel zeigt, wie Sie mit der Aktion START_CONVERSATION eine Konversation mit Virtual Agentbeginnen. Dieser Aufruf leitet den Benutzer zum Begrüßungsthema weiter.
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"
Im Folgenden finden Sie den Antworttext, der vom VA an den konfigurierten Antwortendpunkt gesendet wird.
{
"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
}
Übertragen Sie eine Konversation mithilfe einer Äußerung an Service Desk-Mitarbeiter .
Das folgende Beispiel veranschaulicht, wie Sie eine Konversation unter Umgehung des Begrüßungsthemas an Service Desk-Mitarbeiterübertragen, indem Sie agent als Äußerung im Parameter message.text übergeben. Mögliche Äußerungswerte sind in der Tabelle „sys_cs_contextual_action“ definiert. Weitere Informationen zu kontextbezogenen Aktionen finden Sie unter Kontextaktionen für anwenderdefinierte Chatintegrationen.
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"
}"
Im Folgenden finden Sie den Antworttext, der vom VA an den konfigurierten Antwortendpunkt gesendet wird.
{
"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
}
Übertragen Sie eine Konversation basierend auf der Auswahl des Anwenders an den Servicemitarbeiter-Support
Das folgende Beispiel zeigt, wie die Konversation basierend auf der Auswahl des Benutzers in der vorherigen Interaktion an den Servicemitarbeiter-Support übertragen wird.
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"
} "
Im Folgenden finden Sie den Antworttext, der vom VA an den konfigurierten Antwortendpunkt gesendet wird.
{
"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
}
Beenden Sie eine Virtual Agent -Konversation, indem Sie den Aktionsparameter festlegen
Das folgende Beispiel zeigt, wie Sie eine Virtual Agent -Konversation beenden, indem Sie den Parameter action auf END_CONVERSATION festlegen.
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"
Im Folgenden finden Sie den Antworttext, der vom VA an den konfigurierten Antwortendpunkt gesendet wird und die beendete Konversation anzeigt.
{
"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
}
Beenden Sie eine Service Desk-Mitarbeiter -Konversation, indem Sie den Aktionsparameter festlegen
Das folgende Beispiel zeigt, wie Sie eine Service Desk-Mitarbeiter -Konversation beenden, indem Sie den Parameter action auf END_CONVERSATION festlegen.
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"
Im Folgenden finden Sie den Antworttext, der vom VA an den konfigurierten Antwortendpunkt gesendet wird und die beendete Konversation anzeigt.
{
"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
}
Verwenden Sie die in der Tabelle „sys_cs_contextual_action“ definierten Befehle als Äußerung, um eine Konversation mit zu beginnen Virtual Agent
Das folgende Beispiel zeigt, wie Sie den Befehl Hi, der in der Tabelle „sys_cs_contextual_action“ definiert ist, als Äußerung verwenden, um eine Konversation mit Virtual Agent zu beginnen, anstatt den Parameter action wie in den vorherigen Beispielen gezeigt auf START_CONVERSATION zu setzen. In diesem Beispiel wird eine der Sprachvarianten des Befehls Hi, „hola“, verwendet.
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"
}"
Im Folgenden finden Sie den Antworttext, der vom VA an den konfigurierten Antwortendpunkt gesendet wird.
{
"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
}
Verwenden Sie die in der Tabelle „sys_cs_contextual_action“ definierten Befehle als Äußerung, um eine Konversation zu beenden
Das folgende Beispiel zeigt, wie Sie den Befehl Bye, der in der Tabelle „sys_cs_contextual_action“ definiert ist, als Äußerung verwenden, um eine Konversation mit Virtual Agent ] zu beenden, anstatt action wie in den vorherigen Beispielen gezeigt auf END_CONVERSATION zu setzen. In diesem Beispiel wird eine der Sprachvarianten des Befehls Bye, „choa“, verwendet.
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"
}"
Im Folgenden finden Sie den Antworttext, der vom VA an den konfigurierten Antwortendpunkt gesendet wird.
{
"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
}
Ändern Sie eine laufende Konversation mit dem Aktionsparameter SWITCH
Das folgende Beispiel zeigt, wie Sie den Parameter SWITCH action verwenden, um eine laufende Konversation in ein Thema zu ändern, das den Angaben im Parameter intent.id entspricht.
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"
Im Folgenden finden Sie den Antworttext, der vom VA an den konfigurierten Antwortendpunkt gesendet wird und zeigt, wie der VA zum neuen Thema gewechselt ist.
{
"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
}
Rufen Sie eine Konfidenzpunktzahl Natural Language Understanding (NLU) für eine Äußerung ab
Das folgende Beispiel zeigt, wie eine NLU Konfidenzpunktzahl für eine Äußerung abgerufen wird, wenn NLU in VA aktiviert ist.
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"
Im Folgenden finden Sie den Antworttext, der vom VA an den konfigurierten Antwortendpunkt gesendet wird und die NLU-Konfidenzpunktzahl anzeigt.
{
"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"
}
Übertragen Sie eine Konversation an einen Servicemitarbeiter in einer bestimmten Warteschlange
Das folgende Beispiel zeigt, wie eine Konversation an einen Servicemitarbeiter in einer bestimmten Warteschlange übertragen wird. Sie müssen Ihre Warteschlangen zuerst mit bestimmten Bedingungen einrichten. Anschließend übergeben Sie diese Bedingungen im Anforderungstext als contextVariables. Weitere Informationen zum Erstellen einer Warteschlange für Arbeitselemente finden Sie unter Warteschlange für Arbeitselemente erstellen.
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"
Im Folgenden finden Sie den Antworttext, der vom VA an den konfigurierten Antwortendpunkt gesendet wird.
{
"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
}
Übertragen Sie eine öffentliche Anwendungs-/PDF-Anhangdatei
In diesem Beispiel wird gezeigt, wie ein öffentlicher Anwendungs-/PDF-Anhang übertragen wird.
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"
Im Folgenden finden Sie den Antworttext, der vom VA an den konfigurierten Antwortendpunkt gesendet wird.
{
"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
}
Übertragen Sie einen Video-/MPEG-Anhang
Dieses Beispiel zeigt die Anforderung/Antwort für das Hochladen eines Video-/MPEG-Anhangs.
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"
Im Folgenden finden Sie den Antworttext, der vom VA an den konfigurierten Antwortendpunkt gesendet wird.
{
"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
}
Übertragen Sie einen Bild-/JPEG-Anhang
Dieses Beispiel zeigt die Anforderung/Antwort zum Hochladen eines Bild-/JPEG-Anhangs.
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"
Im Folgenden finden Sie den Antworttext, der vom VA an den konfigurierten Antwortendpunkt gesendet wird.
{
"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
}