Virtual Agent Skripts
Verwenden Sie ServiceNow® Virtual Agent -Skriptmethoden und -variablen, um Chatskripts wie Antwort-, Auslöser- und Flow-Skripts zu schreiben. Variablen können auch Kontext für Ihre Live-Support-Themen und -Konversationen bereitstellen.
Virtual Agent-Skripts können Kontext für Themen bieten, sie können z. B. Informationen über einen Benutzer beziehen oder eine Benutzereingabe abrufen. Sie können diese Informationen verwenden, um eine Konversation zu personalisieren, z. B. um eine geskriptete Begrüßung oder Bestätigung anzuzeigen. Skripts können auch bestimmte Aktionen festlegen, die für Informationen ausgeführt werden sollen, die während einer Konversation abgerufen wurden. Diese Aktionen können zum Erstellen oder Aktualisieren von ServiceNow -Datensätzen verwendet werden.
Skripts werden auf dem Server in dem Bereich ausgeführt, in dem ein Thema definiert ist. Es gelten alle Schutzmaßnahmen des Umfangs. Wenn Sie eine Konversation für eine bereichsbezogene Anwendung entwickeln, müssen Sie die bereichsbezogene API verwenden. Sie können die meisten APIs verwenden, die in Serverskripts ausgeführt werden.
Benutzereingabe und ServiceNow Datensatzvariablen
Im Virtual Agent sind die folgenden Variablen für die Verwendung in Skripts verfügbar, die Sie für ein Thema entwickeln.
- Benutzereingabevariablen
Wenn Sie einem Thema ein Eingabesteuerelement hinzufügen, erstellt das System automatisch eine Variable zum Speichern der Benutzereingabe (eine Zeichenfolge, ein boolescher Wert usw.). Die Syntax lautet
vaInputs.myvar, wobeimyvarder Name ist, den Sie dem Eingabeknoten zugewiesen haben.Beispiel: Eine Texteingabeaufforderung mit dem Namen Erste Aufforderung hat eine systemdefinierte Variable namens
vaInputs.first_prompt. Leerzeichen im Namen werden durch einen Unterstrich ersetzt, und Großbuchstaben werden in Kleinbuchstaben geändert.- ServiceNow Datensatzvariablen
Wenn Sie ein Skript für ein Thema erstellen, das eine Tabelle ServiceNow abfragt, ist das zurückgegebene Datensatzobjekt (GlideRecord) automatisch für die Verwendung im Thema verfügbar. Die Variablensyntax lautet
vaInputs.myvar, wobeimyvardas Datensatzobjekt ist. Einzelheiten zum Abfragen von ServiceNow -Tabellen, um ein Datensatzobjekt zurückzugeben, finden Sie unter Tabellen im Skript abfragen.Verwenden Sie Dot-Walking in Variablen, die einen ServiceNow Datensatz enthalten, um ein bestimmtes Feld in der Tabelle anzugeben. Die Syntax lautet
vaInputs.myvar.field. Weitere Informationen zum Dot-Walking in einem Skript finden Sie unter Beispiele für Dot-Walking.- Benutzereingaben und ServiceNow Datensatzvariablen aufrufen
Verwenden Sie vaInputs- Objekte, um in Skripts auf Datensatzvariablen für ServiceNow zuzugreifen. Beispiel:
vaInputs.myvar == "expected value". Um auf Werte aus Benutzereingaben zuzugreifen, die keine Datensätze sind, verwenden SievaInputs.myvar.getValue().Folgende Methoden stehen zur Verfügung.
Tabelle : 1. vaInputs-Methoden Methode Beschreibung vaInputs.myvar == "Erwarteter Wert" Wertet aus, ob myvarmit einem erwarteten Wert übereinstimmt.Hinweis:Werte für Benutzereingabevariablen werden mithilfe von Benutzereingabesteuerelementen zugewiesen. Diese Werte können in Ihren Skripts nicht geändert werden.- Das Release Yokohama unterstützt zusätzliche Datentypen. Weitere Informationen finden Sie unter Eingabedatentypen in Virtual Agent -Themen.
- Standardmäßig ist die Benutzervariable verfügbar, und sie ist eine Referenz auf den Datensatz sys_user für den Benutzer.
vaInputs.myvar.getValue(); Gibt den Wert zurück. vaInputs.myvar.getDisplayValue(); Gibt den Anzeigewert zurück, wenn der gespeicherte Wert kein ServiceNow -Datensatz ist. Für Variablen, die ServiceNow Datensätze enthalten, gibt diese Methode den Anzeigewert zurück, wie durch das Anzeigefeld für diese Tabelle definiert.
Das folgende Beispiel zeigt die Bezeichnungs- und Auswahlwerte für eine Anwendereingabe. In diesem Fall würde
myVar.getValue()einen Wert von 10, 20 oder 30 zurückgeben, währendmyVar.getDisplayValue()Apple, Orange oder Pear zurückgeben würde.Abbildung : 1. Beispiel für eine Auswahlliste vaInputs.myvar.getDefaultValue(); Gibt den Standardwert in einer Bestätigungsnachricht zurück. vaInputs.myvar.getDefaultDisplayValue(); Gibt den Anzeigewert für den Standardwert in einer Bestätigungsnachricht zurück. vaInputs.myvar.unbindEntity(); Entfernt den Wert von Eingabevariablen, die vom Vorhersageservice NLU mit extrahierten Entitäten gefüllt wurden (löst die Bindung vom ursprünglichen Eingabewert auf). Wenn der Benutzer beispielsweise bei einer Bestätigungsaufforderung beschließt, seine Auswahl zu ändern, können Sie die Bindung des Werts der Entität an die Eingabevariable aufheben. Der Anwender wird dann erneut dazu aufgefordert, wenn er zum entsprechenden Eingabeknoten zurückkehrt.
Hinweis:NLU muss für das Thema aktiviert sein. Wählen Sie in Virtual Agent-Designerdie Registerkarte Eigenschaften aus, um NLUeinzurichten. Informationen zum Definieren von NLU -Entitäten finden Sie unter Entitäten.
Skriptvariablen
Sie können Skriptvariablen für Informationen definieren, die nicht in Tabellen ServiceNow gespeichert sind, aber zur Freigabe dieser Informationen an anderer Stelle in einem Thema verwendet werden können. Skriptvariablen ähneln Workflow-Scratchpad-Variablen, die Grundelemente wie Ganzzahlen, boolesche Werte und Zeichenfolgen speichern. Ein Zeichenfolgewert kann entweder ein statisch oder ein dynamisch geskripteter Wert sein. Verwenden Sie die Sidebar Variablen, um Skriptvariablen für ein Thema in Virtual Agent-Designerzu definieren.
Die Variablensyntax lautet vaVars.myvar, wobei myvar der Name ist, den Sie der Variable zuweisen. Beispiel: Sie können der Variablen mit vaVars.myvar = Wert; einen Wert zuweisen. Im Gegensatz zu Benutzereingabevariablen können Skriptvariablen in einem Skript Werte zugewiesen werden.
Informationen zum Definieren von Skriptvariablen in Themen finden Sie unter Definieren Sie Skriptvariablen für ein Thema.
Kontextvariablen
Kontextvariablen arbeiten in einem globalen Bereich, während Systemvariablen innerhalb des Bereichs des Themas arbeiten. Sie können Kontextvariablen in Systemparametern innerhalb der Webclient-URL verwenden. Diese Variablen können überall in der Konversation mit dem vaContext Objekt verwendet werden. Verwenden Sie diese Optionen, um mit vordefinierten Variablen Links zu Virtual Agent zu erstellen.
Der folgende Beispiellink enthält den Parameter sysparm_city=milan. Zusätzlich zum Öffnen einer Virtual Agent -Konversation erstellt die Verwendung dieses Links eine Variable namens „city“ mit dem Wert milan. Auf diese Variable kann in einem Skript mit vaContext.city zugegriffen werden.
https://<instance>.service-now.com/$sn-va-web-client-app.do?sysparm_city=milan
- Anwendung
- language
- Portal
- search_text
- short_description
Die Variablensyntax lautet „vaContext.LiveAgent_myvar“, wobei „myvar“ eine der verfügbaren Servicemitarbeiter-Kontextvariablenist. Greifen Sie mit vaContext.LiveAgent_myvar = value;auf die Variable zu. .
Um Servicemitarbeiter -Variablen in Themenskripts zu verwenden, öffnen Sie das Thema in Virtual Agent-Designer. Wählen Sie auf der Registerkarte Eigenschaften das Bleistiftsymbol neben Servicemitarbeiter-Variablen, um sie dem Thema hinzuzufügen.
Informationen zu Servicemitarbeiter-Kontextvariablen, die in Virtual Agententhalten sind, finden Sie unter Kontextvariablen des Servicemitarbeiter-Chats.
vaSystem-Methoden
- Bilder an Datensätze anhängen.
- Greifen Sie auf die Suchzeichenfolge zu, die zum Suchen des aktuellen Themas verwendet wurde.
- Verifiziert, dass ein Servicemitarbeiter für den Empfang einer Konversation verfügbar ist.
- Verbinden Sie den Benutzer mit einem Servicemitarbeiter.
| Methode | Beschreibung |
|---|---|
| vaSystem.applyLinkTemplate( Zeichenfolge sysId, Zeichenfolge tableName, Zeichenfolge actionName) | Erstellt einen externen Link, der für ein Portal spezifisch ist. |
| vaSystem.attachRecordToConversation (Zeichenfolge tableName, Zeichenfolge sysId) | Fügen Sie ServiceNow -Datensätze an die Liste „Zugehörige Aufgaben“ in einem Virtual Agent -Interaktionsdatensatz an. Diese Datensätze werden während einer Virtual Agent -Konversation aktualisiert oder erstellt. |
| vaSystem.attachToRecord(String mediaId, String tableName, String sysId) | Hängen Sie ein hochgeladenes Bild an einen ServiceNow -Datensatz an. Die -Methode verwendet die folgenden Parameter:
|
| vaSystem.connectToAgent() | Verbindet den Kunden mit einem Servicemitarbeiter Weitere Informationen zu dieser Methode finden Sie unter Virtual Agent-Konversationen an einen Live Agent übertragen. |
| vaSystem.didConnectToLiveAgent() | Gibt einen booleschen Wert (wahr oder falsch) zurück, unabhängig davon, ob die aktuelle Konversation mit einem Servicemitarbeiter verbunden wurde. |
| vaSystem.abrufenAbschlussnachricht() | Gibt eine Abschlussnachricht für eine Konversation aus der Systemeigenschaft zurück: com.glide.cs.general.closing_message. (Die Nachricht unterscheidet sich für Messaging-Apps von Drittanbietern wie Microsoft Teams und Slack). |
| vaSystem.abrufenKonversationsId() | Gibt die Konversations-ID der aktuellen Konversation zurück. |
| vaSystem.abrufenBegrüßungsnachricht() | Gibt eine Begrüßungsnachricht aus der UI-Nachricht mit dem Schlüssel zurück: Hallo, ich bin Ihr Virtual Agent. Lassen Sie mich wissen, wie ich Ihnen heute helfen kann.“ |
| vaSystem.abrufenInteraktionSysId() | Gibt die Interaktions-ID der aktuellen Konversation zurück. |
| vaSystem.getSearchText() | Gibt die letzte vom Anwender eingegebene Äußerung zurück. |
| vaSystem.abrufenThemenauswahlNachricht() | Gibt eine UI-Nachricht mit dem Schlüssel „Was ist Ihr Problem oder Ihre Anforderung?“ zurück. Oder schauen Sie sich an, womit ich helfen kann.“ (Die Nachricht unterscheidet sich für Messaging-Apps von Drittanbietern wie Microsoft Teams und Slack). Diese Methode wird von der Systemeigenschaft com.glide.cs.topic_picker_msgzurückgegeben. |
| vaSystem.abrufenTranskript () | Ruft das Transkript der Konversation ab. |
| vaSystem.isLiveAgentAvailable() | Überprüft, ob ein Servicemitarbeiter für den Empfang einer vom Bot übertragenen Konversation verfügbar ist. Um eine Konversation an einen Servicemitarbeiter zu übertragen, rufen Sie diese Methode auf, bevor Sie vaSystem.connectToAgent()verwenden. |
| vaSystem.istLiveAgentKonfiguriert() | Gibt zurück, ob der Live-Chat aktiviert ist. |
| vaSystem.alleEntitäten zurücksetzen () | Setzt alle in der Konversation protokollierten Entitäten zurück. |
| vaSystem.sendBatchedMessages() | Sendet sofort Nachrichten in der Warteschlange. |
| vaSystem.SeparatorNachricht senden () | Sendet eine Trennzeichen-Nachrichtenzeile und gibt die Abschlussnachricht von getClosingMessage()zurück. |
| vaSystem.sendSystemMessage(Zeichenfolgennachricht, boolescher Wert showAvatar) | Sendet eine Systemnachricht und gibt eine Begrüßungsnachricht von getGreetingMessage()zurück. |
| vaSystem.sendTopicPickerControl(Zeichenfolge-topicSelectionMessage, Zeichenfolgen-topicPickerButtonLabel) | Sendet ein Themenauswahl-Steuerelement mit zugehörigen Werten für die Nachricht und die Schaltflächenbezeichnung „Alles anzeigen“. |
| vaSystem.sendSkillPickerControl(skillSelectionMessage, Argumente) |
Sendet das Kompetenzauswahl-Steuerelement an den Anwender. Die
|
| vaSystem.schalterThemaNachName () | Ermöglicht dem Anwender, vom aktuellen Konversationsthema zum angegebenen Themennamen zu springen. Die X- Schaltfläche ist verfügbar, damit der Benutzer die Konversation beenden kann. Nachdem das Thema beendet ist, setzt der Benutzer das globale Thema fort. Wenn die Konversation endet, kann der Benutzer unten im Chatfenster Klicken Sie hier, um eine neue Konversation zu starten auswählen, um das Thema neu zu starten. Der optionale Parameter resumeBehavior gibt wie folgt an, wie der Konversations-Flow fortgesetzt wird:
Wenn resumeBehavior nicht angegeben ist, wird das Standardverhalten für die Instanz verwendet. |
| vaSystem.schalterThemaNachId(sysid) | Diese Methode ist die sysid von sys_cb_topicund ermöglicht es dem Anwender, vom aktuellen Konversationsthema zur angegebenen Themen-ID zu springen. Die X- Schaltfläche ist verfügbar, damit der Benutzer die Konversation beenden kann. Nachdem das Thema beendet ist, setzt der Benutzer das globale Thema fort. Wenn die Konversation endet, kann der Benutzer unten im Chatfenster Klicken Sie hier, um eine neue Konversation zu starten auswählen, um das Thema neu zu starten. Der optionale Parameter resumeBehavior gibt wie folgt an, wie der Konversations-Flow fortgesetzt wird:
Wenn resumeBehavior nicht angegeben ist, wird das Standardverhalten für die Instanz verwendet. |
| vaSystem.topicDiscovery(String searchTextOverride, Boolean KeywordImpl) | Führt eine Themen-Discovery basierend auf dem Begriff im Parameter searchTextOverride durch. Die -Methode verwendet die folgenden Parameter:
|
| Methode | Beschreibung |
|---|---|
| sn_cs.VASystemObject.getTranscriptById(<conversation sysId> ) | Ruft das Transkript für die aktuelle Virtual Agent -Konversation ab. |