Datenmodelle

Datenmodelle

Oftmals möchte man den Chatbot eine Reihe von Fragen zu ähnlichen Objekten, wie einem Produktkatalog oder FAQs, beantworten lassen. Anstatt viele gleichartige Dialoge erstellen zu müssen, kannst Du dynamische Dialoge mit Platzhaltern erstellen, die automatisch die richtigen Daten aus deinem Datenmodell einsetzen.

Hierfür kann man über den Menüpunkt „Datenmodell“ sogenannte Entitäten erstellen. Eine Entität kannst Du Dir wie eine Tabelle mit Zeilen und Spalten vorstellen, die deine Daten enthält, wie z. B. Informationen über Reiseziele im Datenmodell unten. Interessiert sich ein/e Nutzer:in für „München“ oder „Berlin“, kann der Bot die Stadtbeschreibung, das Bild und den Link aus dem Datenmodell rauslesen.

Grundsätzlich eignen sich als Entität Gruppen von Objekten, die man sinnvoll in Tabellenform anordnen kann, weil sie einen ähnlichen Aufbau haben. Der Name der Entität ist in der Regel der Überbegriff für die enthaltenen Objekte, also z.B. Reiseziele, oder Produktkatalog. Die Attribute sind Eigenschaften der Objekte, und sind in den Spalten der Tabelle zu finden, wie z. B. Stadt, Beschreibung, Link, usw.

Zunächst musst Du überlegen, welche Entitäten (also welche Reihen von ähnlichen Objekten) für deine Zwecke sinnvoll sind und welche Attribute die Entitäten dafür benötigen. Zusätzliche Attribute kannst Du später problemlos hinzufügen und solche, die sich als wenig sinnvoll herausstellen, wieder löschen. Die Daten lassen sich komfortabel im CSV-Format importieren und exportieren.

Entitäten anlegen und bearbeiten

Lege zunächst über die Schaltfläche + Entität eine neue Entität an. Gebe der Entität einen Namen und füge die gewünschten Attribute mit +Attribute hinzu.

Nun hast Du zwei Möglichkeiten: Entweder bearbeitest Du die Entität über die Oberfläche des Chatbot-Builders weiter oder Du importierst eine geeignete Tabelle.

Klicke auf  „Entität anzeigen“ und wähle eine Zeile, um einen Eintrag im Datenmodell über die Oberfläche zu bearbeiten. In unserem Beispiel wurde eine Liste mit Reisezielen und zugehörigen Informationen hinterlegt (siehe Screenshot 1). Es dürfen einzelne Wörter, sowie Mehrwort Phrasen als Identifikatoren verwendet werden. Gerne kannst Du mehrere Identifikatoren durch Komma getrennt auflisten. Bitte beachte, dass die Identifikatoren klein geschrieben werden müssen. Ob der/die Nutzer:in dabei „München“, „münchen“ oder gar „mÜnchen“ schreibt ist übrigens nicht relevant, da Groß- und Kleinschreibung bei der Spracherkennung nicht berücksichtigt wird.

Für die Erstellung eines Dokuments zum Import empfiehlt sich Excel oder ein vergleichbares Programm. Zum Import geeignete Formate sind „Text (Tabstopp-getrennt) (*.txt)“ und CSV. Eine komfortable Bearbeitung ist in einem Tabellenverarbeitungsprogramm wie Excel möglich.

Am besten exportierst Du Dir die im Chatbot Builder erstellte Entität, um sie im richtigen Format (UTF-8) in Excel weiter bearbeiten zu können. Anschließend kannst Du sie wieder importieren und die bestehenden Daten überschreiben. Dieses Vorgehen bietet sich insbesondere an, wenn sich deine Daten häufig ändern.
Als Dateiname verwendest Du den Namen der Entität; die Zeilen und Spalten entsprechen dem Aufbau, den Du im obigen Beispiel zur Bearbeitung von Entitäten über die Oberfläche sehen kannst.

Mit einem Klick auf das Mülleimersymbol kannst Du eine Entität schnell und einfach wieder löschen.

Entitäten im Dialog nutzen

Ein Datenmodell lässt sich auf zwei Wegen in einen Dialog einbinden. Entweder über den direkten Zugriff auf die Entität oder über eine Variable vom Typ Entität.

Beim direkten Zugriff musst Du als Nutzerfrage den Namen der Entität zwischen zwei Prozentzeichen als Platzhalter eingeben, also z. B. %Reiseziele%. Der Chatbot erkennt dann automatisch den Identifikator aus dem Datenmodell als Nutzerfrage und gibt bei einem Match die entsprechende Antwort aus.

Auf der anderen Seite musst Du bei der Bot-Antwort den Namen der Spalte (Attribut) aus welcher die Antwort entnommen werden soll (durch einen Punkt verknüpft) an den Namen der Entität anhängen, also z.B. %Reiseziele.stadt% oder %Reiseziele.beschreibung%.

