TDD-Vorlage

Technische Designdokumente (TDD) beschreiben die Details eines Systems. Sie sind ein wichtiger Bestandteil bei der Planung Ihrer benutzerdefinierten Integration eines virtuellen Agenten. Diese Seite bietet einen Leitfaden für die Erstellung eines TDD für Ihre benutzerdefinierte Integration eines virtuellen Agenten.

Jeder Abschnitt in dieser TDD-Vorlage enthält Beispiele oder zusätzliche Informationen über den vorgesehenen Inhalt des jeweiligen Abschnitts. Die Beispiele beziehen sich auf die Beispielintegration eines textbasierten virtuellen Agenten, sofern möglich.

Verwenden Sie diese TDD-Anleitung und die Beispielintegration als Basis bei der Planung Ihrer eigenen benutzerdefinierten Integration. Das TDD und der Beispiel-Proxytunnel sind jedoch nur als Beispiele gedacht und daher nicht für eine bestimmte Umgebung konzipiert. Bei der Erstellung des TDD und des Proxytunnels müssen Sie die spezifische Netzwerkarchitektur und andere Anforderungen Ihres Unternehmens berücksichtigen. Möglicherweise müssen Sie für Ihre Umgebung Abschnitte hinzufügen oder entfernen.

Übersicht

In diesem technischen Designdokument wird die benutzerdefinierte Integration des [Ihr virtueller Agent] mit NICE CXone beschrieben. Die Integration umfasst die folgenden Komponenten, die in diesem Dokument beschrieben werden müssen:

  • Architektur, einschließlich der Proxytunnel-/Gateway-Middleware.
  • CXone-Konfigurationsanforderungen, darunter Kompetenzen, Kontaktstellen und Kanäle.
  • Virtueller Agenten-Hub und der Endpunkt für benutzerdefinierte Integrationen virtueller Agenten (Custom Exchange Endpoint).
  • Studio-Skripte, einschließlich Snippet-Code.
  • Authentifizierungsanforderungen.
  • Konfiguration des virtuellen Agenten, Endpunkte und Details zum Ursprung der Nachrichten.
  • JSON-Schemata für Rich-Media-Inhalte von Digital Experience.
  • Zuordnung der Anfrage- und Antwort-Schemata.
  • [weitere Komponenten für Ihre spezielle Architektur und Integration].

Übersicht über die Architektur

Aufgabe: Erstellen Sie ein Übersichtsdiagramm für Ihre Integration. Nehmen Sie alle Komponenten Ihrer Umgebung auf, die an der Verarbeitung einer Interaktion beteiligt sind. Dazu zählen der Proxytunnel, der virtuelle Agent, ein Autorisierungsserver und so weiter. Erstellen Sie auch eine allgemeine Beschreibung. Erstellen Sie zusätzliche Diagramme, wenn bestimmte Teile detailgenauer dargestellt werden müssen.

Beispiel

Dies ist eine Beispielintegration eines textbasierten virtuellen Agenten auf einem ACD-Chatkanal. Da es sich um ein Beispiel handelt, unterscheiden sich manche Komponenten von einer echten Integration:

Es handelt sich hierbei um eine einfache Integration, für die keine Autorisierung erforderlich ist.

CXone-Konfiguration

Aufgabe: Erstellen Sie eine Liste der KanäleGeschlossen Eine Möglichkeit für Kontakte, mit Agenten oder Bots zu interagieren. Kanäle sind zum Beispiel Sprache, E-Mail, Chat, Social Media usw., KompetenzenGeschlossen Wird verwendet, um die Bereitstellung von Interaktionen basierend auf den Kompetenzen, Fertigkeiten und Kenntnissen der Agenten zu automatisieren, KontaktstellenGeschlossen Der Eintrittspunkt, den ein eingehender Kontakt verwendet, um eine Interaktion zu initiieren, wie z. B. Telefonnummer oder E-Mail-Adresse., Kampagnen und anderer relevanter CXone-Konfigurationseinstellungen. Wenn Ihre Integration einen Digital Experience (Digital)-Kanal verwendet, schließen Sie den Digital Experience -Kanal und die erforderlichen digitalen Skills oder Routing-WarteschlangenGeschlossen Das System verwendet Routing-Warteschlangen, um zu bestimmen, an welche Agenten Fälle weitergeleitet werden sollen. Ihr Systemadministrator erstellt Routing-Warteschlangen, so dass bestimmte Fälle an Agenten mit Fachwissen über diese Art von Fällen weitergeleitet werden. ein. Weitere Informationen finden Sie auf der Seite "Ressourcen" unter CXone-Konfigurationsanforderungen.

Beispiel

  • KanalACD-Chat.
  • Skill: Chat-Skill namens IBChat_CEESample.
  • Kontaktstelle: Chat-Kontaktstelle namens IBChat_CEESample.
  • Kampagne: CEESample.

Kanalanforderungen

Da es sich um eine Beispielintegration handelt, ist kein Chatprofil erforderlich. Bei einer echten Integration würden Sie in diesem Abschnitt die Anforderungen für das Chatprofil angeben. Das Chatprofil definiert, wie das Chatfenster aussieht. Dieser Abschnitt würde auch die Seiten der Website enthalten, auf denen sich die Chatblase befindet, sowie ähnliche Anforderungen.

Virtueller Agenten-Hub-Konfiguration

Aufgabe: Geben Sie die Webhook-URL für Ihren virtuellen Agenten sowie die Parameter an, die mit Anfragen gesendet werden müssen. Wenn Sie eine andere Zeitüberschreitung benötigen, fügen Sie sie in diesem Abschnitt hinzu. Der vollständige Konfigurationsvorgang für den Custom Exchange Endpoint in Virtueller Agenten-Hub wird auf der Seite "Implementierung" beschrieben.

Beispiel

  • Webhook-URLhttps://https://4db3-5-46-62-207.nrgok.io/proxy/performbotexchange
  • Endpunktparameter: Nicht erforderlich
  • Benutzerdefinierte Kopfzeilen (nur Integration-Version 2.0.0 und 3.0.0): Nicht erforderlich
  • Zeitüberschreitung: Keine Änderung erforderlich
  • Autorisierungskopfzeile: Nicht erforderlich
  • OAuth-Konfiguration: Nicht erforderlich
    • OAuth URL: Nicht zutreffend
    • OAuth-Anfrageparameter: Nicht zutreffend
    • OAuth-Kopfzeilen: Nicht zutreffend

Bei Integration-Version 1.0.0 muss die dynamische Authentifizierung im Skript konfiguriert werden, nicht in Virtueller Agenten-Hub.

Studio-Skripte

Aufgabe: Fügen Sie Screenshots mit Erläuterungen der Skripte hinzu, die Sie für Ihre benutzerdefinierte Integration eines virtuellen Agenten entwickeln. Fügen Sie nach Bedarf Beschreibungen für Variablen, Snippet-Code und andere Details hinzu. Weitere Informationen finden Sie in den Richtlinien und Anforderungen für Skripte.

Beispiel für ein Chatskript

Dies ist dasselbe Skript, das in der Beispielintegration verwendet wurde. Sie können es als Grundlage für Ihr eigenes Skript verwenden. Beispielskripte stehen auch für sprachbasierte und digitale virtuelle Agenten zur Verfügung.

Laden Sie dieses Skript herunter.

Dieses Skript beginnt mit einer Snippet-Aktion, die mehrere dynamische Datenobjekte erstellt, die für die Integration eines virtuellen Agenten erforderlich sind:

  • intentInfo
  • nextPromptSequence
  • nextPromptBehaviors
  • customPayload
  • botSessionState

Mit der ersten Textbot Exchange-Aktion wird die AbsichtGeschlossen Die Bedeutung oder der Zweck hinter dem, was ein Kontakt sagt/tippt; was der Kontakt mitteilen oder erreichen möchte für die Antwort des virtuellen Agenten als Begrüßungsabsicht festgelegt. Wenn der virtuelle Agent antwortet, werden die Objekte botSessionState und customPayload ausgefüllt und mit der .asjson()-Funktion in JSON konvertiert.

Die erste Textbot Exchange-Aktion hat drei Verzweigungen:

  • Error: Die Fehlerverzweigung verarbeitet den Fehler und antwortet dem Kontakt mit einer passenden Nachricht.
  • Return Control to Script: Diese Verzweigung wird verwendet, wenn der virtuelle Agent signalisiert, dass das Gespräch beendet ist oder dass der Kontakt an einen Live-Agenten weitergeleitet werden muss.
  • Prompt and Collect Next Response: Mit dieser Verzweigung wird das Gespräch fortgesetzt wie unten beschrieben.

Das Skript übergibt die vom virtuellen Agenten erhaltenen Daten in den Objekten botsessionState, customPayloadFromBot, intentInfo und nextPrompt. Die Askcaller-Aktion gibt die Antwort des virtuellen Agenten an den Kontakt weiter (nextPrompt). Diese Aktion hat vier Verzweigungen:

  • Error
  • Return Control to Script
  • Caller Responded
  • Default

Alle Verzweigungen gehen zur zweiten Textbot Exchange-Aktion über, die entsprechende Informationen an den virtuellen Agenten sendet, darunter auch die nächste Anfrage des Kontakts in der RES-Variablen. Diese Textbot Exchange hat dieselben Verzweigungen wie die erste Instanz der Aktion im Skript.

Autorisierung für den Dienstendpunkt

Aufgabe: Bestimmen Sie die Autorisierungsanforderungen für den Dienst Ihres virtuellen Agenten. Wenn eine Autorisierung erforderlich ist, füllen Sie diesen Abschnitt des TDD aus. Erstellen Sie ein Diagramm, das die Autorisierungsanforderungen für Ihre Umgebung darstellt. Geben Sie dabei genau an, was für die Autorisierungsanforderungen erforderlich ist. Dazu können folgende Angaben gehören:

  • Typ der Autorisierung (Kopfzeilen oder Tokens).
  • Die Schlüssel-/Wert-Paare für alle erforderlichen Kopfzeilen. Wenn Sie Custom Exchange-Version 1.0.0 verwenden, benötigen Sie nur den Wert für die Kopfzeile.
  • Konfigurationsanforderungen für den Dienst des virtuellen Agenten, wenn Sie Kopfzeilen verwenden, oder den Autorisierungsserver, wenn Sie Tokens verwenden.
  • Die URL des Autorisierungsservers, wenn Sie Tokens verwenden.
  • Schlüssel-/Wert-Paare für den Text und die Kopfzeilen der OAuth-Anforderung.
  • Wenn Sie andere OAuth-Einstellungen anpassen möchten, geben Sie diese Änderungen an. Sie können den Namen der Kopfzeile, das Präfix des Kopfzeilenwerts und das Ablaufdatum für das Token ändern.

Weitere Informationen finden Sie auf der Seite "Ressourcen" im Abschnitt "Autorisierung".

Beispiel für nicht autorisierte (öffentliche) Dienstendpunkte

Für diese Beispielintegration ist keine Autorisierung erforderlich. Das folgende Beispieldiagramm zeigt, wie ein öffentlicher Dienstendpunkt aussehen könnte.

In diesem Beispiel ist Virtueller Agenten-Hub der Ursprung der Anfrage. Sie interagiert zunächst mit dem API-Gateway und dann mit dem Dienst des virtuellen Agenten.

Beispiel für autorisierte Dienstendpunkte

Wenn der Dienst eines virtuellen Agenten für den Empfang von Anfragen eine Autorisierung erfordert, müssen Sie mit jeder Anfrage Autorisierungskopfzeilen senden. Sie können auch die dynamische Authentifizierung verwenden. Dafür ist ein Autorisierungsserver (Token-Anbieter) erforderlich. Die Architektur für eine Integration mit Kopfzeilen ähnelt der Architektur für das Beispiel eines öffentlichen Dienstendpunkts aus dem vorherigen Abschnitt. Das folgende Diagramm zeigt ein Beispiel für die Implementierung einer dynamischen Authentifizierung.

In diesem Beispiel wird am Anfang des Skripts eine REST-Anforderung an den Autorisierungsserver gesendet, der ein Token bereitstellt. Das Token wird an den Custom Exchange Endpoint gesendet. Solange das Token gültig ist, können Anfragen an den Dienst des virtuellen Agenten gesendet werden.

Proxytunnel

Aufgabe: Bestimmen Sie die Details für Ihren Proxytunnel, wie zum Beispiel:

  • Wie Ihr Proxytunnel gehostet wird.
  • Die Sprache, mit der der Proxytunnel entwickelt wird, und alle erforderlichen Anwendungen, Abhängigkeiten, SDKs, Erweiterungspakete usw.
  • Eine Failover-Strategie für den Proxytunnel.

Beispiel

Proxytunnel-Hosting

Der Beispiel-Proxytunnel wird auf dem lokalen Computer der Person gehostet, die die Beispielintegration des textbasierten virtuellen Agenten einrichtet.

Sprache

Der Proxytunnel wird in C# entwickelt. Er erfordert den VS Code-Editor und ein .NET-SDK.

Failover-Strategie

Da es sich um eine Beispielintegration handelt, ist keine Failover-Strategie erforderlich.

Anwendungsfall für einen virtuellen Agenten – Zuordnung zwischen Proxy und Endpunkt des virtuellen Agenten

Anleitungen: Erstellen Sie ein detailliertes Ablaufdiagramm, das die Anfragen und Antworten an jedem Punkt während einer Interaktion zeigt. Dokumentieren Sie die Anfrage- und Antwort-Schemata für CXone und den Dienst des virtuellen Agenten, die für Ihre benutzerdefinierte Integration erforderlich sind. Das Beispiel in diesem Abschnitt zeigt nur Schemata für CXone. Weitere Informationen finden Sie auf der Seite "Ressourcen" im Abschnitt "Proxytunnel" und im Abschnitt "Ablaufdiagramme".

Beispiel

Das Ablaufdiagramm und alle folgenden Informationen sind ein Beispiel auf Basis von Swagger, das zum Zeitpunkt der Veröffentlichung verfügbar ist. Verwenden Sie immer die Schemata, die in der öffentlichen verfügbaren Swagger-Dokumentation Ein Quadrat mit einem von der Mitte nach außen weisenden Pfeil. für benutzerdefinierte Integrationen virtueller Agenten enthalten sind. Die Schemata für den Custom Exchange Endpoint können von Zeit zu Zeit aktualisiert werden. Auf der Seite "Ressourcen" wird beschrieben, wie sich dies auf Ihre benutzerdefinierte Integration auswirkt.

Anfrage- und Antwort-Schemata

Die Schemata für Anfragen sind auf dieser Seite als Beispiel für das Dokumentieren von Schemata enthalten. Ausführliche Erklärungen der Schemata für die benutzerdefinierte Integration eines virtuellen Agenten finden Sie auf der Seite "Schemata".

Anfrage – ExternalIntegrationBotExchangeRequest

Parameter

Art

Beschreibung

virtualAgentId String

Der Name der Custom Exchange Endpoint-Konfigurations-App in Virtueller Agenten-Hub. Der Name identifiziert den virtuellen Agenten, den die App aufruft.

botConfig Objekt Die in botConfig definierten Parameter werden in anderen Abschnitten dieses Dokuments erläutert.
userInput String Die Texteingabe des Benutzers, die von der KontaktstelleGeschlossen Der Eintrittspunkt, den ein eingehender Kontakt verwendet, um eine Interaktion zu initiieren, wie z. B. Telefonnummer oder E-Mail-Adresse. empfangen wird, der das Skript zugewiesen ist.
userInputType Enumeration Der Typ der Benutzereingabe, die vom Skript bereitgestellt wird.
executionInfo ActionExecutionInfo Telemetriedaten für die Ausführung einer AktionGeschlossen Führt einen Prozess innerhalb eines Studio-Skripts durch, wie z. B. das Erfassen von Kundendaten, Abspielen einer Nachricht oder Musik oder die Weiterleitung eines Kontakts zu einem Agenten. in einem Skript.
systemTelemetryData SystemTelemetryData Daten, die für das Debugging verwendet werden können. Enthält Informationen über die CXone-Infrastruktur.
base64wavFile String Enthält die Base 64-kodierte WAV-Datei mit der Kopfzeile der Anforderung und den Audiodaten der Benutzer-ÄußerungenGeschlossen Was ein Kontakt sagt oder tippt..
botSessionState Objekt Kann für Roundtrip-Sitzungsinformationsvariablen verwendet werden, die vom virtuellen Agenten empfangen werden.
customPayload Objekt Kann verwendet werden, um zusätzliche Variablen und Parameter aus dem Kontext des Studio-Skripts zu senden.
mediaType String Gibt den Medientyp des Skripts an, das ausgeführt wird.

Anfrage – ActionExecutionInfo

Parameter

Art

Beschreibung

contactID Ganze Zahl Die eindeutige Kennung der Interaktion
busNo Ganze Zahl Die eindeutige MandantGeschlossen Eine übergeordnete organisatorische Gruppierung, die Sie für die technische Unterstützung und Abrechnung und außerdem zur Bearbeitung von globalen Einstellungen in Ihrer CXone Umgebung einsetzen können.-Kennung.
requestId Ganze Zahl

Eine iterative Zahl, die jede Anfrage in einer bestimmten Interaktion identifiziert.

 

actionType String Der Typ der Aktion, die die Anfrage an den Custom Exchange Endpoint sendet.
actionId Ganze Zahl Die eindeutige Kennung für die AktionGeschlossen Führt einen Prozess innerhalb eines Studio-Skripts durch, wie z. B. das Erfassen von Kundendaten, Abspielen einer Nachricht oder Musik oder die Weiterleitung eines Kontakts zu einem Agenten. im Skript. Die Aktion-IDs basieren auf der Reihenfolge, in der die Aktionen dem Skript hinzugefügt wurden.
scriptName String Der Name des Skripts.

Anfrage – SystemTelemetryData

Parameter

Art

Beschreibung

consumerProccessHost String Der Hostname der Anwendung, die die API aufruft.
consumerProcessName String Der Prozess- oder Anwendungsname des API-Aufrufers. Zum Beispiel: EsnMediaServer.exe.
consumerProcessVersion String Versionsinformationen über die Anwendung, die die API aufruft.
inContactClusterAlias String Geben Sie den NICE CXone-Cluster-Alias an, sofern zutreffend und verfügbar, wie beispielsweise C7 oder M33.
inContactScriptEngineHost String Geben Sie den Hostnamen des NICE CXone-Skriptmoduls an, sofern zutreffend und verfügbar, wie beispielsweise lax-c4cor01 oder aoa-c32cor01.
consumerMetaData Objekt Beliebige und erweiterbare Daten über den API-Consumer.

Rich-Media-Inhalt für Digitale Kanäle

Wenn Sie eine benutzerdefinierte Integration eines virtuellen Agenten für einen Digital Experience (Digital)-Kanal einrichten, können Sie wahlweise festlegen, dass Rich-Media-Inhalte in Nachrichten unterstützt werden. Rich-Media-Inhalte sind beispielsweise Bilder und Steuerelemente für die Zeitauswahl oder die Listenauswahl

Aufgabe: Konfigurieren Sie ein digitales Skript zum Senden von Rich-Media-Inhalten. Bestimmen Sie, welche Rich-Media-Inhalte unterstützt werden sollen, und fügen Sie die Schemata für den Inhalt in diesem Abschnitt des TDD hinzu.

Beispiel

Diese Beispielintegration verwendet keinen Digital Experience-Kanal. Im Folgenden sehen Sie jedoch ein Beispiel für ein JSON-Schema für Schnellantworten über einen digital-Chatkanal:

"messageContent": {
"type": "PLUGIN",
"payload": {
	"elements": [
	 {
		"id": "Ukm0hRAiA",
		"type": "QUICK_REPLIES",
		"elements": [
				{
					"id": "Akm0hRAiX",
					"type": "TEXT",
					"text": "This is some text"
				},
				{
					"id": "Nkm0hRAiE",
					"type": "BUTTON",
					"text": "Button 1",
					"postback": "click-on-button-1"
				},
				{
				
					"id": "TkGJ6CAiN",
					"type": "BUTTON",
					"text": "Button 2",
					"postback": "click-on-button-2"
				},
				{
					"id": "EyCyTRCi4",
					"type": "BUTTON",
					"text": "Button 3",
					"postback": "click-on-button-3"
				}
			 ]
			}
		]
 	}
}