In unserem Beispiel haben wir ein Thema „Reiseziele“ angelegt, in welchem sich der Dialog mit dem Datenmodell befindet. Schreibt der User „hi“, so wird er/sie vom Bot begrüßt und wird ins Thema Reiseziele führt. Der/Die Nutzer:in kann nun Informationen über München und Berlin anfordern.

So sieht die Kommunikation mit dem Bot in einem Messenger aus:

Beziehen sich mehrere Dialoge auf dieselbe Entität, muss der/die Nutzer:in immer wieder einen entsprechenden Identifikator eingeben. In diesem Fall kann es daher sinnvoll sein, eine Variable vom Typ Entität einzusetzen – so kann der Bot sich merken, für welchen Datenmodelleintrag der User sich interessiert und diese Information im Dialogverlauf an verschiedenen stellen nutzen.

Variablen mit dem Datenmodell verknüpfen

Wenn Du ein Variable mit dem Typ Entität definierst, nimmt diese Variable die Struktur und Eigenschaften des entsprechenden Datenmodells an. Im Dialog wird die Entität mit dem Namen der Variable zwischen zwei Dollarzeichen $ angesprochen. Auch die einzelnen Attribute der Entität werden auf diese Weise abgerufen, also $Namedervariable.Attribut$.

Die Variable nimmt die Funktion des Identifikators ein, d.h. ihr möglicher Wert wird über die angelegten Identifikatoren im Datenmodell definiert. Durch das dauerhafte Speichern des Variablen-Wertes können über mehrere Dialoge hinweg die einzelnen Attribute eines identifizierten Objekts, also einer Zeile abgerufen werden. Um den Wert strukturiert definieren und ggf. wieder löschen zu können, empfiehlt es sich, zusätzlich mit Themen zu arbeiten. Im folgenden Beispiel sollen die Funktionen näher erläutert werden.

In diesem Beispiel sollen Kund:innen über ein Kundenportal bestimmte Informationen abrufen können. Es wird zuerst das Thema „Kundenportal“ sowie im Datenmodell die Entität „Kunde“ angelegt.

Danach wird die Variable „KundenID“ vom Typ Entität mit dem Wert „Kunde“ angelegt. Die Variable KundenID soll im Nutzerprofil dauerhaft gespeichert werden.

Die Identifikatoren des Datenmodells Kunde geben die möglichen Kunden-IDs vor. Diese können z.B. über einen einleitenden Dialog im Default-Thema abgefragt werden. Wurde ein Wert erkannt, wird dieser zunächst automatisch gespeichert und weiter zum Thema Kundenportal geleitet, wo sich die nachfolgenden Dialoge immer auf dieselbe Kunden-ID beziehen.

Der/Die Kund:in kann zur selben ID mehrere Informationen abrufen, ohne diese ständig erneut eingeben zu müssen.

Wird das Thema verlassen, kann der Wert der Variablen mit $clear_KundenID$ wieder gelöscht werden, um den Speicher der Variablen zu leeren. Für eine erneute Info-Abfrage muss erneut eine Kunden-ID eingegeben werden.

In der Vorschau kann das Ergebnis getestet werden:

 Attribut in die Variable speichern

Es ist möglich, das Attribut aus dem Datenmodel in eine Variable zu speichern. Beispielsweise ist es sinnvoll, um anhand von gesetzten Attributen eine Zielgruppe für den Nachrichtenversand zu bilden. In unserem Beispiel wollen wir nun das Attribut Produkttyp in eine Variable speichern, um später zwei Zielgruppen zu formen: Kunden mit Business-Paket und Kunden mit Enterprise-Paket. Dafür wird der Wert des Attributes $KundenID.Produkt$ in die Variable $gebuchtesprodukt$ gespeichert ($gebuchtesprodukt=$KundenID.Produkt$$ ).

Attribute in Variablen speichern
​Medien im Datenmodell nutzen

Neben einfachem Text ist es auch möglich Medien wie Bilder/Grafiken oder Videos im Datenmodell zu nutzen.

Hinterlege dazu im Deinem Datenmodell Links zu Deinen Medien. In unserem Beispiel beinhaltet das Datenmodell „Tiere“ ein Attribute „Img“, dass die Links zu Bilder enthält.

Dann verknüpfen wir das Datenmodell mit einer Variable. Wir legen eine Variable „tiere“ vom Typ Entität an, die mit der Entität „Tiere“ verknüpft ist.

Anschließend können wir die Variable in einem Dialog nutzen. Bei der Bot-Antwort muss man zunächst den Tab für die Bilder auswählen, anschließend kann man dort, anstatt auf den Upload Button, auf das kleine Stiftsymbol zur Bearbeitung klicken.

Nun hat man die Möglichkeit hier in der bekannten Syntax mit dem Dollarsymbol die Variable samt der Spalte für die Bilder einzutragen: $tiere.Img$

Schon ist das Setup fertig und kann bspw. in WhatsApp genutzt werden: