# Willkommen

## Wonach suchen Sie?

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-cover data-type="files"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td></td><td><strong>Allgemein</strong></td><td><strong>Einstellungen für alle Module</strong></td><td><a href="/files/1Q1iPxExQ4iQPyB0JF9o">/files/1Q1iPxExQ4iQPyB0JF9o</a></td><td><a href="/pages/tR2GhYRf035AMNPmELtC">/pages/tR2GhYRf035AMNPmELtC</a></td></tr><tr><td></td><td><strong>Chatbot</strong></td><td><strong>Kundendialoge interaktiv führen.</strong></td><td><a href="/files/17EInsnzQ4wncQXFdSAE">/files/17EInsnzQ4wncQXFdSAE</a></td><td><a href="/pages/IfiAS9luQufbUQOXFeis">/pages/IfiAS9luQufbUQOXFeis</a></td></tr><tr><td></td><td><strong>Robot</strong></td><td><strong>Drittsysteme einfach integrieren.</strong></td><td><a href="/files/RHjEo3fsl44RSzxdoURV">/files/RHjEo3fsl44RSzxdoURV</a></td><td><a href="/pages/nE0UR2ZVTQoEknuOBGuY">/pages/nE0UR2ZVTQoEknuOBGuY</a></td></tr></tbody></table>


# Allgemein

Informationen zu Ihren Einstellungen, Projekten und Workspaces.


# Workspace, Projekte & Einstellungen


# 2-Faktor-Authentifizierung

Eine 2-Faktor-Authentifizierung kann von Projekt-Eigentümern für alle Projektmitglieder obligatorisch festgelegt werden. Alle User können aber auch nur für sich persönlich eine 2-Faktor-Authentifizierung aktivieren und in ihren Einstellungen verwalten.

## 2-Faktor-Authentifizierung für ein Projekt festlegen <a href="#id-2-faktor-authentifizierung-fur-ein-projekt-festlegen-0-0" id="id-2-faktor-authentifizierung-fur-ein-projekt-festlegen-0-0"></a>

Um für alle Mitglieder eines Projekts eine 2-Faktor-Authentifizierung festzulegen, müssen Sie Eigentümer des Projekts sein (hier finden Sie mehr Informationen zur Benutzerverwaltung und den Rollen). Öffnen Sie das Projekt und gehen Sie in die <img src="/files/hjaE3DzHP8fnRbu0sjOa" alt="" data-size="line">. Aktivieren Sie nun den Regler beim Feld «2-Faktor-Authentifizierung»:

<figure><img src="/files/h9IjVIqs0mZtPChl9rMr" alt=""><figcaption><p>2-Faktor-Authentifizierung aktivieren</p></figcaption></figure>

Diese Einstellung wird automatisch gespeichert und gilt für alle Projekt-Mitglieder.

## 2-Faktor-Authentifizierung für sich selbst festlegen <a href="#id-2-faktor-authentifizierung-fur-sich-selbst-festlegen-0-1" id="id-2-faktor-authentifizierung-fur-sich-selbst-festlegen-0-1"></a>

User können auch für sich selbst ein Login mit 2-Faktor-Authentifizierung aktivieren. Gehen Sie dazu in Ihre Profileinstellungen und scrollen Sie runter bis zur 2-Faktor-Authentifizierung:

<figure><img src="/files/vAKO4lwjnadUqYIkwYaB" alt=""><figcaption><p>2-Faktor-Authentifizierung aktivieren</p></figcaption></figure>

Klicken Sie auf <img src="/files/tv9hb5xwmfjTxS2G4FIo" alt="" data-size="line"> und wählen Sie Ihre bevorzugte Einstellung für die 2-Faktor-Authentifizierung aus. Sie können sich das Token per E-Mail, SMS oder per App (TOTP Token) zukommen lassen:

<figure><img src="/files/sSBjrrIRhpI2ESRnvy7e" alt=""><figcaption><p>Wahl der Method für 2-Faktor-Authentifizierung</p></figcaption></figure>

Bestätigen Sie Ihre Auswahl mit einem Klick auf <img src="/files/roxnAz1jmbJyXWuXhNHw" alt="" data-size="line">. Dadurch lösen Sie das Senden eines Tokens auf Ihrem bevorzugten Medium für eine 2-Faktor-Authentifizierung aus.

<figure><img src="/files/kM5azwepgvX9P2f9Ajqi" alt=""><figcaption><p>Eingabe des Tokens</p></figcaption></figure>

Geben Sie das Ihnen zugesendete Token in die sechs weissen Felder ein. Das Token ist für fünf Minuten gültig. Sollten Sie es nicht schaffen, das Token in dieser Zeit einzugeben, können Sie mit einem Klick auf «Neuen Code senden» ein neues Token auslösen. Klicken Sie nach der Eingabe des Tokens auf <img src="/files/lI83JmLGNpkW5djOlylQ" alt="" data-size="line">. Nun sehen Sie in Ihren Einstellungen, dass Sie die 2-Faktor-Authentifizierung aktiviert haben. In grün wird angezeigt, welche Methode Sie dazu aktuell ausgewählt haben.

<figure><img src="/files/dzy8DdmYRtsxq6MsxyB3" alt=""><figcaption><p>Erfolgreich aktivierte 2-Faktor-Authentifizierung</p></figcaption></figure>

Sie können die 2-Faktor-Authentifizierung für sich persönlich jederzeit mittels Klick auf <img src="/files/rU5fm37bwOV8ZsOR0B0l" alt="" data-size="line">wieder ausschalten.


# Workspace

Ihr Workspace enthält eine **Übersicht über alle Ihre** [**Projekte**](https://help.aiaibot.com/hc/de/articles/360012174557). Als Owner eines Workspaces können Sie [Personen dazu einladen](https://help.aiaibot.com/hc/de/articles/360012237058), mit Ihnen zusammen an einem Projekt zu arbeiten. Ein Workspace kann mehrere Projekte enthalten.

Um alle Projekte in Ihrem Workspace zu sehen, klicken Sie auf das <img src="/files/Ue2hlbtbSLPfoEjzGZkO" alt="" data-size="line"> Symbol.

<figure><img src="/files/bfJqDxM6jpa4rvmHNrpr" alt="" width="563"><figcaption></figcaption></figure>

## Workspace wechseln

Sollten Sie Zugriff auf mehrere Workspaces haben, können Sie zwischen diesen wechseln. Klicken Sie zunächst auf das <img src="/files/Ue2hlbtbSLPfoEjzGZkO" alt="" data-size="line"> Symbol, um zur Liste aller Projekte im aktuellen Workspace zu gelangen. Anschliessend können Sie in der Dropdown-Box neben dem <img src="/files/Ue2hlbtbSLPfoEjzGZkO" alt="" data-size="line"> Symbol einen anderen Workspace auswählen.


# Projekte

Ein Projekt ist eine in sich geschlossene Einheit, die Ihnen erlaubt, durch verschiedene Module Ihren Chatbot zu gestalten und [auf Ihrer Website auszuspielen](https://help.aiaibot.com/hc/de/articles/360012260038). Die Projekte, auf die Sie Zugriff haben, finden Sie in Ihrem [Workspace](https://help.aiaibot.com/hc/de/articles/360012237018).

Um ein neues Projekt zu erstellen, können Sie in Ihrem Workspace auf das <img src="/files/32GhkrdYgbHLeEkg44Lg" alt="" data-size="line">-Symbol klicken. Danach können Sie Titel, Kunde, Projektleitung und Projektziel eingeben und schon können Sie loslegen. Bei der Projektleitung werden Ihnen alle Personen angezeigt, die in der [Benutzerverwaltung](https://help.aiaibot.com/hc/de/articles/360012237058) hinterlegt sind.

<figure><img src="/files/JUL9cY1hBf2NSpSwZNCz" alt="" width="563"><figcaption><p>Neues Projekt erstellen</p></figcaption></figure>

Sie können diese Informationen jederzeit in den Einstellungen des Projekts bearbeiten.

**Projekt-Begrenzungen:** Die Anzahl der Benutzer pro Projekt sowie die Anzahl der Benutzer pro Sitzung können wir für Sie begrenzen (diese Funktion wurde früher als Frequency Capping bezeichnet).

**Hinweis:** Die Daten von einzelnen Projekten sind **vollständig voneinander getrennt**. Besitzt man mehrere Projekte, so werden sie alle einzeln [verrechnet](https://help.aiaibot.com/hc/de/articles/360012174437).

Projekte können mitsamt Stories und Einstellungen auf Anfrage [dupliziert](https://help.aiaibot.com/hc/de/articles/360015874857-Wie-kann-ich-ein-Projekt-kopieren-) werden (dabei werden Workflows zwar dupliziert, bleiben aber leer und Klassifikatoren und Entitäten werden nicht dupliziert).

### Freischaltung Module AI oder Robot <a href="#freischaltung-module-ai-oder-robot-0-0" id="freischaltung-module-ai-oder-robot-0-0"></a>

Um weitere Module im Projekt freizuschalten, können Sie in Ihrem Projekt das entsprechende Modul Robot oder AI anwählen. Falls das Modul für Sie noch nicht freigeschaltet ist, werden Sie die nachfolgende Meldung erhalten:

<figure><img src="/files/AHuJ7hs721bbh7oqHGT0" alt="" width="413"><figcaption><p>Modul noch nicht freigeschalten</p></figcaption></figure>

Um fortzufahren, klicken Sie auf Kontakt und es öffnet sich ein Chatbotfenster, in dem Sie den Zugang und Lizenzerweiterung für das entsprechende Modul beantragen können.

<figure><img src="/files/hD0wtBw2nkLktF7603Gb" alt="" width="272"><figcaption><p>Anforderung Modulfreischaltung via Chatbot</p></figcaption></figure>


# Projekt duplizieren

Falls Sie Ihr Projekt duplizieren möchten, dann senden Sie uns eine E-Mail an <support@aiaibot.com> – wir helfen Ihnen gerne weiter.

Die Klassifikatoren und Entitäten können nicht dupliziert werden.


# Benutzerverwaltung und Rollen

Oben rechts im Workspace können in den <img src="/files/s8gmJZIVTBrJH3zLP8Wk" alt="" data-size="line">via dem <img src="/files/32GhkrdYgbHLeEkg44Lg" alt="" data-size="line">-Symbol unten links andere Personen zum [Workspace](https://help.aiaibot.com/hc/de/articles/360012237018) eingeladen werden. Diesen Personen können unterschiedliche Rollen zugeteilt werden.

## Benutzer einladen <a href="#benutzer-einladen-0-0" id="benutzer-einladen-0-0"></a>

Werden Personen neu hinzugefügt, so können ihnen die Rollen als Manager oder als Mitglied gegeben werden. **Manager** haben Zugriff auf alle [Projekte](https://help.aiaibot.com/hc/de/articles/360012174557), **Mitglieder** können nur auf bestimmte Projekte zugreifen. Keine der beiden Rollen ist berechtigt, weitere Personen hinzuzufügen.

<figure><img src="/files/A5jFeJwmI9ToMkuQs38c" alt="" width="563"><figcaption><p>Benutzer einladen</p></figcaption></figure>

Geben Sie die E-Mail Adresse der Person ein, die eingeladen werden sollte und definieren Sie die Rolle und allenfalls die Projekte, auf die die Person Zugriff erhalten sollte. Mit einem Klick auf <img src="/files/Xq47IqAf6vfgPwIgel4f" alt="" data-size="line">senden wir dieser Person eine Einladung zu, die für sieben Tage lang gültig ist und in dieser Zeitspanne von ihr angenommen werden muss.

## Rolle eines Benutzers ändern <a href="#rolle-eines-benutzers-andern-0-1" id="rolle-eines-benutzers-andern-0-1"></a>

Hat sich eine Person als Manager oder Mitglied registriert, so kann deren Rolle im Nachhinein jederzeit von einem Eigentümer bearbeitet werden. Diese Personen können dann beispielsweise selbst als **Eigentümer** hinterlegt werden, damit sie Zugriff auf alle Projekte erhalten und weitere Personen hinzufügen können.

Um die Rolle eines Workspace-Mitglieds im Nachhinein anzupassen, können Sie in den <img src="/files/s8gmJZIVTBrJH3zLP8Wk" alt="" data-size="line"> bei der entsprechenden Person auf das <img src="/files/OYBdEaoPtWEHoQJXz7Ge" alt="" data-size="line"> Stift-Symbol klicken. Dort können Eigentümer die Rollen-Änderungen vornehmen und Berechtigungen für Projekte vergeben und wieder entziehen:

<figure><img src="/files/ouGD8AKc9diDiZ1VP8Is" alt="" width="563"><figcaption><p>Auswahl Benutzerrolle</p></figcaption></figure>


# Passwort zurücksetzen

Um Ihr Passwort zurückzusetzen, gehen Sie zunächst auf [https://app.aiaibot.com](https://app.aiaibot.com/). Geben Sie Ihre E-Mail-Adresse ein und klicken Sie anschliessend auf *Weiter*. Im darauffolgenden Fenster klicken Sie auf den Link "Passwort vergessen?" und geben anschließend erneut Ihre E-Mail-Adresse ein.

<figure><img src="/files/D4MXqgBiJjA3c8fmtFK4" alt="" width="375"><figcaption><p>Link um Passwort zurückzusetzen</p></figcaption></figure>

Daraufhin erhalten Sie von uns eine E-Mail mit der Aufforderung, ein neues Passwort aufzusetzen. Ein Link in der E-Mail leitet Sie weiter auf eine Website, auf der Sie Ihr neues gewünschtes Passwort eingeben können. Sobald Sie die Eingabe bestätigt haben, werden Sie wieder auf Ihren Workspace weitergeleitet.


# Profileinstellungen und persönliche Daten ändern

Um Ihre Profileinstellungen und persönlichen Angaben zu ändern, klicken Sie in der blauen Leiste oben rechts auf Ihren Namen und wählen danach die Option «Mein Profil».

<figure><img src="/files/EKXxFySFV9Q1iTcBKdJa" alt="" width="277"><figcaption></figcaption></figure>

Danach gelangen Sie zu Ihren persönlichen Einstellungen. Hier können Sie folgende Angaben anpassen:

## Profil <a href="#id-1-profil-0-0" id="id-1-profil-0-0"></a>

In diesem Abschnitt können Sie Ihren Vor- und Nachnamen anpassen. Zudem können Sie die Sprache der Benutzeroberfläche umstellen und optional Ihr Geschlecht und Ihren Beruf angeben. Klicken Sie nach den Anpassungen auf «Speichern», um Ihre Informationen zu aktualisieren.

<figure><img src="/files/ZhuDWurWCZMtudDQylzg" alt=""><figcaption></figcaption></figure>

## E-Mail Adresse

Wollen Sie Ihre E-Mail Adresse ändern, geben Sie die neue E-Mail in das entsprechende Feld ein. Bestätigen Sie diese mit der Eingabe Ihres Passwortes und einem Klick auf «Speichern». Sie erhalten von uns danach eine E-Mail an die neue Adresse, in der wir Sie um die Bestätigung der neuen Adresse durch einen Klick auf den entsprechenden Button bitten. Haben Sie dies getan, erhalten Sie von uns eine Bestätigung, dass Ihre E-Mail Adresse angepasst wurde.

<figure><img src="/files/SopXFNmAo1fc0B2Zg4PC" alt=""><figcaption></figcaption></figure>

## Passwort

Wollen Sie Ihr Passwort ändern, geben Sie bitte zuerst Ihr aktuelles Passwort ein. Danach fügen Sie Ihr neues gewünschtes Passwort in das Feld rechts ein. Bestätigen Sie die Eingabe durch einen Klick auf «Speichern». Sie erhalten daraufhin eine E-Mail von uns mit der Information, dass wir Ihr Passwort aktualisiert haben.

<figure><img src="/files/TsOghX9FnHuK4eCCCQrs" alt=""><figcaption></figcaption></figure>

## 2-Faktor-Authentifizierung <a href="#id-4-2-faktor-authentifizierung-0-3" id="id-4-2-faktor-authentifizierung-0-3"></a>

Die 2-Faktor-Authentifizierung können sie nach dieser Anleitung aktivieren: [2-Faktor-Authentifizierung](/readme-1/workspace-projekte-and-einstellungen/2-faktor-authentifizierung)


# Datensicherheit

Als Benutzer mit der Rolle Eigentümer können Sie einstellen, wie lange Sie Ihre Daten aufbewahren möchten. Dieses Feature erlaubt damit die regelmässige Löschung von bestimmten Daten.

Unter **Einstellungen** -> **Datensicherheit** können Sie einen spezifischen Aufbewahrungszeitraum für gespeicherte Daten festlegen. Daten können maximal sechs Monate (180 Tage) gespeichert werden.

Betroffen sind Daten die im **laufenden** **Betrieb** anfallen. Dazu gehören unter anderem Benutzereingaben über den Chatbot, E-Mails, Workflow- und API-Protokolle sowie Daten in der Reporting Suite.

{% hint style="info" %}
**Achtung:** Die Daten können nach einer erfolgten Löschung nicht wiederhergestellt werden.
{% endhint %}


# Feature Request und Bug Report

## Bug melden <a href="#bug-melden-0-0" id="bug-melden-0-0"></a>

Wenn Ihnen bei der Nutzung der aiaibot Plattform ein Fehler auffällt, dann haben Sie die Möglichkeit, uns diesen zu melden, und wir kümmern uns dann umgehend um die Fehler-Behebung.

Wenn Sie sich auf der Projektübersicht befinden, klicken Sie oben rechts auf das Fragezeichen und die entsprechende Option **Bug melden**.

## Neues Feature vorschlagen <a href="#neues-feature-vorschlagen-0-1" id="neues-feature-vorschlagen-0-1"></a>

Wir sind immer offen für neue Ideen. Falls Sie uns einen Vorschlag für ein neues Feature machen möchten, haben Sie die Möglichkeit, uns eine Nachricht zukommen zu lassen. Klicken Sie oben rechts auf das Fragezeichen dann auf **Feature vorschlagen**.


# Chatbot

Fragen zum Chatbot? Hier entlang.


# Integration


# Domains konfigurieren

Um einen Chatbot ausspielen zu können, muss unter **Einstellungen** -> **Chatbot** im Abschnitt **Website** mindestens eine Domain konfiguriert werden. Die Ausspielung des Chatbots ist ausschliesslich auf https-Seiten möglich.

Es können insgesamt bis zu 5 Domains oder Subdomains hinterlegt werden. Mittels einem **\*** können alle Subdomains von einer Domain zugelassen werden. Im folgenden Beispiel werden alle Subdomains von aiaibot.com erlaubt: `https://*.aiaibot.com`

Sobald Sie mindestens eine Domain konfiguriert haben, können Sie Ihren [Chatbot via HTML integrieren](/chatbot/integration/website-integration).


# Integration über Slack

In diesem Beitrag zeigen wir Ihnen, wie Sie aiaibot mit *Slack* verbinden können. Damit Sie dieser Anleitung folgen können, benötigen Sie ein Konto bei slack.com. Stellen Sie zudem sicher, dass folgende Einstellungen bei Ihren Channels stimmen:

* Diese Leute können offene Channels erstellen: Alle, ausser Gäste (Standard)
* Diese Leute können Channels archivieren: Alle, ausser Gäste (Standard)\\

In [dieser Anleitung](https://slack.com/intl/de-de/help/articles/115004988303-Einstellungen-f%C3%BCr-Channel-Management-festlegen#kostenloser-plan,-standard--plus-plan-2) erfahren Sie Schritt-für-Schritt, wie Sie die Einstellungen überprüfen können.\
\
Falls Sie noch keinen Workspace bei *Slack* haben, können Sie [hier](https://slack.com/get-started#/) ein Konto erstellen.

Falls Sie Unterstützung benötigen, wenden Sie sich bitte an <support@aiaibot.com>.

**Bitte beachten Sie zudem, dass die eingegebenen Daten über&#x20;*****Slack*****&#x20;die Schweiz und die Europa-Zone verlassen können.** In einem höheren Plan haben Sie die freie Auswahlmöglichkeit einer definierten Datenresidenz. Weitere Informationen dazu finden Sie [hier](https://slack.com/intl/de-de/help/articles/360035633934-Datenresidenz-f%C3%BCr-Slack).

## Verbindung mit Slack <a href="#verbindung-mit-slack-0-0" id="verbindung-mit-slack-0-0"></a>

Damit die Besucher Ihrer Internetseite in Echtzeit mit Ihnen über *Slack* chatten können, müssen wir als Erstes Ihr aiaibot-Projekt mit Ihrem *Slack-Workspace* verbinden. Das geht ganz einfach wie folgt:

1. **Anmelden bei Slack**\
   Stellen Sie sicher, dass Sie sich bei Ihrem *Slack-Workspac*e anmelden können und genügend Rechte haben, um Channels auf Ihrem Workspace zu verwalten.
2. **Gehen Sie zu Ihren Projekteinstellungen in aiaibot**\
   Sie finden diese in Ihrem Projekt unter dem Punkt <img src="/files/sLrokFBHNwSV83XYFvdj" alt="" data-size="line"> **Einstellungen**.\
   ![](/files/dOgJhyKMSKb3J4LU5CRZ)\
   \
   Alle Einstellungsmöglichkeiten zu Ihrem Chatbot finden Sie anschliessend unter dem Tab **Chatbot**.\
   ![](/files/ppVkOPt1S8onDIJK1ILR)\\
3. **Verbinden Sie Ihr Projekt mit Ihrem Slack-Workspace**\
   Unter **Integrationen** > ***Slack*** können Sie aiaibot mit Ihrem *Slack-Workspace* verbinden.\
   \\

   <figure><img src="/files/hEv87a2EOrQhArQEm5y1" alt=""><figcaption><p>Integration in einen Slack-Workspace</p></figcaption></figure>
4. **Channel für Nachrichten wählen**\
   Falls Sie zu diesem Zeitpunkt noch nicht an Ihrem *Slack-Workspace* angemeldet sind, können Sie das auf der geöffneten Seite machen. Falls Sie schon angemeldet sind, können Sie wählen, in welchen Channel die Nachrichten von Ihren Nutzern gesendet werden sollen.\
   \
   **Achtung:** Bitte wählen Sie einen öffentlichen Channel aus der Liste. Private Channels und Direktnachrichten funktionieren nicht.\
   ![](/files/9MHFo9FFYUsjJ9NszbcK)<br>
5. **Bestätigen und abschliessen**\
   Herzliche Gratulation! Nachdem Sie die Konfiguration mit **Fertig** bestätigt haben und *Slack* die Verbindung bestätigt hat, wird der ausgewählte *Slack-Channel* in unseren Einstellungen wie folgt angezeigt:\
   \
   \
   In dem von Ihnen gewählten Channel sehen Sie dann, dass aiaibot als App hinzugefügt worden ist.\
   ![](/files/H8uu3XRaPhBawsXkFuJN)\
   \
   Sie können nun ab einem bestimmten Punkt in einer Story eine Konversation mit den Besuchern Ihrer Internetseite starten. Wie das im Detail funktioniert, zeigen wir Ihnen im nächsten Abschnitt.

   <figure><img src="/files/1Ya7ut6OzLMk31u8niDI" alt=""><figcaption><p>Erfolgreiche Verbindung mit Slack-Workspace</p></figcaption></figure>

### Story mit Live-Chat ausstatten <a href="#story-mit-live-chat-ausstatten-0-1" id="story-mit-live-chat-ausstatten-0-1"></a>

Dieser Abschnitt setzt voraus, dass Sie alle Schritte unter **Verbindung mit Slack** erfolgreich abgeschlossen haben.

1. **Story auswählen**\
   Wählen Sie eine Story, in welcher Sie eine Konversation via *Slack* starten möchten.
2. **Live-Chat Widget in die Story einfügen**\
   Ziehen Sie dazu einfach das Widget an die gewünschte Stelle in Ihrer Konversation.\
   ![](/files/rfIClBcDh2OdIobUjyXR)\
   Das Live-Chat Widget darf nicht an der ersten Stelle der Konversation stehen.
3. **Vorhandene Pfade bei einem Live Chat via Slack**\
   Bei dem Live-Chat Widget können drei mögliche Pfade konfiguriert werden.\
   ![](/files/mjNSKypGU9vAvKEPTDdo)\
   \
   **Live-Chat wurde von einem Agenten bearbeitet**\
   Elemente in diesem Pfad werden nach dem Beenden der Konversation geladen. So kann nach einer Unterhaltung via *Slack* die Story weitergeführt werden. Dieser Pfad eignet sich insbesondere, um eine Umfrage nach dem Live-Chat zu starten.\
   \
   **Benutzer wollte keinen Live-Chat durchführen**\
   Falls der Benutzer eine Live-Chat-Unterhaltung ablehnt, werden Elemente aus diesem Pfad geladen.\
   \
   **Kein Agent war verfügbar**\
   Falls sich innert 60 Sekunden niemand meldet oder jemand über *Slack* die Anfrage ablehnt, werden Elemente aus diesem Pfad geladen. Dieser Pfad eignet sich gut, um nach den Daten von unserem Nutzer zu fragen und diese dann via E-Mail zu versenden. So kann die Anfrage zu einem späteren Zeitpunkt bearbeitet werden.\
   \
   **Tipp:** Benutzereingaben, welche vor dem Live-Chat Widget erfolgten, werden in *Slack* angezeigt und können dem Mitarbeitenden auf *Slack* helfen, das Anliegen von Ihrem Benutzer besser zu verstehen. Attribute wie Name, E-Mail sowie auch Kundennummer oder Bestellnummer können helfen, die Anfrage schneller zu beantworten. Falls kein Mitarbeitender für einen Live-Chat verfügbar war und eine Dialogübergabe in dem Pfad konfiguriert wurde, werden die gesammelten Daten an die gewünschte E-Mail versendet. So können Anfragen asynchron zu einem späteren Zeitpunkt bearbeitet werden.
4. **Anfragen in Slack bearbeiten**\
   Sobald ein Nutzer eine Unterhaltung starten möchte, schreibt die aiaibot Slack-App in den von Ihnen konfigurierten Channel.\
   ![](/files/o6sDnlBdvFxom740rMQx)\
   \
   Sie können das Gespräch nun beginnen, indem Sie auf den automatisch erstellen Channel gehen. Nachrichten, welche Sie in diesen Channel schreiben, werden direkt zum Nutzer auf Ihrer Internetseite weitergeleitet. Auch die Antworten sind in diesem Channel ersichtlich.\
   ![](/files/fXRlaET4G1ANpCPiFmGY)\
   \
   Falls es Ihnen nicht möglich ist, mit einem Nutzer zu schreiben, können Sie das Gespräch ablehnen, und der Nutzer wird in den von Ihnen konfigurierten Pfad weitergeleitet.\
   \
   Deine Channels werden nach dem Beenden der Konversation automatisch archiviert.


# Website-Integration

## aiaibot Skript-Tag hinzufügen <a href="#aiaibot-skript-tag-hinzufugen-0-0" id="aiaibot-skript-tag-hinzufugen-0-0"></a>

Nachdem Sie Ihre [Domains für Ihre Websites konfiguriert](/chatbot/integration/domains-konfigurieren) haben, können Sie den aiaibot Skript Tag zu Ihrer Website hinzufügen, um den aiaibot Chatbot einzubinden. Den Skript Tag finden Sie unter **Einstellungen -> Chatbot** im Bereich **Website-Integration**.

Bitte fügen Sie den Skript Tag wie im folgenden Beispiel direkt vor dem closing-body-tag `</body>` auf Ihrer Website hinzu.

{% code fullWidth="false" %}

```html
<html>
 <head>
    <title>Your Website</title>
 </head>
 <body>
    <!-- ... -->
    <script type="text/javascript" src="https://chat.aiaibot.com/bootstrap.js" data-aiaibot-key="<your-key>" defer></script> 
 </body>
</html>
```

{% endcode %}

## Content-Security-Policy (CSP) anpassen <a href="#content-security-policy-csp-anpassen-0-1" id="content-security-policy-csp-anpassen-0-1"></a>

Falls benötigt, fügen sie die aiaibot Domains in Ihrer Content-Security-Policy (CSP) hinzu:

```
frame-src *.aiaibot.com
default-src *.aiaibot.com
```


# Integration mit Eingabefeld

In diesem Beitrag zeigen wir Ihnen, wie Sie aiaibot mit einem Eingabefeld Ihrer Website integrieren können.

## Ziel

Manchmal möchten wir den Chatbot in ein Eingabefeld auf der Website integrieren, beispielsweise in die Suchleiste der Website oder in einem Textfeld in einem Abschnitt auf der Homepage mit dem Titel „Haben Sie weitere Fragen? Unser KI-gestützter Chatbot kann Ihnen helfen“, sodass nach der Übermittlung des Eingabeinhalts der aiaibot-Webchat ausgelöst wird und die Benutzereingabe als Frage an den Chatbot gestellt wird.

Ein Live-Beispiel finden Sie auf der Startseite [unserer offiziellen Website](https://aiaibot.com).

## Übersicht

Für die Integration sind folgende Schritte erforderlich:

1. aiaibot wie gewohnt integrieren
2. Eingabefeld vorbereiten
3. Eingabefeld mit aiaibot verbinden

Im Folgenden gehen wir Schritt für Schritt auf die Details ein.

## Integrieren Sie aiaibot wie gewohnt

Eine der einfachsten Möglichkeiten, aiaibot in Ihre Website zu integrieren, besteht darin, den folgenden HTML-Code in Ihre Webseite einzufügen:

```html
<script
  type="text/javascript"
  src="https://chat.aiaibot.com/bootstrap.js"
  data-aiaibot-key="%YOUR_AIAIBOT_KEY%"
  defer
></script>
```

Weitere Informationen finden Sie in den Anweisungen in [unserem Hilfecenter-Dokument](https://help.aiaibot.com/chatbot/integration).

## Eingabefeld vorbereiten

Das Eingabefeld kann ein `<textarea>` oder eine `<input type="text">` auf Ihrer Website sein. Stellen Sie sicher, dass das Eingabefeld einen Selektor enthält, damit Sie mit `document.querySelector()` einfach auf Ihr DOM verweisen können.

## Eingabefeld mit aiaibot verknüpfen

Nachdem die Webseite geladen und aiaibot in die Website integriert wurde, gehen wir wie folgt vor:

1. Abfrage des DOM des Eingabefelds.
2. Wenn aiaibot den Ladevorgang abgeschlossen hat, registrieren wir einen Callback für aiaibot. Sobald eine Benutzereingabenachricht eingeht, wird die gespeicherte Benutzereingabe als aiaibot-Eingabe gesendet.
3. Beim Senden der Benutzereingabe speichern wir die Benutzereingabe in einer Variable und lösen dann aiaibot aus.

Beispielcode:

```js
let messageToSend = '';

const textInput = wrapperElement.querySelector('[data-id="aiaibot-webchat-trigger__text-input"]');

aiaibot.onReady(() => {
  aiaibot.onMessage((payload) => {
    if (messageToSend === '') {
      return;
    }

    if (payload.type !== 'user-input') { // This could also be 'button-group', depends on which widget you are using
      return;
    }

    aiaibot.sendUserInput(payload.id, messageToSend);

    messageToSend = '';
  });
});

textInput.addEventListener('keydown', (event) => {
  if (event.key === 'Enter' && !event.shiftKey) {
    event.preventDefault();

    messageToSend = textInput.value.trim();

    // Trigger aiaibot. For more information, see:
    // https://help.aiaibot.com/chatbot/stories-and-story-builder/trigger
    document.dispatchEvent(new CustomEvent('question'));
  }
});
```

In diesem Fall wird nach dem Drücken der Eingabetaste im Eingabefeld ein benutzerdefiniertes Ereignis ausgelöst und das Öffnen von aiaibot ausgelöst. Sobald das Benutzereingabe-Widget beginnt, dem Benutzer eine Frage zu stellen, wird die in der Variable „messageToSend“ gespeicherte Benutzereingabe an aiaibot gesendet.

## Ein vollständiges Beispiel

```html
<script
  type="text/javascript"
  src="https://chat.aiaibot.com/bootstrap.js"
  data-aiaibot-key="%YOUR_AIAIBOT_KEY%"
  defer
></script>

<script tyep="text/javascript">
;(() => {
  class AiaibotWebchatTrigger extends HTMLElement {
    constructor() {
      super();

      this.elementStyle = `
        %YOUR_STYLES%
        /* Z.B. .aiaibot-webchat-trigger { ... } */
      `;

      this.elementHtml = `
        <div class="aiaibot-webchat-trigger">
          <div class="aiaibot-webchat-trigger__container">

            <h3 class="aiaibot-webchat-trigger__title">
              Hast du noch Fragen?<br>
              Unser Chatbot hilft dir!
            </h3>

            <div class="aiaibot-webchat-trigger__input-container">

              <textarea
                class="aiaibot-webchat-trigger__text-input"
                data-id="aiaibot-webchat-trigger__text-input"
                placeholder="Stellen Sie hier ein Frage."
              ></textarea>

              <button
                class="aiaibot-webchat-trigger__send-button"
                data-id="aiaibot-webchat-trigger__send-button"
              >
                Senden
              </button>

            </div>

            <ul class="aiaibot-webchat-trigger__button-group">
              <li>
                <button
                  class="aiaibot-webchat-trigger__text-button"
                  data-id="aiaibot-webchat-trigger__text-button"
                >
                  Wer bist du?
                </button>
              </li>
              <li>
                <button
                  class="aiaibot-webchat-trigger__text-button"
                  data-id="aiaibot-webchat-trigger__text-button"
                >
                  Was kannst du machen?
                </button>
              </li>
              <li>
                <button
                  class="aiaibot-webchat-trigger__text-button"
                  data-id="aiaibot-webchat-trigger__text-button"
                >
                  Was macht aiaibot?
                </button>
              </li>
            </ul>

          </div>
        </div>
      `;
    }

    connectedCallback() {
      const shadow = this.attachShadow({ mode: 'open' });

      const styleElement = document.createElement('style');
      styleElement.textContent = this.elementStyle;

      const wrapperElement = new DOMParser().parseFromString(this.elementHtml, 'text/html').firstChild;

      shadow.appendChild(styleElement);
      shadow.appendChild(wrapperElement);

      const textInput = wrapperElement.querySelector('[data-id="aiaibot-webchat-trigger__text-input"]');
      const sendButton = wrapperElement.querySelector('[data-id="aiaibot-webchat-trigger__send-button"]');
      const textButtons = wrapperElement.querySelectorAll('[data-id="aiaibot-webchat-trigger__text-button"]');

      let messageToSend = '';

      sendButton.addEventListener('click', () => {
        sendMessage();
      });

      textInput.addEventListener('keydown', (event) => {
        if (event.key === 'Enter' && !event.shiftKey) {
          event.preventDefault();
          sendMessage();
        }
      });

      textButtons.forEach((textButton) => {
        textButton.addEventListener('click', (event) => {
          const text = event.target.textContent;
          textInput.value = text.trim();

          setTimeout(() => {
            sendMessage();
          }, 500);
        });
      });

      aiaibot.onReady(() => {
        aiaibot.onMessage((payload) => {
          if (messageToSend === '') {
            return;
          }
          if (payload.type !== 'user-input') {
            return;
          }
          aiaibot.sendUserInput(payload.id, messageToSend);
          messageToSend = '';
        })
      });

      function sendMessage() {
        const message = textInput.value.trim();
        if (!message) {
          return;
        }

        messageToSend = message;

        // Trigger aiaibot
        document.dispatchEvent(new CustomEvent('question'));
      }
    }
  }

  customElements.define("aiaibot-webchat-trigger", AiaibotWebchatTrigger);
})();
</script>

<aiaibot-webchat-trigger></aiaibot-webchat-trigger>
```

Hinweise:

1. Bitte verwenden Sie Ihren eigenen aiaibot-Schlüssel, um `%YOUR_AIAIBOT_KEY%` zu ersetzen.
2. Bitte schreiben Sie Ihren eigenen CSS-Code, um `%YOUR_STYLE%` zu ersetzen.
3. Der oben gezeigte Code verwendet Shadow DOM und Custom Element in [Web Components](https://developer.mozilla.org/en-US/docs/Web/API/Web_components). Dies ist die empfohlene Methode zur Integration von aiaibot, da Shadow DOM die Stile isoliert, sodass die aiaibot-bezogenen Elemente nicht von den vorhandenen Stilen auf der Webseite beeinflusst werden.
4. Das Beispiel verwendet ein Textfeld für die Eingabe und reagiert auf das Event der Eingabetaste und das Click-Event auf der Schaltfläche „Senden“, um aiaibot WebChat auszulösen.
5. Darüber hinaus werden drei zusätzliche Schaltflächen verwendet, um vordefinierte Fragen automatisch zu senden. Sie können den Text auf den Schaltflächen ändern, um die Frage anzupassen.


# Google Tag Manager Integration

Bitte stellen Sie zunächst sicher, dass Sie die [Domains für Ihre Websites konfiguriert](/chatbot/integration/domains-konfigurieren) haben. Um Ihren Chatbot mit Google Tag Manager auf Ihrer Website einzubinden, benötigen Sie den API-Key aus dem aiaibot Skript Tag, den Sie unter **Einstellungen** -> **Chatbot** im Abschnitt **Website-Integration** finden.

Kopieren Sie den **API-Key**. Der API-Key entspricht dem in folgendem Beispiel `e146a111-6811-4814-9a11-d242243e47b1`:

<pre class="language-html"><code class="lang-html">&#x3C;script type="text/javascript" src="https://chat.aiaibot.com/bootstrap.js"
<strong>data-aiaibot-key="e146a111-6811-4814-9a11-d242243e47b1" defer>&#x3C;/script>
</strong></code></pre>

Fügen Sie das folgende Skript im Google Tag Manger hinzu und ersetzen Sie 'API\_KEY' mit dem kopierten Wert:

<pre class="language-html"><code class="lang-html">&#x3C;script>
  var script = document.createElement("script");
  script.setAttribute('defer', 'true');
<strong>  script.setAttribute('data-aiaibot-key', 'API_KEY');
</strong>  script.src = "https://chat.aiaibot.com/bootstrap.js";
  document.getElementsByTagName("body")[0].appendChild(script);
&#x3C;/script>
</code></pre>


# Warum sehe ich meinen Chatbot nicht?

Es kann mehrere Gründe dafür geben, dass Sie Ihren Chatbot auf der gewünschten Seite nicht sehen können.

### Domain <a href="#domain-0-0" id="domain-0-0"></a>

Überprüfen Sie als Erstes, ob Sie die Domain Ihrer Website freigeschaltet haben. Um einen Chatbot ausspielen zu können, muss mindestens eine Domain konfiguriert werden. Wie das genau funktioniert, erfahren Sie [hier](/chatbot/integration/domains-konfigurieren).

### Website-Integration <a href="#website-integration-0-1" id="website-integration-0-1"></a>

Prüfen Sie, ob der aiaibot Skript Tag auf Ihrer Website integriert ist. Wie das funktioniert, erfahren Sie [hier](#website-integration-0-1).

### Story <a href="#story-0-2" id="story-0-2"></a>

Sie benötigen zumindest eine aktive und publizierte Story. Mehr dazu [hier.](https://help.aiaibot.com/hc/de/articles/360012268278-Speichern-Verwerfen-Entwurf-Publiziert-und-Aktiv-Inaktiv)

### Trigger <a href="#trigger-0-3" id="trigger-0-3"></a>

Um den Chatbot auf einer Website anzuzeigen benötigt es zumindest einen aktiven Trigger. Im Trigger wird ein Pfad hinterlegt, um zu steuern, auf welchem Pfad Ihrer Website der Chatbot angezeigt werden soll. Weitere Informationen dazu finden Sie [hier](https://help.aiaibot.com/hc/de/articles/360012267958-Pfad-im-Trigger-hinterlegen#ein-anwendungs-beispiel--0-0).


# Cookies anpassen

Das Setzen von Cookies im Chatbot kann durch das Hinzufügen eines Attributs auf dem aiaibot Skript Tag verhindert werden. Dazu muss das folgende Attribut hinzugefügt werden:

```
data-aiaibot-no-cookies
```

Zudem stehen zwei ergänzende Funktionen über die JavaScript-API zur Verfügung. Um aiaibot Cookies zu setzen, sollte folgende Funktion bei Zustimmung des Nutzers aufgerufen werden:

```
window.aiaibot.createTrackingCookies()
```

Um die aiaibot Cookies zu löschen, so sollte die folgende Funktion bei nachträglicher Ablehnung der Cookies aufgerufen werden:

```
window.aiaibot.removeTrackingCookies()
```


# Unblu Live-Chat integrieren

## Voraussetzungen

Damit Sie einen Unblu Live-Chat in Ihren Chatbot einbauen können, müssen Sie ein [Konto bei unblu.com](https://www.unblu.com/de/) besitzen.

## Unblu Live-Chat integrieren <a href="#unblu-live-chat-integrieren-0-0" id="unblu-live-chat-integrieren-0-0"></a>

1. API Key in Unblu hinzufügen hinzufügen

In Unblu, klicken Sie auf Ihr **Profilbild → Konto verwalten → API Keys**.

Wählen Sie danach die Option **New API key** oben rechts aus, geben Sie dem API Key einen Namen und optional noch eine Beschreibung.

2. Unblu JavaScript Snippet integrieren

Kopieren Sie das JavaScript Snippet mit dem soeben erstellen API Key und fügen Sie es Ihrer Website laut den Anweisungen von Unblu hinzu.

3. JavaScript API einfügen

Nun kann die folgende JavaScript API unter das soeben eingefügte JavaScript Snippet kopiert werden:

```html
<script src="https://unblu.cloud/unblu/js-api/v2/visitor/visitor-api.min.js">
</script>
```

{% hint style="info" %}
**Wichtig:** Findet ein Live-Chat Handover von aiaibot zu Unblu statt, so ist die Chatbot-Session für den User nach Abschluss der Live-Chat Unterhaltung beendet.
{% endhint %}


# Stories & Story Builder


# Story - Diagrammansicht

Nebst der üblichen Darstellung im Chatbot Storybuilder gibt es die Option, die Story auch als Diagramm zu betrachten.

<figure><img src="/files/lgP5dvhNrwum4pIFX2N7" alt=""><figcaption></figcaption></figure>

Hierfür kann der User unten links auf den **Button** <img src="/files/ZnfMtnemhU9nW7lwRptX" alt="" data-size="line"> klicken und der Dialog wird in der Diagrammansicht angezeigt:

<figure><img src="/files/A8QwJFlEfsyNIFeHY070" alt=""><figcaption></figcaption></figure>

Der Ausgangspunkt jedes Story-Diagramms ist die Stor,y in der man sich verbindet. Im Diagramm werden alle Stories, die im Zusammenhang stehen als grosses Diagramm mitsamt allen Verbindungen angezeigt.

Um eine Übersicht zu schaffen, werden die einzelnen Boxen genauer erläutert:

#### Dunkelblaue Box

Die dunkelblaue Box stellt den Beginn einer Story dar. Da die Diagrammansicht auch mehrere verknüpfte Stories umfassen kann, kann eine solche Box an mehreren Punkten zu finden sein.

#### Blaue Box

Die blaue Box ist ein Entscheidungspunkt in der Unterhaltung, bei welcher der User sich für eine Option festlegen muss und der weitere Gesprächsverlauf dadurch beeinflusst wird.

#### Hellblaue Boxen

Geben das Widget an, welches eine Pfadspaltung vorankommt. So hat das Widget Entscheidung bspw. unterschiedliche Fortsetzungen des Gesprächs zur Folge, welche mit der blauen Box angezeigt werden.

#### Grün umrandete Boxen

Grün umrandete Boxen geben eine Verknüpfung zu einer anderen Story an.

Dies beinhaltet auch Verbindungen innerhalb derselben Story.

#### Weisse Boxen

Die weissen Boxen zeigen den Inhalt des Dialogs an, so zum Beispiel Text oder auch wann welcher User Input vom Widget gefordert wird.

<figure><img src="/files/USfXKR4C8gtFnZesXn2E" alt=""><figcaption></figcaption></figure>

Es können auch Bilder angezeigt werden, die mit dem Medien-Widget ausgespielt werden können.

Die im Diagramm dargestellte Geschichte ändert sich je nachdem, ob es sich dabei um einen Entwurf oder eine veröffentlichte Version der Story handelt.


# Konfiguration vom Chat Ende

Nach Beenden eines Chatbot-Dialogs können Sie einstellen, wie sich der Chatbot verhalten soll. Sie können festlegen, ob die User über das Ende des Gesprächs informiert werden sollen oder nicht.

Den Button zur Konfiguration finden Sie im Storybuilder auf der linken Seite oben <img src="/files/p6newAK8WaFpjZ6BlyaI" alt="" data-size="line">. Mit einem Klick darauf können Sie das Verhalten des Chatbots direkt konfigurieren.

Sie haben dabei diese drei Optionen:

<figure><img src="/files/GBxfPXIIBUFB0M96xtnh" alt=""><figcaption></figcaption></figure>

### 1. Benachrichtigen <a href="#id-1-benachrichtigen-0-0" id="id-1-benachrichtigen-0-0"></a>

In der Unterhaltung wird nach Beenden des Gesprächs die Benachrichtigung angezeigt und der Chat kann vom User geschlossen werden.

<figure><img src="/files/iM7lDkVNItRlA81Xac92" alt=""><figcaption></figcaption></figure>

### 2. Benachrichtigen und automatisch schliessen <a href="#id-2-benachrichtigen-und-automatisch-schliessen-0-1" id="id-2-benachrichtigen-und-automatisch-schliessen-0-1"></a>

In der Unterhaltung wird nach Beenden des Gesprächs wird die Benachrichtigung angezeigt und danach automatisch geschlossen. Hierfür können Sie einen Timer festlegen, der im Chat abläuft, bis dieser sich dann schliesst.

<figure><img src="/files/nQ64bN2Ck2dE78gUV0Fk" alt=""><figcaption></figcaption></figure>

Scrollt der User wieder hoch, wir der Timer abgebrochen und startet neu, wenn der User zurück an das Ende der Unterhaltung scrollt.

<figure><img src="/files/zK9qD0YkGSfwPxRtKcip" alt=""><figcaption></figcaption></figure>

### 3. Nicht benachrichtigen <a href="#id-3-nicht-benachrichtigen-0-2" id="id-3-nicht-benachrichtigen-0-2"></a>

Bei dieser Option erhält der User keine Benachrichtigung, dass die Unterhaltung abgeschlossen wurde.

### Chat beenden <a href="#chat-beenden-0-3" id="chat-beenden-0-3"></a>

Der User oder Userin hat zudem die Möglichkeit, jederzeit anzuwählen, ob die Unterhaltung mit dem Chatbot neu gestartet oder komplett der Chat geschlossen werden möchte.

<figure><img src="/files/D8yrQhQvflxaUdm0bt2q" alt="" width="275"><figcaption></figcaption></figure>


# Was ist der Story Builder?

Der Story Builder ist der Ort, wo Sie Ihre [Story](/chatbot/stories-and-story-builder/was-ist-eine-story) zusammenbauen, [bearbeiten und veröffentlichen](https://help.aiaibot.com/hc/de/articles/360012268278) können. Erstellen Sie eine neue Story in Ihrem Projekt, gelangen Sie zum Story Builder.

<figure><img src="/files/Pp52kgZ3Ia3vDaHI2BiE" alt=""><figcaption></figcaption></figure>


# Was ist eine Story?

Eine Story beinhaltet alle Ihre Elemente (Widgets), durch die Sie Storys zusammenbauen können. Storys können aktiv sowie inaktiv sein und werden durch Trigger ausgelöst.

Storys haben zudem immer einen Titel. Die Sprache einer Story kann auf Deutsch, Englisch, Französisch oder Italienisch festgelegt werden. Sie kann über eine Website, Slack oder MS Teams ausgespielt werden.

Sie verfügen über die Möglichkeit, die Storys in der Übersicht durch das Kontextmenü ganz rechts jederzeit zu duplizieren, löschen oder zu bearbeiten. So können schnell neue Storys erstellt oder Anpassungen gemacht werden, um Ihren Chatbot weiterzuentwickeln.


# Story Übersicht

In der linken Seitenleiste Ihres Projekts finden Sie eine Übersicht der Module Chatbot, AI und Robot. Klicken Sie auf das <img src="/files/Mctfu8Kl0qkBIvuwVR3m" alt="" data-size="line"> Chatbot-Icon, um zu Ihren [Storys](/chatbot/stories-and-story-builder/was-ist-eine-story) zu gelangen:

<figure><img src="/files/vjB8XOSpOPvWQT7IMMcc" alt="" width="156"><figcaption></figcaption></figure>

Nun befinden Sie sich in der Übersichts-Ansicht Ihrer Storys. Zuoberst werden in alphabetischer Reihenfolge von A-Z alle Storys angezeigt, die online publiziert sind. Direkt unterhalb werden ebenfalls in alphabetischer Reihenfolge die Storys aufgelistet, die nicht veröffentlicht sind:

<figure><img src="/files/S0eBUplyz1eWyL0T5Dh9" alt=""><figcaption></figcaption></figure>

Ziehen Sie es vor, die inaktiven Storys zuoberst zu sehen, so können Sie die Ansicht mit einem Klick auf <img src="/files/GM4vCfCNQZ6wRPSn65bs" alt="" data-size="line"> in der Leiste anpassen. Nun werden Ihnen zuoberst die Storys angezeigt, welche noch nicht publiziert wurden.

Bei vielen Stories können Sie diese gruppieren.

<figure><img src="/files/72xsW9iVfgrM2MzD12hl" alt=""><figcaption></figcaption></figure>

Sie können die Stories hierfür in den Ordner "Ziehe eine Story in dieses Feld, um eine neue Gruppe zu erstellen" ziehen. Zum Auflösen der Gruppierung können Sie auf **Gruppe auflösen** klicken.

<figure><img src="/files/jPQMNj7E6YNre4DIUHUO" alt="" width="211"><figcaption></figcaption></figure>

Die Reihenfolge innerhalb der Gruppe kann via Drag\&Drop verändert werden.


# Eine Story erstellen

Um eine [Story](https://help.aiaibot.com/hc/de/articles/360012201917) zu erstellen, gehen Sie in Ihr Projekt und klicken in der Story Übersicht auf das <img src="/files/32GhkrdYgbHLeEkg44Lg" alt="" data-size="line">-Symbol unten links:

<figure><img src="/files/iUbAO2jzVoG3hLjK6JHb" alt=""><figcaption></figcaption></figure>

Danach geben Sie Ihrer Story einen Titel und wählen eine Sprache aus. Die neue Story kann auch gleich in einer Gruppe abgelegt werden.

<figure><img src="/files/G8yrp2D1ANYtdnt7PQaa" alt="" width="375"><figcaption></figcaption></figure>

Sobald Sie das gespeichert haben, gelangen Sie zum Story Builder. Dort können Sie via Drag & Drop die verschiedenen Widgets einfügen und Ihre Story bauen.


# Eine Story kopieren/duplizieren

Wenn Sie eine Story kopieren bzw. duplizieren möchten, können Sie das ganz einfach in der Chatbot-Ansicht tun. Hierzu klicken Sie auf der rechten Seite auf <img src="/files/tLadKRBVAM7DxEDhsMhR" alt="" data-size="line">und dann auf «Duplizieren».

<figure><img src="/files/0YKjKATqs4B5yKsPTGp8" alt=""><figcaption></figcaption></figure>


# Storys untereinander verlinken

Ein Dialog setzt sich aus verschiedenen Storys zusammen. Dazu können Storys miteinander verlinkt werden. Dies ist dann sinnvoll, wenn ein Inhalt mehrfach im Dialog vorkommt oder es eine Mehrfachauswahl von Themen gibt, die dem Nutzer angeboten werden.

## Story Link <a href="#story-link-0-0" id="story-link-0-0"></a>

Dies ist ein eigenes Widget, das eine Vorauswahl von verschiedenen veröffentlichten und unveröffentlichten Stories gibt. Mehr dazu und die Schritt für Schritt Anleitung lesen Sie im Artikel zum [Widget Story Link](https://help.aiaibot.com/hc/de/articles/360012268758-Story-Link).

## Go-To-Ziel <a href="#go-to-ziel-0-1" id="go-to-ziel-0-1"></a>

Dieses Widget wird in Kombination mit dem Story Link Widget verwendet. Das Go-To Ziel Widget kann an einer Stelle in einer Story eingefügt werden, auf die man dann mithilfe des Story Link Widgets verlinken kann. Der Unterschied zum Story Link Widget ist, dass dieses auf Storys verlinkt, das Go-To Ziel Widget dagegen an eine beliebige Stelle in einer Story. Lesen Sie hier mehr über die Anwendung des [Go-To Ziel Widgets](https://help.aiaibot.com/hc/de/articles/360021000357-Go-To-Ziel).

## Text Link <a href="#text-link-0-2" id="text-link-0-2"></a>

Sie können im [Text-Widget](https://help.aiaibot.com/hc/de/articles/360012211477-Text) neben Verlinkungen zu externen Seiten (bspw. Website) auch Verlinkungen zu anderen [Storys](https://help.aiaibot.com/hc/de/articles/360012201917-Was-ist-eine-Story-) oder zu [Go-To-Zielen](https://help.aiaibot.com/hc/de/articles/360021000357-Go-To-Ziel) einfügen. Dies macht bspw. dann Sinn, wenn Sie dem User eine Auswahl aus verschiedenen Angeboten oder weiterführenden Informationen geben wollen, die sich wiederum im Chatbot-Dialog befinden.

Um einen solchen Text-Link hinzuzufügen, öffnen Sie das Text-Element im Bearbeitungsmodus und wählen Sie das Textlink-Icon ganz oben rechts an. Es öffnet sich dann eine Bearbeitungsmaske.

<figure><img src="/files/bBTyynbSjSF3OMahkj4j" alt=""><figcaption></figcaption></figure>

### Text-Link zu einer Story <a href="#text-link-zu-einer-story-0-3" id="text-link-zu-einer-story-0-3"></a>

Um im Text zu einer anderen [Story](https://help.aiaibot.com/hc/de/articles/360012201917-Was-ist-eine-Story-) zu verlinken, muss diese gewünschte Story zuerst erstellt worden sein. Mit einer Suchfunktion kann dann die Ziel-Story ausgewählt werden. Neben der Auswahl der Story muss zudem der sogenannte Text-Link erstellt werden, also jene Stelle im Text, die dann den effektiven Link bildet. Im Beispiel wird zu einem Angebot (Angebot 1) verlinkt, wofür vorab eine Story erstellt wurde.

<figure><img src="/files/R0cgHGDfwjWNjWllQB0t" alt=""><figcaption></figcaption></figure>

### Text-Link zu einem Go-To-Ziel <a href="#text-link-zu-einem-go-to-ziel-0-4" id="text-link-zu-einem-go-to-ziel-0-4"></a>

Um im Text zu einem [Go-To-Ziel](https://help.aiaibot.com/hc/de/articles/360021000357-Go-To-Ziel) zu verlinken, muss dieses zuerst in der gewünschten Story erstellt worden sein. Mit einer Suchfunktion kann dann die Ziel-Story ausgewählt werden, in der sich das Go-To-Ziel befindet. Ist eine Story mit Go-To-Ziel angewählt, erscheinen die dazugehörigen Go-To-Ziele. In diesem Fall wurde aus der Story «Kontoeröffnung» das Go-To-Ziel zum «Angebot 2» erfasst.

<figure><img src="/files/ArtjfQI228DxK8ZTlMdE" alt="" width="416"><figcaption></figcaption></figure>

Bei beiden Optionen muss zur Bestätigung das Häkchen oben rechts angewählt und die Anpassung muss im Text-Element gespeichert werden. Sind die Links so gespeichert, werden sie im Dialog des Bots als unterstrichene Texte dargestellt. Wir empfehlen, im Text darauf hinzuweisen, dass man auf die folgenden Texte klicken soll oder mit einem Emoji (wie bspw. einem Zeigefinger) die Aktion zu verdeutlichen.

<figure><img src="/files/Q7RzNS7kuA9DQyx6RvSo" alt=""><figcaption></figcaption></figure>


# Wie kann ich eine Story exportieren?

Wenn Sie eine Story exportieren möchten, um beispielsweise Ihren Kunden den Inhalt der Story vorzustellen oder diesen in Übersetzung zu geben, dürfen Sie uns gerne eine E-Mail an <support@aiaibot.com> schreiben, und wir kümmern uns für Sie darum.


# Eine Story wiederherstellen

Sobald eine Story gelöscht wurde, kann sie nicht wiederhergestellt werden – zumindest nicht vom User. Sollten Sie also den Wunsch haben, eine gelöschte Story wiederherzustellen, kontaktieren Sie uns über das Kontaktformular auf der Homepage von aiaibot oder schreiben Sie uns eine E-Mail an <support@aiaibot.com>. Wir unterstützen Sie gerne.


# Speichern, Entwurf- und Live-Version

Haben Sie eine [neue Story erstellt](/chatbot/stories-and-story-builder/eine-story-erstellen), so können Sie diese im Story Builder bearbeiten. Am unteren linken Bildschirmrand ist ersichtlich, dass Sie sich im **Entwurf-Modus** befinden:

<figure><img src="/files/R7lQiLaZAduVZDE7On3e" alt=""><figcaption></figcaption></figure>

## Story publizieren <a href="#story-publizieren-0-0" id="story-publizieren-0-0"></a>

Um eine Story zu publizieren, klicken Sie auf den blauen runden Button <img src="/files/yDI5FpvzNvgsu5GW6S69" alt="" data-size="line">am unteren Bildschirmrand. Bestätigen Sie daraufhin die folgende Meldung mit einem Klick auf «Veröffentlichen»:

<figure><img src="/files/VmNLEKPRSty6hR23fGyY" alt=""><figcaption></figcaption></figure>

Nun ist Ihre Story online. Sie erkennen am Status oben rechts, dass dieser auf <img src="/files/MaczsWF1PbIRw8cmxQbE" alt="" data-size="line"> gewechselt hat. Zusätzlich sehen Sie am unteren linken Bildschirmrand, dass Sie gerade die Live-Version betrachten. In der Live-Version können keine Änderungen vorgenommen werden.

## Story bearbeiten <a href="#story-bearbeiten-0-1" id="story-bearbeiten-0-1"></a>

Wollen Sie die Story bearbeiten, klicken Sie auf das runde <img src="/files/WUI9r7aPR21l2XLdMTk6" alt="" data-size="line">Symbol.

<figure><img src="/files/YytCMszMqcfiZw5qk7Hf" alt=""><figcaption></figcaption></figure>

Jetzt befinden Sie sich erneut im **Entwurf-Modus**, was wieder unten links gekennzeichnet ist. Die Änderungen werden allerdings erst live geschaltet, wenn Sie die Story erneut publizieren.

<figure><img src="/files/R7lQiLaZAduVZDE7On3e" alt=""><figcaption></figcaption></figure>

**Um den Entwurf-Modus zu verlassen** und die Live-Story zu betrachten, wählen Sie das Symbol <img src="/files/YaFwCxFOT8QjZSzUp3Cq" alt="" data-size="line">. Wollen Sie Ihre **Änderungen im Entwurf verwerfen** und diesen wieder auf die Live-Story zurücksetzen, so wählen Sie <img src="/files/m4YwJDVXzmzvw2KWASxt" alt="" data-size="line">. Bitte bestätigen Sie den Löschvorgang des Entwurfs mit einem Klick auf «Änderungen verwerfen»:

<figure><img src="/files/WS95a3oAWBR0MGdUrQ3i" alt=""><figcaption></figcaption></figure>

## Story deaktivieren und reaktivieren <a href="#story-deaktivieren-und-reaktivieren-0-2" id="story-deaktivieren-und-reaktivieren-0-2"></a>

Deaktivieren Sie eine Story in der Story-Übersicht, indem Sie den Schalter in der Sparte «Aktiv» ausschalten <img src="/files/BpEa4V86NFQFdQut15oJ" alt="" data-size="line">, so wird die Veröffentlichung der Story aufgehoben und sie wird nicht mehr auf der konfigurierten Website ausgespielt.

<figure><img src="/files/S0eBUplyz1eWyL0T5Dh9" alt=""><figcaption></figcaption></figure>

Wollen Sie eine inaktive Story nun bearbeiten und wieder online schalten, reicht es **nicht** aus, dass Sie in der Story im Entwurf-Modus auf den runden <img src="/files/yDI5FpvzNvgsu5GW6S69" alt="" data-size="line"> «Veröffentlichen»-Button klicken. Bitte stellen Sie auch sicher, dass Sie in der Story-Übersicht den Schalter der entsprechenden Story wieder auf <img src="/files/BpEa4V86NFQFdQut15oJ" alt="" data-size="line">aktiv schalten.


# Vorschau und Testen Ihres Chatbots

Die Story, die Sie sich im Story Builder gebaut haben, können Sie entweder über die Vorschau-Funktion im Story Builder oder auf einer von uns aufgesetzten Test-Webseite direkt im Web betrachten und selber durchspielen.

## Vorschau im Story Builder <a href="#vorschau-im-story-builder-0-0" id="vorschau-im-story-builder-0-0"></a>

Sie finden die Vorschau ganz unten rechts im Story Builder. Für die Vorschau können Sie einfach auf den runden Chatbot-Avatar am unteren rechten Bildschirmrand klicken, und der Chatbot öffnet sich. Abhängig davon, ob Sie sich im Entwurf- oder Live-Modus befinden, wird Ihnen die entsprechende Story angezeigt.

<figure><img src="/files/X0EAYISVOT6ga87riRXe" alt=""><figcaption></figcaption></figure>

## Vorschau im Web <a href="#vorschau-im-web-0-1" id="vorschau-im-web-0-1"></a>

Sie haben auch die Möglichkeit, Ihren Chatbot auf der Test-Webseite preview\.aiaibot.com direkt im Web zu betrachten.

Sie haben **im Story Builder** oder ausserhalb in **der** **Story-Liste** mit dem **Button** <img src="/files/as0HiNqEafcXnzNwjKUP" alt="" data-size="line">Live Vorschau die Möglichkeit ihre Story direkt anzusehen.

<figure><img src="/files/SzTjjo9acqsXNgkebAcn" alt=""><figcaption><p>Live Vorschau im Story Builder</p></figcaption></figure>

<figure><img src="/files/7lVOsK9W2K77uTwKuRvw" alt=""><figcaption><p>Live Vorschau in der Story-Liste</p></figcaption></figure>


# Chatbot Aussehen mit dem Styler anpassen

Sie können den Namen, die Farben, den Avatar und vieles mehr Ihres Chatbots individuell nach Ihren Wünschen designen. Dazu gehen Sie zu *Einstellungen* -> *Chatbot* und wählen anschliessend den Punkt *Aussehen*. Dort können Sie Ihre gewünschten Änderungen vornehmen und gleich mitverfolgen, wie Ihr Chatbot aussehen würde.

<figure><img src="/files/ecyhwcMXlDuNitRZ9mC4" alt=""><figcaption></figcaption></figure>

Der Chatbot lässt sich über eine Vielzahl an unterschiedlichen Anpassungen individuell gestalten.

{% hint style="warning" %}
Damit Ihre Änderungen auch übernommen werden, vergessen Sie nicht diese mit *Update bestätigen* zu speichern.
{% endhint %}

## Name und Farben

Im ersten Abschnitt lassen sich Name und Farbe Ihres Chatbots anpassen.

<figure><img src="/files/l4sLch84bJiysmyt30PH" alt=""><figcaption></figcaption></figure>

## Textanzeige und Abstand

Im Chatbot kann statischer oder dynamischer Text angezeigt werden. Der statische Text wird im Story Builder festgelegt. Der dynamische Text wird von einer AI (z.B. GPT) erzeugt.

### Text Anzeige (Statischer Text)

Der Bereich *Text Anzeige* legt fest, wie statischer Text angezeigt werden soll. Es stehen die Optionen *Auf einmal* oder *Tippend* zur Verfügung. Die Option *Tippend* gibt es in zwei Ausführungen: *normal* oder *schnell*.

### Streaming-Geschwindigkeit (Dynamischer Text)

Der von AI generierte Text wird in Blöcken geliefert. Die Optionen *Normal*, *Schnell* und *Sofort* stehen hier zur Verfügung.

### Abstand (in px)

Hier kann der Abstand des Chatbots zum unteren Bildschirmrand eingestellt werden. Es können unterschiedliche Werte für mobile und Desktop-Geräte gesetzt werden.

<figure><img src="/files/QEOsH9Msyd3DrQ5ihh9j" alt=""><figcaption></figcaption></figure>

## Element-Stil und Schrift

Chat-Elemente lassen sich auf zwei Arten Darstellen: *Standard* oder *Sprechblase*.

Ebenfalls können die Schriftgrösse und die Schriftart angepasst werden.

<figure><img src="/files/LjxoNvyJDXTHUoKuDMoU" alt=""><figcaption></figcaption></figure>

## Hintergrund

Als Hintergrund kann ein Bild gewählt werden oder eine Farbe. Wird er Chatbot auch im Vollbild-Modus angeboten, kann dafür ein eigenes Bild ausgewählt werden.

Mit der Option *Hintergrund-Opazität* (Deckkraft) kann man die Webseite, auf der der Chatbot eingebunden ist, durchscheinen lassen. Umso niedriger die Deckkraft eingestellt wird, umso mehr ist von der Website zu sehen.

<figure><img src="/files/Y6ysHindwLlzxAlcx6yb" alt=""><figcaption></figcaption></figure>

## Avatar und Logo

Der *Avatar* wird angezeigt, wenn der Chatbot noch geschlossen ist. Das *Symbol der Nachrichtenblase* wird neben jeder Nachricht angezeigt, die vom Chatbot kommt.

Das *Logo* wird bei geöffnetem Chatbot am oberen Ende des Chatfensters angezeigt.

<figure><img src="/files/cGSocO6Xa9JlktCWoyig" alt=""><figcaption></figcaption></figure>

## Position, Header und Powered by

Es besteht auch die Möglichkeit den Chatbot auf der linken Seite Ihrer Website zu positionieren. Die Standardposition ist rechts.

Der Header kann bei Bedarf ausgeblendet werden.

Ebenso ist der Hinweis "Powered by aiaibot" am unteren Ende des Chatfensters ausblendbar.

<figure><img src="/files/d3YTdL2aS1HQNl2w2IKN" alt=""><figcaption></figcaption></figure>

## Änderungen speichern

Erst nach dem Klick auf *Update bestätigen* werden Ihre Änderungen übernommen.

<figure><img src="/files/TRVtvZbYRiXXwwpc82ze" alt=""><figcaption></figcaption></figure>


# Verwendung von Variablen

In Widgets, die den Usern Interaktionsmöglichkeiten bieten, können Variablennamen angegeben werden. Zu diesen Widgets gehören: *Benutzereingabe*, *Datei-Upload*, *Entscheidung*, *AI Intent*, *Umfrage* und *Live-Chat*. Variablen werden vor allem verwendet, um Daten über den Nutzer in Erfahrung zu bringen.

Der Zweck dieser Variablen ist es, in ihnen das Resultat der Interaktion zu speichern. Diese Resultate werden dann in den User Sessions und in der Dialog Übergabe dargestellt, falls eine solche eingefügt wird, oder sie können in einem Workflow des Robot Moduls in ein externes System eingepflegt werden.

### Speichern einer Benutzereingabe in einer Variable

Dem User werden im Widget *Entscheidung* drei Auswahl-Möglichkeiten gegeben. Hinterlegt man hier eine Variable, so wird die getätigte Wahl dann in der Variable abgespeichert. Im Beispiel unten wird die Auswahl in der Variable `drink_preference` gespeichert.

![](https://help.aiaibot.com/hc/article_attachments/4408658329617/Variablen_Entscheidung_DE.PNG)

### Benutzen einer Variable

Variablen können auch während des Dialogs mit dem User verwendet werden. So kann beispielsweise durch eine Benutzereingabe nach dem Namen des Users gefragt werden. Diese Variable kann dann im Text-Widget eingebaut werden, um den Namen darzustellen und dem User eine personalisierte Interaktionserfahrung zu bieten.

Die Variable `name` kann dann im *Text* Widget verwendet werden, um den Benutzer direkt anzusprechen. Durch Klick auf das Variablen Icon, kann die Variable im Fliesstext eingebettet werden.

<figure><img src="/files/8dCXcqJz3G3aPdlXSvql" alt=""><figcaption></figcaption></figure>

### Löschen unbenutzter Variablen

Variablen die im Projekt weder in einer Story noch einem Workflow verwendet wurden lassen sich unter Einstellungen, im Reiter *Allgemein*, alle gleichzeitig löschen.

<figure><img src="/files/2nlDb2P7b7x54XsB6FLo" alt=""><figcaption></figcaption></figure>


# Trigger

Trigger sind dazu da, dass Ihre [Story](/chatbot/stories-and-story-builder/was-ist-eine-story) beginnen kann. Sie lösen Ihre Story an einer von Ihnen festgelegten Stelle auf Ihrer Website aus.

Wie viele Trigger <img src="/files/RAUrQ72aKXFZsEdbpFp9" alt="" data-size="line">es jeweils für eine Story gibt sehen Sie in Ihrer Story-Übersicht im Chatbot-Modul:

<figure><img src="/files/KPZL9LWT8gfUFQRbAHIe" alt=""><figcaption></figcaption></figure>

Wenn keine Zahl neben dem Trigger Icon steht, wurde noch kein Trigger für diese Story definiert.

## Trigger erstellen

Um einen neuen Trigger für eine Story zu erstellen, klicken Sie auf das Trigger <img src="/files/RAUrQ72aKXFZsEdbpFp9" alt="" data-size="line"> Symbol in der entsprechenden Zeile. Im dann zu sehenden Fenster klicken Sie auf *Trigger hinzufügen:*

<figure><img src="/files/xVtJJVRjs2Q3AII2R73J" alt="" width="563"><figcaption></figcaption></figure>

Anschliessend öffnet sich ein Fenster in dem Sie die Einstellungen für Ihren Trigger vornehmen können:

<figure><img src="/files/gsr0p197DitC9SNyfanA" alt="" width="563"><figcaption></figcaption></figure>

### Domain-Einstellungen

Im linken Bereich *Domain-Einstellungen* können Sie einen Pfad angeben, unter dem dieser Tirgger ausgelöst werden soll. Dadurch können Sie steuern, auf welcher (Unter-)Seite Ihrer Webseite welche Story ausgespielt wird. Es ist wichtig, dass die [Domain in den Chatbot-Einstellungen](/chatbot/integration/domains-konfigurieren) konfiguriert und die richtige [Integration](/chatbot/integration) vorgenommen worden ist.

{% hint style="warning" %}
Der Pfad muss immer mit einem Schrägstrich (/) beginnen.
{% endhint %}

Möchten Sie den Trigger nicht auf einen Pfad beschränken sondern auf allen Seiten auslösen, dann aktivieren Sie *Auf allen Seiten anzeigen*. Es wird dann automatisch ein `*` in das *Pfad* Feld eingetragen.

#### + Event hinzufügen

Voraussetzung für den Einsatz dieses Triggers sind **JavaScript-Kenntnisse**. Zusätzlich wird der Zugang zum "Source Code" der Webseite benötigt. Der Event-Name, der im Trigger definiert wird, muss via JavaScript abgesendet werden.

<figure><img src="/files/R3EHAO7YK3V7HHMSbR7R" alt="" width="386"><figcaption></figcaption></figure>

Hier ein Beispiel für den JavaScript Code zum Auslösen eines Custom Events mit dem Namen *custom-event*:

```javascript
const event = new Event('custom-event');
document.dispatchEvent(event);
```

#### + Domain hinzufügen

Wenn der Trigger nur unter einer bestimmten Domain ausgelöst werden soll, dann kann diese unter *+ Domain hinzufügen* angegeben werden.

<figure><img src="/files/I2eJyfw4Ks78hd2qQ3cx" alt="" width="392"><figcaption></figcaption></figure>

#### + Query hinzufügen

Ein Trigger kann so eingestellt werden, dass er nur dann ausgelöst wird, wenn in der URL gewisse Query-Parameter vorhanden sind. Es können mehrere Query-Parameter definiert werden.

<figure><img src="/files/QVCAeRLBmPhKHosssbba" alt="" width="398"><figcaption></figcaption></figure>

Ein Query-Parameter besteht aus einem Namen und einen Wert. Es stehen folgende Operatoren zur Verfügung:

* ist gleich
* ist nicht gleich
* ist leer
* ist nicht leer

### Verhalten

Auf der rechten Seite kann das Verhalten des Chatbots angepasst werden, nachdem der Trigger ausgelöst wurde und eine Story startet.

#### Automatisch öffnen

Wenn die Option *Automatisch öffnen* aktiviert wird, startet der Chatbot mit einer einstellbaren Zeitverzögerung automatisch. Wird ein Wert von 0 Sekunden eingestellt, öffnet sich der Chatbot unmittelbar beim Aufruf der Webseite.

<figure><img src="/files/iSWjSymb9PI3XOgonAlS" alt="" width="394"><figcaption></figcaption></figure>

{% hint style="info" %}
Geisternachrichten sind beim automatischen Öffnen nicht möglich.
{% endhint %}

#### Geisternachrichten

Bei geschlossenem Chatbot können nach einer gewissen Zeitverzögerung Geisternachrichten angezeigt werden. Diese sollen den Benutzer animieren, mit dem Chatbot zu interagieren.

<figure><img src="/files/n33cThD1v22gIy0b8Dkh" alt="" width="398"><figcaption></figcaption></figure>

Wird die Webseite mehrmals vom selben Benutzer besucht, kann das Anzeigen von Geisternachrichten nicht immer erwünscht sein. Unter *Zeitspanne* kann eine Dauer festgelegt werden, nach deren Ablauf der Benutzer erneut die Geisternachricht angezeigt bekommt.

Ein Wert von 0 Stunden bedeutet, dass die Geisternachrichten bei jedem Besuch der Webseite angezeigt werden. Wird beispielsweise ein Wert von einem Tag eingestellt, bekommt der selbe Benutzer erst nach 24 Stunden die Geisternachricht erneut zu sehen.

#### Gerätetyp

Ein Trigger kann unabhängig vom Gerätetyp ausgelöst werden. Es ist aber auch möglich, das Auslösen nur bei mobilen oder Desktop-Geräten zu erlauben

<figure><img src="/files/dIYJ7axTvm3wg9SIsP5b" alt="" width="350"><figcaption></figcaption></figure>

#### Nutzungsbedingungen

Ist eine Zustimmung zu Nutzungsbedingungen **nicht** erwünscht, so kann dies mit der Option *Zustimmung zu Nutzungsbedingungen ist nicht erforderlich* aktiviert werden. Die Story beginnt sofort nach dem Öffnen des Chatbots, ohne zusätzliche Zustimmung des Benutzers.

<figure><img src="/files/MwoRJHQ6ZfYy1NBHCjFk" alt="" width="350"><figcaption></figcaption></figure>

#### Vollbild Optionen

Mit der Option *Im Vollbild-Modus öffnen* wird der Chatbot automatisch so geöffnet, dass er den ganzen Bildschirm einnimmt. Dies ist auf mobilen Geräten empfohlen.

Soll es dem Benutzer gestattet sein, zwischen Fenster und Vollbild-Modus zu wechseln, kann dies mit der Option *Wechsel zwischen Fenster und Vollbild-Modus erlauben* erreicht werden.

<figure><img src="/files/4mHaA28ua7c6fExA49BI" alt="" width="350"><figcaption></figcaption></figure>

## Trigger verwalten

Gibt es für eine Story einen oder mehrere Trigger, so erscheinen dies nach dem Klick auf das Trigger <img src="/files/RAUrQ72aKXFZsEdbpFp9" alt="" data-size="line"> Symbol in der entsprechenden Zeile.

<figure><img src="/files/Uws3ndL1zdv1f11AfZDF" alt="" width="563"><figcaption></figcaption></figure>

#### Trigger Reihenfolge

Besucht ein Benutzer ihre Webseite, wird die Liste der Trigger von oben nach unten durchsucht bis ein Treffer gefunden wird. Daher kann es notwendig sein, die Reihenfolge zu verändern. Dies kann mit dem <img src="/files/OPVSILvXQnhGXpnayvEH" alt="" data-size="line"> Symbol durchgeführt werden.

#### Löschen und Aktivieren/Deaktivieren

Mit dem Schalter <img src="/files/BpEa4V86NFQFdQut15oJ" alt="" data-size="line">kann ein Trigger aktiviert bzw. deaktiviert werden. Hinter dem <img src="/files/tLadKRBVAM7DxEDhsMhR" alt="" data-size="line"> Menü befinden sich Optionen um einen Trigger zu bearbeiten oder gänzlich zu löschen.


# User Sessions

Die User Sessions-Seite ist eine Übersicht, in der Sie die Kontakte aller User mit Ihren [Storys](https://help.aiaibot.com/hc/de/articles/360012201917) einsehen können. Kommt eine Person zum ersten Mal auf eine Webseite, auf der ein aiaibot Chatbot integriert ist, wird für sie eine **zufällige User ID** generiert und in den Cookies gespeichert. Ab diesem Moment werden alle Chatbot Sessions dieser Person im gleichen Browser dieser User ID zugewiesen.

Auf der User Sessions-Seite können die Interaktionen der Benutzer mit dem Chatbot eingesehen werden. Die Seite teilt sich in die folgenden Bereiche

* **Filter** (oben)
* **User Sessions** (links)
* **Chatbot- und User-Interaktionen** (rechts)

<figure><img src="/files/aqtC2FUSfUMvXlmWeE7o" alt=""><figcaption></figcaption></figure>

## Filter

Durch die Filter können eine oder mehrere Optionen gleichzeitig gefiltert werden. Die folgenden Optionen stehen zur Verfügung:

* UID: Es kann auf eine UID im oberen Bereich geklickt werden, um auf alle Sessions dieses Benutzers zu filtern
* Zeitraum: Der Zeitraum, in dem die Session gestartet hat
* Start Story: Die Story, mit der die Session gestartet hat
* Interaktion: Es kann gefiltert werden, ob Interaktionen durch den Benutzer stattgefunden haben. Weitere Filter-Optionen: Dateiuploads, Benutzereingaben
* Benutzertyp: Es kann auf Live-Benutzer oder Preview-Benutzer gefiltert werden

## User Sessions

Im linken Bereich gibt es eine Vorschau der stattgefundenen User Sessions. Um unteren Bereich können durch Pagination weitere Sessions aufgerufen werden. Die Vorschau zeigt den Startzeitpunkt der Session, sowie sie erste Benutzereingabe in dieser Session. Um Details im rechten Bereich anzuzeigen, einfach auf eine Session klicken.

## Chatbot- und Userinteraktionen

In diesem Bereich werden die Ausgaben des Chatbots sowie die Eingaben des Benutzers dargestellt.

Im oberen Bereich finden sich Metadaten zur Session, wie Zeitpunkt und Geräteinformationen. Die UID und Start-Story können angeklickt werden, um diese zu einem Filter zu übernehmen. Das Label zeigt an, ob es sich um einen Live- oder Preview Benutzer handelt.

<figure><img src="/files/oh3zJ8UgsTvg1fYYiKy5" alt=""><figcaption></figcaption></figure>

Im Hauptbereich befinden sich die Ausgaben des Chatbots auf der linken Seite und die Eingaben der Benutzer auf der rechten Seite.

<figure><img src="/files/LUDQm8tF8uS6WUr0PiDp" alt=""><figcaption></figcaption></figure>

Jedes Element zeigt den Typ des Elements (z.B. HTML, User Input, Button Group usw.) sowie die verwendete Variable, um den Wert zu speichern. Im rechten oberen Bereich ist zudem die Start-URL angegeben: Die URL, auf der der Benutzer mit dem Chatbot interagiert hat.

Im der Erweitert-Ansicht, werden zusätzlich alle nicht visuellen Elemente aus dem Chatbot angezeigt (z.B. das Setzen von Variablen, das Ausführen von Workflows usw.)

<figure><img src="/files/AXLgMxCGANnfHKznyV7H" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Mehr Informationen zur Cookie-Nutzung von aiaibot finden Sie in unserer [Datenschutzerklärung](https://www.aiaibot.com/de/datenschutz) unter Punkt 10.
{% endhint %}


# Widgets

Widgets sind die Bausteine aus denen eine Story aufgebaut ist. Es gibt eine Reihe an Widgets, die im Story Builder auf der rechten Seite ersichtlich sind.

<figure><img src="/files/22Ei3z8IP3B7GBpRLgAW" alt="" width="563"><figcaption></figcaption></figure>

Ein Widget kann mittels Drag'n'Drop an der gewünschten Position in der Story platziert werden. Um das Widget am Ende der Story einzufügen, reicht ein einfacher Klick auf den Namen des Widgets.

Nicht jedes Widget kann überall in der Story verwendet werden. Ist ein Widget ausgegraut, so ist die Verwendung nicht möglich.


# Modifier

Modifier bieten erweiterte Einstellungsmöglichkeiten für Widgets an, die das Verhalten des Widgets in der Story verändern. Je nach Widget stehen unterschiedliche Modifier zur Verfügung. Um Modifier zu erstellen, bearbeiten oder löschen klicken Sie auf das entsprechende Icon im Widget:

<figure><img src="/files/zN8fg2q2iBA88cukt3NS" alt="" width="338"><figcaption></figcaption></figure>

Um einen Modifier hinzuzufügen, wählen Sie ihn aus der Liste aus und klicken anschliessend auf *Hinzufügen*.

<figure><img src="/files/0agNpTPCGanMz80cksu1" alt="" width="335"><figcaption></figcaption></figure>

{% hint style="info" %}
Ein Widget kann durch mehr als einen Modifier verändert werden.
{% endhint %}

## Individuelle Anzeigedauer

Dieser Modifier legt die Zeit in Sekunden fest, bis das nächste Element in der Story angezeigt wird.

<figure><img src="/files/FJLro5MEwHpw1gI3LnQW" alt="" width="332"><figcaption></figcaption></figure>

## Messaging-API

Die beiden Modifier *Nicht für Messaging-API anzeigen* bzw. *Nur für Messaging-API anzeigen* steuern das Verhalten des Widgets, wenn die Story über die Messaging-API ausgespielt wird.

*Nicht für Messaging-API anzeigen* bedeutet, dass dieses Widget übersprungen wird, wenn die Story über die Messaging-API ausgespielt wird.

*Nur für Messaging-API anzeigen* bedeutet, dass dieses Widget nur angezeigt wird, wenn die Story über die Messaging-API ausgespielt wird.

## Einmalige Anzeige

Wird dieser Modifier hinzugefügt, so wird das Widget dem Benutzer nur einmal angezeigt. Besucht der selbe Benutzer Ihre Webseite erneut, wird dieses Widget übersprungen und nicht angezeigt.

## Vergrössern des Bildes nicht erlauben

Das Widget *Medien* kann mit dem Modifier *Vergrössern des Bildes nicht erlauben* versehen werden. Dadurch wird die Option das Bild zu vergrössern nicht angezeigt.

## Fokus

Der *Fokus* Modifier steht im Widget *Medien* zur Verfügung. Damit wird ein Bild auf den gesamten Bereich des Chatbots ausgedehnt.

<figure><img src="/files/fUQCYjpwcLyuyP0ofunq" alt="" width="330"><figcaption></figcaption></figure>

## Benutzerdefinierte Eingabeüberprüfung

Mit dem Widget *Benutzereingabe* können Eingaben vom Benutzer abgeholt werden. Diese Eingaben können einer erweiterten Prüfung unterzogen werden.

<figure><img src="/files/PnroC78AeP1Moe04bhhH" alt="" width="375"><figcaption></figcaption></figure>

Die Eingabe des Benutzers kann mit einem Regulären Ausdruck überprüft werden. Sollten noch komplexere Prüfungen notwendig sein (z.B. existiert die eingegebene Kundennummer im CRM), dann kann ein Robot Workflow aufgerufen werden der diese Überprüfung dann durchführt.

## Beispiele

Der Modifier *Beispiele* steht im Widget *Benutzereingabe* zur Verfügung. Es können vorgefertigte Beispiel-Eingaben für den Benutzer hinterlegt werden, aus denen die Auswahl optional erfolgen kann. Ein freitextliche Eingabe ist weiterhin möglich.

<figure><img src="/files/aOSi4uCrLvB88qdqWVRd" alt="" width="375"><figcaption></figcaption></figure>

## Beispiel-Adresse

Mit dem Modifier *Beispiel-Adresse* kann dem Benutzer ein Beispiel gezeigt werden, wie eine Adresse eingegeben werden soll.

<figure><img src="/files/63NRrXPUqFHR2CYSCKUt" alt="" width="375"><figcaption></figcaption></figure>

## Details nicht anzeigen

Das Widget *Datei-Upload* bietet den Modifier *Details nicht anzeigen* an. Wird eine Datei zum Chatbot hochgeladen, werden bei Verwendung dieses Modifiers keine Details der Datei (Dateityp und -grösse) angezeigt.

## Karussell-Optionen

Das Widget *Karussell* kann mit Hilfe des Modifiers *Karussell-Optionen* zusätzlich angepasst werden. Jede Option ist mit einer entsprechenden Beschreibung gekennzeichnet.

<figure><img src="/files/1PCAArihJ1kS8flvHWB2" alt="" width="341"><figcaption></figcaption></figure>

## Benutzerinteraktion erforderlich

Das *Umfrage* Widget kann so angepasst werden, dass der Benutzer damit interagieren muss, um mit der Story fortzufahren. Der Schieberegler muss mindestens einmal vom Benutzer verändert werden.

## Nicht nach Name fragen

Ist in der Story die Übergabe an einen Live-Chat geplant, so kann das Widget *Live-Chat* dafür verwendet werden. Mit dem Modifier *Nicht nach Namen fragen* wird vor dem Live-Chat nicht nach dem Namen des Benutzers gefragt.

## Nicht automatisch übersetzen

Variablen können mit dem Widget *Variable* einen Wert zugewiesen bekommen. Der Modifier *Nicht automatisch übersetzen* verhindert, dass der Variablenwert beim automatischen Übersetzen der Story auch übersetzt wird.


# CTA / Call-to-action

Das CTA Feature erlaubt es im Chatbot Buttons einzublenden, welche unabhängig vom Dialogverlauf genutzt werden können.

{% hint style="info" %}
Um das CTA Widget in einer Story zu benutzen, muss zuerst eine Konfiguration erstellt werden. Eine Konfiguration enthält alle Buttons eines CTAs.
{% endhint %}

<figure><img src="/files/vFVQjyBBjnTKCMoo37iR" alt=""><figcaption></figcaption></figure>

Ein Button kann eines der folgenden Ziele/Aktionen ausführen:

* **Workflow**
  * nach Ausführung des Workflows kann der Benutzer den Dialog an derselben Stelle fortsetzen. Nachrichten, die während der Ausführung vom Workflow gesendet werden, werden dem Benutzer normal angezeigt
* **URL**
  * öffnet in neuem Browsertab
* **Story**
  * der Dialog wird in der verlinkten Story fortgesetzt (Beginn der Story oder [Go-To-Ziel](/chatbot/widgets/go-to-ziel) möglich).

<figure><img src="/files/v1iR0sLA4JwrtaxE8Ayq" alt=""><figcaption></figcaption></figure>

Übersetzungen für die Anzeigetexte der Buttons können über den Tab Translation hinzugefügt werden.

Nachdem eine Konfiguration erstellt wurde, kann diese im Story Builder im CTA Widget genutzt werden.

Dazu stehen die folgenden Optionen zur Verfügung:

* *CTA anzeigen*: Es muss nun einen Konfiguration gewählt werden. Die ausgewählte CTA Konfiguration wird dem Benutzer im Chatbot angezeigt. Im Chatbot kann der Benutzer einen der CTA Buttons klicken und damit die hinterlegte Aktion auslösen.
* *CTA ausblenden*: Alle CTAs werden an dieser Stelle für den Benutzer im Chatbot ausgeblendet
* *CTA zurücksetzen*: Um das CTA wieder in den ursprünglichen Zustand zurückzusetzen. Nachdem ein Button von einem Benutzer angeklickt wurde, verschwindet dieser Button. Um die CTA Konfiguration wieder vollständig anzuzeigen, kann diese Option genutzt werden.

<figure><img src="/files/zRKgV65cZlBxR20WJpbE" alt=""><figcaption></figcaption></figure>

Im Webchat werden die CTAs an der Unterseite angezeigt

<figure><img src="/files/zJEMrWxowv7gfQhHljqf" alt="" width="284"><figcaption></figcaption></figure>

Fullscreen Ansicht

<figure><img src="/files/eW4M0o89ASMRZUDKy6wI" alt=""><figcaption></figcaption></figure>


# Ghost message

<figure><img src="/files/cYBsIESDzGFxc0hgiAr6" alt="" width="343"><figcaption></figcaption></figure>

Mit dem *Ghost Message* Widget können Sie Nachrichten festlegen, die angezeigt werden, wenn der Chatbot geschlossen ist. Diese Nachrichten sollen den Benutzer motivieren, mit dem Chatbot zu interagieren.

Damit diese Nachrichten sichtbar sind, muss im Trigger der Story die Option [Geisternachrichten](/chatbot/stories-and-story-builder/trigger#geisternachrichten) aktiviert werden. Es ist auch möglich, mehrere Nachrichten zu konfigurieren, die dann der Reihe nach angezeigt werden.

<figure><img src="/files/UGkL5v6P8ubpzorwLr2s" alt="" width="263"><figcaption></figcaption></figure>


# Text

<figure><img src="/files/yh1J9LNPVxub7rLX9xVs" alt="" width="341"><figcaption></figcaption></figure>

Das *Text* Widget ermöglicht das Anzeigen von formatiertem Text. Neben Standardformatierungen wie **fett** oder *kursiv* können auch Emojis hinzugefügt werden.

### Variablen

Um den Text dynamischer zu gestalten, können Sie Variablen einfügen. Bei der Anzeige des Textes im Chatbot wird dann der Wert der Variable anstelle des Platzhalters dargestellt. Um eine Variable einzufügen, klicken Sie auf das Symbol für *Variablen*.

<figure><img src="/files/xgsB8bCbkrDmWMQrcsUN" alt="" width="331"><figcaption></figcaption></figure>

### Externe Links

Der anzuzeigende Text kann auch Links zu externen Seiten und Ressourcen enthalten. Um einen Link einzufügen, markieren Sie den Textabschnitt, der als Link angezeigt werden soll. Klicken Sie anschließend auf das *Links* Symbol und geben Sie die gewünschte URL (HTTP-Adresse) ein.

<figure><img src="/files/7anY7InEGhEaGFdg8HB4" alt="" width="342"><figcaption></figcaption></figure>

### Story Links

Der Text kann auch Links zu anderen Chatbot-Stories enthalten. Wenn der Benutzer auf einen Story-Link klickt, wird die aktuelle Story abgebrochen und die verlinkte Story wird fortgesetzt. Um einen solchen Link einzufügen, klicken Sie auf das *Story Link* Symbol.

<figure><img src="/files/Ciq0OnP3zJhwvWcqE6At" alt="" width="338"><figcaption></figcaption></figure>

Die verlinkte Story kann entweder von Anfang an oder ab einem definierten Punkt gestartet werden (siehe Go-To Ziel). Dies ermöglicht eine flexible Navigation innerhalb des Chatbots, je nach gewünschtem Szenario.

<figure><img src="/files/aP0YplvbzaGIwOXsS6tW" alt="" width="317"><figcaption></figcaption></figure>


# Medien

<figure><img src="/files/7a5errBScX35ckZKt9JQ" alt="" width="341"><figcaption></figcaption></figure>

Im *Medien* Widget können Bilder hochgeladen und URLs angegeben werden, die dann in der Unterhaltung ausgespielt werden. Dabei wird jeweils die Vorschau des Bildes oder des Links angezeigt. Bilder, [YouTube](https://www.youtube.com/) und [Vimeo](https://vimeo.com/) Videos wie auch [GIFs](https://giphy.com/) werden direkt in die Konversation eingebettet.

{% hint style="info" %}
Stellen Sie sicher, dass Ihre Bilder für das Web optimiert sind, damit sie eine schnelle Ladezeit haben.
{% endhint %}

Der URL dient für Bilder, Videos oder GIFs als Quelle. Um was für eine Plattform es sich jeweils handelt, wird beim Einfügen automatisch erkannt und eingestellt. Fügen Sie auch eine **alternative Beschreibung** hinzu, die den Inhalt des Bildes oder Links in sehr wenigen Worten beschreibt. Hierbei lassen sich auch Variablen verknüpfen oder erstellen, um Werte zu speichern.

Zudem stehen einige [Modifier](/chatbot/widgets/modifier) in diesem Widget zur Verfügung:

* [Fokus](/chatbot/widgets/modifier#fokus)
* [Individuelle Anzeigedauer](/chatbot/widgets/modifier#individuelle-anzeigedauer)
* [Einmalige Anzeige](/chatbot/widgets/modifier#einmalige-anzeige)
* [Vergrösserung des Bildes nicht erlauben](/chatbot/widgets/modifier#vergrossern-des-bildes-nicht-erlauben)


# Benutzereingabe

<figure><img src="/files/H2RM5IAo8XV4F2gyUPq3" alt="" width="224"><figcaption></figcaption></figure>

Das Widget *Benutzereingabe* ermöglicht den Benutzern eine Freitexteingabe. Um diese Eingabe später weiter zu verarbeiten, muss sie in einer Variable gespeichert werden. Dazu kann eine bestehende Variable ausgewählt werden oder Sie erstellen eine neue.

Es gibt fünf Typen von Benutzereingaben: **Text**, **E-Mail**, **Telefon, Datum & Zeit und Standort (für Adressen)**. Die Eingabezeichen können bei Bedarf limitiert werden. Unterstützte Zeichen sind Buchstaben, Zahlen, Sonderzeichen und Emojis.

Im optionalen Eingabefeld *Inhalt* kann eine Aufforderung an den Benutzer eingegeben werden, die dann vor dem eigentlichen Eingabefeld im Chatbot angezeigt wird.

Wenn die Option *Eingabe ist erforderlich* aktiviert ist, wird der Dialog erst dann fortgeführt, wenn der Benutzer eine Eingabe getätigt hat. Bei deaktivierter Option kann der Benutzer die Eingabe überspringen.

Das ebenfalls optionale Eingabefeld *Platzhalter* ermöglicht es, einen kurzen Text zu definieren der im Eingabefeld dargestellt wird, bevor der Benutzer zu tippen beginnt.

Mit der Option *Autofill* wird das Eingabefeld bereits mit dem Wert aus einer vorherigen Session befüllt, sofern ein Wert vorhanden ist.


# Text, E-Mail und Telefon

Bei den drei Eingabetypen **Text**, **E-Mail** und **Telefon** wird dem Benutzer ein einzeiliges Eingabefeld angezeigt. Bei **Text** kann festgelegt werden, ob die Zeichenanzahl unbeschränkt ist oder limitiert werden soll

<figure><img src="/files/NJDPDYJxm54mraoR5FAy" alt="" width="216"><figcaption></figcaption></figure>


# Datum und Uhrzeit

Der Eingabetype **Datum und Uhrzeit** zeigt im Chatbot einen Kalender (mit Uhrzeit) an, um dem Benutzer eine komfortable Eingabe zu ermöglichen. Es können unterschiedliche Eingaben erfolgen:

* Nur Datum
* Datum und Uhrzeit
* Datumsbereich
* Datums- und Zeitbereich

<figure><img src="/files/3sPGHu3uXTHUJITZDHAU" alt="" width="330"><figcaption></figcaption></figure>

Die gewünschte Option wird in der Auswahlbox *Konfiguration* ausgewählt. Dies beeinflusst die Eingabeaufforderung im Chatbot.

Mit dem Feld *Datum Format* kann das Format festgelegt werden, in dem das Datum für die weitere Verarbeitung abgespeichert werden soll. Es stehen zwei Formate zur Auswahl.

<figure><img src="/files/ZxupVIPu5ebwxyKHYT8t" alt="" width="328"><figcaption></figcaption></figure>


# Standort

Mit dem **Standort** Eingabetyp kann ein allgemeiner Standrot oder ein genaue Adresse vom Benutzer abgefragt werden. Der Chatbot bietet je nach gewählter Option entsprechende Untersütztung an.

<figure><img src="/files/PygnGFWgdbBiXpRxh1te" alt="" width="338"><figcaption></figcaption></figure>

Es kann festgelegt werden, ob die eingegebene Adresse in einem der unterstützten Länder (Schweiz, Deutschland oder Österreich) liegt.


# Datei-Upload

<figure><img src="/files/bMdbjL0mpioFiU00nTDl" alt="" width="338"><figcaption></figcaption></figure>

Das Widget *Datei-Upload* ermöglicht es den Chatbot-Benutzern, **bis zu 10 Dateien** mit einer Grösse von **je maximal 100 MB** hochzuladen. Es kann wie alle anderen Widgets auch per Drag & Drop Prinzip an die gewünschte Stelle in der Story platziert werden.

Im optionalen Eingabefeld *Inhalt* kann eine Aufforderung an den Benutzer eingegeben werden, die dann vor dem eigentlichen Datei-Upload im Chatbot angezeigt wird.

Bei den **erlaubten Datei-Typen** wird definiert, welche Art Datei-Typ von den Nutzern hochgeladen werden kann. Es können entweder alle Typen zugelassen oder eine Einfach- oder Mehrfachauswahl gemacht werden. Folgende Formate werden jeweils akzeptiert:

* **Dokument:** .pdf, .txt, .rtf, .csv, .odt, .ods, .odp, .docx, .pptx, .xls, .xlsx
* **Bild:** jpeg, png, gif, svg, xml
* **Video:** mp4, quicktime, H264, H265

Die hochgeladenen Dateien können in einer Variable abgespeichert werden. Dies ist vor allem dann sehr nützlich, wenn zur weiteren Bearbeitung ein Robot Workflow herangezogen wird.<br>


# Datei-Download

<figure><img src="/files/Eu3Jw11oRoO7G2teCwFo" alt="" width="337"><figcaption></figcaption></figure>

Mit dem Widget *Datei-Download* können Sie dem Chatbot-Benutzer eine Datei zum Download anbieten.

Im optionalen Eingabefeld *Inhalt* können Sie eine Beschreibung der Datei eingeben, die vor dem Download im Chatbot angezeigt wird. Der *Datei-Titel* wird als Überschrift angezeigt, sobald die Datei zum Download bereitsteht.

Als Quelle kommen in Frage:

* **Upload:** Laden Sie direkt eine Datei hoch, die dann zum Download angeboten wird.
* **URL:** Geben Sie eine URL an, von der die Datei heruntergeladen werden kann.
* **Variable:** Wählen Sie eine Variable aus, welche die Datei beinhaltet. Diese Option ist vor allem im Zusammenhang mit Robot Workflows interessant.

Das Ergebnis des Downloads kann in einer Variable zur späteren Weiterverarbeitung abgespeichert werden.


# Dynamische Liste

<figure><img src="/files/Cm48EEOP1lrax3a9mlZd" alt="" width="344"><figcaption></figcaption></figure>

Mit dem *Dynamische Liste* Widget können Sie dem Chatbot-Benutzer eine Liste mit Optionen anzeigen, aus der dann eine Auswahl getroffen werden muss. Es stehen zwei Darstellungsformen für die Liste zur Verfügung: **Liste** und **Karussell**.

### Liste

Die Option **Liste** bietet dem Benutzer eine einfache Möglichkeit, aus verschiedenen Optionen auszuwählen. Neben einer Überschrift können Sie auch festlegen, ob eine Mehrfachauswahl erlaubt sein soll.

Die Listeneinträge werden aus einer Variable gelesen, die Sie unter *Quell Variable* auswählen müssen. Diese Variable kann entweder durch einen Robot Workflow befüllt werden, oder Sie nutzen das *Variable* Widget dafür. In diesem Fall müssen die einzelnen Listeneinträge durch ein Semikolon (;) getrennt in der Variable gespeichert werden.

### Karussell

Die Option **Karussell** bietet eine ansprechendere Darstellung der Auswahlmöglichkeiten für den Benutzer. Jede Option kann mit einem Bild und einem Link versehen werden. Zusätzlich wird zu jeder Option ein Button angezeigt, mit dem der Benutzer die gewünschte Auswahl treffen kann.

Die einzelnen Karten des Karussells werden mit Hilfe eines Robot Workflows erstellt. Das bedeutet, dass die ausgewählte Variable unter *Quell Variable* zuvor in einem Workflow befüllt werden muss.

{% hint style="info" %}
Eine Mehrfachauswahl ist bei einem Karussell nicht möglich.
{% endhint %}


# Karussell

<figure><img src="/files/0fEN9yHNiUiDg5ewCasU" alt="" width="341"><figcaption></figcaption></figure>

Mit dem *Karussell* Widget können Sie dem Chatbot-Benutzer mehrere Auswahlmöglichkeiten in Form eines Karussells präsentieren. Der Name des Karussells wird über den Elementen angezeigt. Zur Bestätigung der Auswahl eines Elements gibt es einen Button, dessen Beschriftung Sie im Feld *Button-Text* festlegen können.

Der Titel des vom Benutzer ausgewählten Elements kann in einer Variable gespeichert werden, die dann für die weitere Verarbeitung zur Verfügung steht.

### Karussellelemente

Mit dem Button *Element hinzufügen* können Sie ein neues Element im Karussell anlegen

<figure><img src="/files/dcYbKS64RWzEyegT5XqF" alt="" width="329"><figcaption></figcaption></figure>

Ein Element im Karussell besteht aus einem Bild und einem Titel. Optional können Sie einen längeren Beschreibungstext hinzufügen. Mithilfe der Felder *Link-Text* und *URL* kann auch ein anklickbarer Link unter dem Bild angezeigt werden.

Im Feld *External ID* können Sie eine ID hinterlegen, die später in einem Robot-Workflow ausgelesen werden kann, um die Auswahl des Benutzers weiter zu verarbeiten.

### Karussell-Optionen

Diese Widget bietet den Modifier [Karussell-Optionen](/chatbot/widgets/modifier#karussell-optionen) an. Damit kann das Verhalten und Aussehen des Karussells bearbeitet werden.


# Entscheidung

<figure><img src="/files/2YmcSk2Lbc0QJIZutG2J" alt="" width="341"><figcaption></figcaption></figure>

Durch das *Entscheidung* Widget kann der Chatbot-Benutzer entscheiden, wie er in der Konversation weitergeht und welcher Pfad eingeschlagen wird. Eine Konversation hat immer mehrere Abzweigungen. Dem Nutzer können **mindestens 1**, und **maximal 5** Entscheidungen auf einmal vorgelegt werden. Die gewählte Entscheidung der Nutzer kann in einer [Variablen](https://help.aiaibot.com/hc/de/articles/360012268678) abgespeichert werden.

Im optionalen Eingabefeld *Inhalt* können Sie einen Text eingeben, der vor der Entscheidung im Chatbot angezeigt wird.

Zusätzlich gibt es die Möglichkeit, dass der Benutzer freitextlich eine Entscheidung eingibt. Die kann durch die Option *Freitext-Entscheidung erlauben* aktiviert werden. Dabei kann dann auch ein *Platzhalter* definiert werden, der dem Benutzer im Eingabefeld angezeigt wird.


# Entscheidung Links

<figure><img src="/files/aiOjul048fSVQ93p2DVJ" alt="" width="338"><figcaption></figcaption></figure>

Mit dem Widget *Entscheidung Links* können dem Chatbot-Buntzer Links angezeigt werden, die beim Klick in einem neuen Browser-Tab geöffnet werden.

Im optionalen Eingabefeld *Inhalt* können Sie einen Text eingeben, der vor der Entscheidung im Chatbot angezeigt wird.

Der Dialog wird erst Weitergeführt, wenn der Benutzer im Dialog auf den Button *Weiter* klickt.


# AI Indent

<figure><img src="/files/fKTKxwUh29aaL3pl0aBI" alt="" width="336"><figcaption></figcaption></figure>

Voraussetzung für das *AI Intent* Widget ist ein bereits trainierter Klassifikator. Um AI Intent-Erkennung im Chatbot zu nutzen, ziehen Sie das Widget an die gewünschte Stelle.

Danach wählen Sie einen Klassifikator und die entsprechenden Kategorien aus, die an dieser Stelle eingesetzt werden sollten. Es werden nur Klassifikatoren angezeigt, die auf dieselbe Sprache wie der Chatbot eingestellt sind.

Je nach erkannter Kategorie können die Pfade dann wie beim [Entscheidungs](/chatbot/widgets/entscheidung) Widget entsprechend weitergebaut werden.

<figure><img src="/files/Vw3Lrx6E7UDOhGV8BGzU" alt=""><figcaption></figcaption></figure>

**Wird eine Kategorie nicht erkannt**, weil sie nicht konfiguriert oder ihr festgelegter Grenzwert unterschritten wurde, so wird im Chatbot der Pfad «Die Absicht des Benutzers wurde nicht eindeutig erkannt» weitergeführt.


# FAQ

<figure><img src="/files/IjlybPvCIK6mDwYUGy4J" alt="" width="341"><figcaption></figcaption></figure>

Das Widget *FAQ* ermöglicht es den Chatbot-Usern Fragen in Freitext einzugeben und darauf Antworten zu erhalten.

Die Antworten aus der FAQ-Box können dann auch mit einem Daumen hoch oder runter bewertet werden. <img src="/files/OgjTrGmE92SYU94Yoop7" alt="" data-size="line">

Um ein FAQ auszuführen, müssen im AI-Modul vorgängig ein FAQ erstellt werden.

Der optionale *Titel* wird im Dialog angezeigt, bevor der Chatbot-Benutzer seine Frage eingeben kann.


# Umfrage

<figure><img src="/files/C97RmiaqCsgnlQ4WUu1F" alt="" width="341"><figcaption></figcaption></figure>

Das *Umfrage* Widget bietet 5 verschiedene Umfragearten, die im Dropdown-Menü ausgewählt werden können:

1. NPS (Net Promoter Score)
2. CSAT (Customer Satisfaction)
3. 5 Emoji
4. 3 Emoji
5. Sterne

<figure><img src="/files/13A1TniYvNw61xkAtez7" alt="" width="310"><figcaption></figcaption></figure>

Jeder Umfrage muss ein Titel gegeben werden, damit sie auf dem KPI Dashboard identifiziert werden kann. Der Text, der im optionalen Feld *Inhalt* eingegeben wird, wird dem Chatbot-Benutzer vor der Entscheidung angezeigt. Je nachdem, was für ein Rating die Nutzer abgeben, kann der weitere Dialog unterschiedlich weitergebaut werden. Optional können Sie bei der Umfrage auch eine Variable hinterlegen, in der die Auswahl des Nutzers gespeichert wird.

### NPS (Net Promoter Score)

Der NPS erlaubt dem Nutzer, eine Zahl von **1-10** auszuwählen und ist auf die Frage ausgerichtet: «Wie wahrscheinlich ist es, dass Sie Unternehmen X einem Freund oder Kollegen weiterempfehlen werden?»

<figure><img src="/files/NKCkhXWAiglyUJJ3zhXv" alt="" width="375"><figcaption></figcaption></figure>

### CSAT (Customer Satisfaction)

Diese Umfrageart dient zur Bewertung der Kundenzufriedenheit mit einer spezifischen Leistung. Nutzer können eine Zahl von **1-5** auswählen.

<figure><img src="/files/P8hy5BdpdQgf5xLOuMFm" alt="" width="375"><figcaption></figcaption></figure>

### 5 Emoji

Durch den Einsatz von Emojis in Umfragen kann der Dialog emotionalisiert werden. Die Nutzer können sich für eines der **5 Emojis** entscheiden, die für eine immer bessere Stimmung oder steigende Zufriedenheit stehen.

<figure><img src="/files/ZqfxAbFrnRN1wYzr7pgz" alt="" width="375"><figcaption></figcaption></figure>

### 3 Emoji

Alternativ zur 5 Emoji Umfrage können Sie dem Nutzer auch nur eine Auswahl von **3 Emojis** für eine Bewertung geben.

<figure><img src="/files/4jMg8NYQmxo6ELd7pqwG" alt="" width="375"><figcaption></figcaption></figure>

### Sterne

Die Sternebewertung ist sehr oft beispielsweise bei Restaurant- oder Produkt-Bewertungen anzutreffen. Hier können die Nutzer sich zwischen **1-5 Sternen** entscheiden.

<figure><img src="/files/GqQs6L2qWqKokcotY8N2" alt="" width="375"><figcaption></figcaption></figure>


# Dialogübergabe an E-Mail

<figure><img src="/files/MwYYD9EP7769BmmtWwSc" alt="" width="335"><figcaption></figcaption></figure>

Das Widget *Dialog Übergabe an E-Mail* sammelt alle Benutzereingaben, die im gesamten Dialog aufgenommen wurden, und schickt sie an eine hinterlegte E-Mail Adresse. Diese erhält dann eine Nachricht mit einem Link, der zu den Dialoginformationen führt. Dort sind alle Variablen sowie auch der Zeitpunkt der Unterhaltung ersichtlich.

Es handelt sich hierbei um ein Konfigurationselement, welches dem Nutzer nicht angezeigt wird.

Um diese Dialog Übergabe erfolgreich umzusetzen, ziehen Sie das Widget an den gewünschten Ort im Story Builder. In der *Start-Hilfe* kann eine Nachricht für den Empfänger der hinterlegten E-Mail Adresse eingegeben werden. Dies kann zum Beispiel eine Anweisung sein, was diese Person mit den Daten machen sollte.


# Live-Chat

<figure><img src="/files/0MDQ5rZV4f4lgec2BhIt" alt="" width="343"><figcaption></figcaption></figure>

Durch das *Live-Chat* Widget können Sie Ihre Chatbot-Nutzer in einen Live-Chat auf Slack, Unblu, Microsoft Teams sowie mittels neuer Conversation-API auf Drittsysteme leiten . Wie Sie das Widget konfigurieren und einsetzen, finden Sie Schritt für Schritt in unseren Integrationen unter [Slack Live-Chat](/chatbot/integration/integration-uber-slack) oder [Unblu Live-Chat](/chatbot/integration/unblu-live-chat-integrieren) beschrieben.

Der Text im Eingabefeld *Hilfetext für Agenten* wird dem Agenten angezeigt, bevor er mit dem Chatbot-Benutzer in Interaktion tritt.

Mit der **Slack-Variante** verweilen und chatten die Nutzer im Chatbot-Fenster, mit der **Unblu-Variante** wandelt sich das aiaibot Chatbot-Fenster in ein Unblu-Fenster um. Bei beiden Varianten erhalten die Mitarbeiter jeweils auf Slack oder Unblu eine Push-Mitteilung, dass ein neuer Chat gestartet wurde.


# Story Link

<figure><img src="/files/0gasT5TILPPcF4vjmrZj" alt="" width="337"><figcaption></figcaption></figure>

Story Links werden verwendet, um den User an geeigneten Stellen im Dialog in eine andere Story weiterzuleiten. Voraussetzung dafür ist, dass die verlinkten Storys in der gleichen Sprache sowie auch aktiv und veröffentlicht sind. Zudem können hinter einem Story Link keine weiteren Widgets eingefügt werden.

#### **Eigenschaften:**

Der Story Link ist ein Konfigurationselement. Es wird dem User im Chatbot nicht angezeigt, denn es sorgt dafür, dass eine gewisse Konfiguration ausgeführt wird. Der Story Link kann nicht an erster Stelle in einer Story platziert oder in einen Pfad hinzugefügt werden, der bereits einen Story Link enthält. Es ist immer das letzte Element in einem Pfad.

#### **Zweck:**

Der Vorteil von Story Links ist, dass sie redundante Arbeit reduzieren und so verhindern, dass ein bestimmter Dialog innerhalb einer Story mehrmals eingebaut werden muss. Sie ermöglichen auch eine zentrale Verwaltung der Inhalte und unterstützen dadurch ebenfalls Skalierungen.

### Erstellen eines Story Links

**Beispiel Use-Case: Dieselbe Umfrage am Ende jedes Story-Pfades**\
In einer Story werden dem User drei Auswahlmöglichkeiten gegeben. Unabhängig davon, für welche er sich entscheidet, will man am Schluss jedes Pfades eine Umfrage durchführen, um herauszufinden, wie hilfreich der User die Interaktion mit dem Chatbot gefunden hat.

#### **Storys erstellen, die Sie verlinken wollen** <a href="#id-1-storys-erstellen-die-sie-verlinken-wollen-0-1" id="id-1-storys-erstellen-die-sie-verlinken-wollen-0-1"></a>

Dazu wird zuerst eine Story mit dem Start-Dialog und eine Story mit der Umfrage erstellt. Nehmen wir an, der Start-Dialog sieht so aus:

<figure><img src="/files/bLOxkQBelKGVf0SP3lj7" alt="" width="563"><figcaption></figcaption></figure>

#### Story Link einfügen

Um einen Link zur Umfrage-Story zu erstellen, wird via Drag & Drop das *Story Link* Widget unter dem letzten Text eingefügt. Es erscheint rechts eine Seitenleiste, in der die Story, auf die verlinkt werden sollte, ausgewählt werden kann.

<figure><img src="/files/C8vqh21nweEt2hNqusPp" alt="" width="367"><figcaption></figcaption></figure>

**Beachten Sie:** Damit eine Story ausgewählt werden kann, muss diese aktiv und publiziert sein. Die Eingabe wird durch «Speichern» bestätigt.

#### **Ansicht im Story Builder** <a href="#id-3-ansicht-im-story-builder-0-3" id="id-3-ansicht-im-story-builder-0-3"></a>

Im Story Builder erscheint nun die Bestätigung, dass die Story mit einer anderen verlinkt wurde. Es wird zudem ein Hinweis angezeigt, dass nach dem Story Link keine weitere Widgets platziert werden können:

<figure><img src="/files/4Iw2UMTf2y4TIZzQLoOm" alt="" width="375"><figcaption></figcaption></figure>

<figure><img src="/files/XWwoKAXCM1Q61IhOySJx" alt="" width="363"><figcaption></figcaption></figure>

#### Story Link prüfen

Die verlinkte Story kann direkt angeklickt werden. Dadurch wird sie in einem neuen Fenster geöffnet und kann dort bearbeitet werden. Oben im Fenster sollte das Icon angezeigt werden. Dieses weist darauf hin, dass eine andere Story auf diese verlinkt.

Wird dieses Icon angewählt, sind alle Stories ersichtlich, die auf die aktuelle Story verlinken:

<figure><img src="/files/drSJxmqP9GGxRAWRp7t5" alt="" width="351"><figcaption></figcaption></figure>

Gibt es ein Problem mit einer der Verlinkungen, so wird das Icon rot anstatt grün angezeigt. Wird auf das Icon geklickt, so wird ersichtlich, bei welcher Story ein Problem vorliegt:

<figure><img src="/files/tkAN0zmyaL9GAZmk8RL3" alt="" width="563"><figcaption></figcaption></figure>

{% hint style="info" %}
**Fehlerbehebung:** Bitte überprüfen Sie in diesem Fall, ob die entsprechende Story erstens in der Übersicht auf aktiv gesetzt und zweitens veröffentlicht ist. Im oben stehenden Fall ist die Seite zwar publiziert (Live), aber in der Übersicht noch inaktiv geschaltet.
{% endhint %}


# Sub Story

<figure><img src="/files/PJaMI0NKKF5SJPldabKy" alt="" width="332"><figcaption></figcaption></figure>

Mit dem *Sub Story* Widget kann eine andere Story in die aktuelle Story integriert werden. Im Gegensatz zum [*Story Link*](/chatbot/widgets/story-link) Widget können nach dem *Sub Story* Widget noch weitere Elemente hinzugefügt werden.

Wiederkehrende Inhalte, wie zum Beispiel die Begrüssung des Chatbot-Benutzers, lassen sich in eine separate Story auslagern und dann mithilfe dieses Widgets in andere Stories einfügen. Dies ermöglicht eine zentrale Verwaltung von abgeschlossenen Story-Elementen.

Anstatt die Story direkt auszuwählen, kann sie auch über ihre ID eingebunden werden. Diese ID muss vorher in einer Variable gespeichert werden. Wenn die Option *Werte aus Variablen laden* aktiviert ist, kann die Story anhand dieser ID ausgewählt werden.

<figure><img src="/files/IlQda1zbB7iNHBeb7q6L" alt="" width="225"><figcaption></figcaption></figure>


# Checkpoint

<figure><img src="/files/Sxbg9ozW1LDAUXFmU5sJ" alt="" width="226"><figcaption></figcaption></figure>

Checkpoints sind dazu da, herauszufinden, wie weit die User in Ihrer [Story](https://help.aiaibot.com/hc/de/articles/360012201917) gehen und welchen Weg sie jeweils nehmen. Die Checkpoints können nicht von den Usern gesehen werden, da es sich dabei um ein Konfigurationselement handelt.

#### Eigenschaften:

Es können beliebig viele Checkpoints an allen Orten innerhalb einer Story platziert werden. Wichtig ist, dass jeder einen eindeutigen Namen erhält.

#### Zweck:

Durch Checkpoints kann am Ende aufsummiert angezeigt werden, wie viele User jeweils welchen Weg genommen haben. Gezählt werden die Anzahl Male, die ein Checkpoint erreicht wurde, unabhängig davon, ob es derselbe User war oder nicht.

## So werden Checkpoints in 2 einfachen Schritten verwendet: <a href="#so-werden-checkpoints-in-2-einfachen-schritten-verwendet--0-0" id="so-werden-checkpoints-in-2-einfachen-schritten-verwendet--0-0"></a>

**Beispiel Use Case: Checkpoints nach Entscheidungen einbauen**\
Nach jeder Entscheidung kann ein Checkpoint platziert werden. So wird ersichtlich, wie viele User sich für welche Option entschieden haben.

### Checkpoint einbauen und benennen <a href="#id-1-checkpoint-einbauen-und-benennen-0-1" id="id-1-checkpoint-einbauen-und-benennen-0-1"></a>

Via Drag & Drop kann das *Checkpoint* Widget direkt nach einer Auswahlmöglichkeit platziert werden. Da der Checkpoint im untenstehenden Beispiel direkt unter «Ich suche eure Pakete» platziert wurde, ist es sinnvoll, ihn «Pakete» zu nennen.

So wird später in der Auswertung ersichtlich, wie viele sich für diese Option entschieden haben:

<figure><img src="/files/4ai3V0e8A2qh8uTwvC7l" alt="" width="563"><figcaption></figcaption></figure>

Dieser Schritt wird nun bei allen anderen Entscheidungen wiederholt.

### Auswertung analysieren <a href="#id-2-auswertung-analysieren-0-2" id="id-2-auswertung-analysieren-0-2"></a>

In der Story-Übersicht können die Auswertungen der Checkpoints einer jeweiligen Story über das KPI-Icon geöffnet werden.

Hier wird in der Tabelle «Checkpoints» angezeigt, wie viele Male eine Option gewählt wurde und wie viel die Conversion beträgt. **«Absolute»** bezeichnet die Anzahl, wie oft der Checkpoint erreicht wurde. Die **«Conversion»** zeigt an, wie viele Nutzer, die die Story gestartet haben, den jeweiligen Checkpoint überquert haben.

<figure><img src="/files/IF7TSgN0UQE0tkkjmoNF" alt="" width="563"><figcaption></figcaption></figure>


# Go-To Ziel

<figure><img src="/files/MGFvTkhJPNVq4Pt0cRf8" alt="" width="342"><figcaption></figcaption></figure>

Das *Go-To Ziel* Widget wird in Kombination mit dem [*Story Link*](/chatbot/widgets/story-link) Widget oder dem [*Text*](/chatbot/widgets/text) Widget genutzt. In diesem Fall wird in einem Text zu einem Go-to-Ziel verlinkt, dabei handelt es sich um sogenannte Text-Links.

Das *Go-To Ziel* Widget kann an einer Stelle in einer Story eingefügt werden, auf die man durch das [*Story Link*](/chatbot/widgets/story-link) Widget verlinken kann.

Ziehen Sie zur Verwendung des *Go-To Ziel* Widgets dieses per Drag & Drop an die gewünschte Stelle im Dialog. Geben Sie dem Ziel einen passenden Namen und bestätigen Sie Ihre Eingabe durch Klick auf Speichern.

<figure><img src="/files/ZWHwczrjDfJO7Aj3V34J" alt="" width="563"><figcaption></figcaption></figure>

Im [Story Builder](/chatbot/stories-and-story-builder) sieht das Go-To Ziel Widget dann wie folgt aus:

<figure><img src="/files/TjF1gxT6UG8gXfWsYd3I" alt="" width="375"><figcaption></figcaption></figure>

Ziehen Sie nun das *Story Link* Widget an die Stelle, von der aus auf das *Go-To Ziel* Widget verlinkt werden sollte. Um die Verlinkung herzustellen, wählen Sie zunächst im Dropdown-Menü die Option **Diese Story** und danach Ihr definiertes Go-To Ziel aus. Sie können hier auch anwählen, dass auf den Beginn dieser Story verlinkt werden sollte. Bestätigen Sie Ihre Eingabe erneut mit einem Klick auf Speichern.

<figure><img src="/files/eIub9jrbkOlSGS0ps7Fj" alt="" width="563"><figcaption></figcaption></figure>

Im Story Builder sieht die Verlinkung dann wie folgt aus:

<figure><img src="/files/INGmCQvZjAwFlcf85bm6" alt="" width="375"><figcaption></figcaption></figure>


# Variable

<figure><img src="/files/U9e5f5zMeMNxM23uZ6uR" alt="" width="311"><figcaption></figcaption></figure>

Mit dem *Variable* Widget können Sie [Variablen](/chatbot/stories-and-story-builder/verwendung-von-variablen) in einer Chat-Sitzung speichern und aktualisieren. Durch die Benutzereingabe bereits erfasste Variablen können verwendet werden, um einen neuen Variablenwert im Variablen Widget zu setze&#x6E;*.* Ein weiteres Beispiel für die Verwendung dieses Widgets wäre, Variablen in Kombination mit dem [Robot Modul](/robot) für einen Workflow neu zu formatieren oder darzustellen. Die neu gesetzte Variable erscheint, wie auch die Benutzereingaben, nach einer Chat-Sitzung ebenfalls in der [User Sessions Page](/chatbot/stories-and-story-builder/user-sessions).

### Hier geben wir Ihnen ein Beispiel zum besseren Verständnis der Funktionsweise dieses Widgets:

Nehmen wir an, Sie wollen den vollen Namen eines Users in nur einer Variablen abspeichern. Damit Sie aber alle Angaben des Users erhalten, fragen Sie mittels [Benutzereingabe](/chatbot/widgets/benutzereingabe) separat den vollständigen Namen ab und speichern diese Werte in den Variablen `vorname` und `nachname`. Um für spätere Zwecke direkt den vollen Namen angezeigt zu bekommen, können Sie mit dem Variablen Widget diese Werte kombinieren und in einer neuen Variablen `name` abspeichern. Dies würde wie folgt hinterlegt werden:

<figure><img src="/files/LHdDzn4tYAWXbghIt81M" alt="" width="318"><figcaption></figcaption></figure>

Diese neue Variable können Sie daraufhin auch im weiteren Chatverlauf verwenden. Sie können die Variablen auch direkt in entsprechenden Widgets, wie Benutzereingabe, Text, Medien, etc. erstellen.

Für das direkte erstellen von Variablen öffnet sich links ein Sideboard, in dem Variablen erstellt, angepasst, gelöscht und direkt überall im Projekt aktualisiert werden.

<figure><img src="/files/BrOhvajxy5tV9VxxjLMv" alt="" width="215"><figcaption></figcaption></figure>


# Robot

Das *Robot* Widget ist die Schnittstelle von Chatbot und [Robot](/robot). Durch diese zwei Funktionen können [Benutzereingaben](/chatbot/widgets/benutzereingabe) im Chatbot einen Workflow in Robot auslösen. Zudem kann dem Nutzer der Output (z.B. der Lieferstatus) direkt ausgespielt werden.

Mit dem *Robot* Widget können Sie mühelos das Chatbot-Modul mit dem Robot-Modul verbinden, um einen Workflow zu starten.

<figure><img src="/files/T6eC2ej6GH5aFNimzioU" alt="" width="273"><figcaption></figcaption></figure>

Es gibt zwei Pfade die immer bestehen: der Pfad *<*&#x53;uccess> und der Pfad *<*&#x45;rror>. Success zeigt an, ob der Workflow erfolgreich gestartet wurde, und Error, wenn dies nicht der Fall war.

Diese Pfade können umbenannt und weitere Pfade hinzugefügt werden, wie im Beispiel oben \<ok> und \<noCityProvided>.

Diese Pfade können nur im *Robot* Widget bearbeitet werden.

Sobald das *Robot* Widget dem Dialog hinzugefügt und die Pfade hinterlegt wurden, wird dies im Robot Modul in der Connectoren Ansicht angezeigt.

<figure><img src="/files/hzSjplLaItiIatAxuFV2" alt="" width="563"><figcaption></figcaption></figure>


# AI

Fragen zum Bereich AI werden hier beantwortet.


# Knowledge Base

Eine **Knowledge Base** (KB) ist eine strukturierte Sammlung von Quellen und Informationen, die als Grundlage für Antworten und Inhalte z.B. in einem Chatbot dient. Sie bietet eine zentrale Plattform, um Wissen effizient zu organisieren, zu verwalten und abzurufen.

Eine KB besteht aus verschiedenen **Quellen** (Sources).

**Semantische Suche**

Die semantische Suche ermöglicht es, Benutzeranfragen intelligent zu analysieren und relevante Informationen aus der Knowledge Base zu finden. Dabei werden nicht nur Schlüsselwörter, sondern auch der Kontext und die Bedeutung der Anfrage berücksichtigt. Die Suchergebnisse können entweder ganze Quellen oder gezielt relevante Abschnitte aus einzelnen Quellen umfassen.

Die Konfiguration und der Aufruf der semantischen Suche erfolgt über das Robot Modul.

**Erstellen einer Knowledge Base**

Beim Erstellen einer neuen Knowledge Base können der **Name** und die **Sprache** ausgewählt werden. Diese Einstellungen legen den grundlegenden Rahmen für die Struktur und Funktion der Knowledge Base fest.

<figure><img src="/files/SjXjMRwUWwLrCALnmXgR" alt=""><figcaption><p>Links unten befindet sich der Button zum Erstellen einer neuen KB</p></figcaption></figure>

**Bearbeiten einer Knowledge Base**

Eine bestehende Knowledge Base kann jederzeit bearbeitet werden. Die Bearbeitung erfolgt über das Drei-Punkte-Kontextmenü in der Knowledge Base Liste. Dies umfasst Anpassungen des Namens und der Sprache.

<figure><img src="/files/rLtMzPhbS103D2BV2yQ1" alt=""><figcaption></figcaption></figure>

**Löschen einer Knowledge Base**

Wenn eine Knowledge Base nicht mehr benötigt wird, kann sie gelöscht werden. Das Löschen erfolgt über das Drei-Punkte-Kontextmenü in der Knowledge Base Liste. Dieser Vorgang entfernt alle zugehörigen Quellen und Einstellungen aus der Plattform.


# Quelle

Eine Quelle (Source) ist eine zentrale Komponente innerhalb der Knowledge Base (KB), die spezifische Inhalte bereitstellt. Quellen sind die Bausteine, aus denen sich eine Knowledge Base zusammensetzt, und können unterschiedliche Typen und Eigenschaften haben.

### Erstellen einer Quelle

Beim erstellen einer Quelle muss sowohl ein Typ ausgewählt werden als auch ein Name festgelegt werden.

<figure><img src="/files/b8wGn90Z0pBLRW2rDCCL" alt=""><figcaption></figcaption></figure>

### Quellen-Typ

Jede Quelle hat einen Typ, der die Art der eingebundenen Daten definiert. Zu den unterstützten Typen gehören unter anderem:

* **Text**: Manuell eingetragene Texte oder Dokumente.
* **URL**: Inhalte, die über eine Webseite eingebunden werden.
* **URLPDF**: PDFs, die über eine URL eingebunden werden.

In Abhängigkeit des ausgewählten Typs können zusätzliche Optionen konfiguriert werden.

#### Erweiterte Optionen für den Typ TEXT

Für Quellen des Typs TEXT muss im Text-Feld der Inhalt für die Quelle hinterlegt werden. Als Format sollte Markdown verwendet werden. Weitere Information zur Syntax finden Sie hier: <https://www.markdownguide.org/basic-syntax/>

Optional kann auch eine URL konfugiriert werden. Bei Typ TEXT wird diese allerdings nicht gecrawlt, sondern dient lediglich als Quellenangabe.

#### Erweiterte Optionen für den Typ URL

Für Quellen des Typs URL muss statt dem Text-Feld eine URL konfiguriert werden. Diese wird nach erstellen der Source gecrawlt. Das Text-Feld wird nach dem Crawling den Inhalt der URL enthalten.

<figure><img src="/files/SlTYD64KGxMIyWur3he0" alt=""><figcaption></figcaption></figure>

Zusätzliche Konfigurationsmöglichkeiten:

1. **CSS-Selektoren**:
   * Mit CSS-Selektoren können spezifische Bereiche einer Webseite ausgewählt werden, die in die Knowledge Base aufgenommen werden sollen.
   * Mehrere CSS-Selektoren können durch Kommas getrennt angegeben werden.
     * Beispiel: `#main-content,.article-text`.
2. **Automatische Neusynchronisation**:
   * Diese Option ermöglicht es, die Inhalte der URL-Quelle regelmäßig zu aktualisieren.
   * Synchronisationsfrequenzen:
     * **Minutenweise**: Aktualisierung alle X Minuten.
     * **Stündlich**: Aktualisierung alle X Stunden.
     * **Täglich**: Aktualisierung alle X Tage.
     * **Cron-Mode**: Präzise Steuerung der Synchronisation per Cron-Expression. Weitere Informationen zur Syntax finden Sie auf [https://crontab.guru](https://crontab.guru/)
3. **Playwright-Option**:
   * Mit der Playwright-Option kann ein echter Browser simuliert werden. Dies ist besonders nützlich, um dynamische Inhalte wie JavaScript-basierte Webseiten korrekt auszulesen.
   * Wird Playwright aktiviert, wird die Webseite so dargestellt, wie sie ein Nutzer im Browser sehen würde.

#### Erweiterte Optionen für den Typ URLPDF

Dieser Typ sollte ausgewählt werden, wenn die URL ein PDF-Dokument enthält.

Für Quellen des Typs URLPDF muss (wie beim Typ URL) statt dem Text-Feld eine URL konfiguriert werden. Diese wird nach erstellen der Source gecrawlt. Das Text-Feld wird nach dem Crawling den Inhalt der URL enthalten.

Als zusätzliche Konfigurationsmöglichkeit steht ebenso die Automatische Neusynchronisation (siehe oben) zur Verfügung.

### Ansicht einer Quelle

Durch Auswahl in der Quellen-Liste kann eine bestehende Quelle jederzeit angesehen werden. Die Konfiguration ist dabei in die 3 Reiter **Details**, **Eigenschaften** und **Erweitert** aufgeteilt.

<figure><img src="/files/mbtyjLhi28AcVYLeoPi1" alt=""><figcaption></figcaption></figure>

### Eigenschaften

Bei den Eigenschaften handelt es sich um beliebige Key-Value Paare, die hinterlegt werden können. Diese können bei der semantischen Suche zur Formatierung der Suchergebnisse verwendet werden. Wird die KB durch externe Prozesse oder einem Robot-Workflow gesteuert, kann es automatisiert angelegte **Keys** geben

Zusätzlich werden beim Typ **URL** die folgenden Keys automatisch durch den Crawler basierend auf den meta tags der Website gesetzt:

* title: Titel der Webseite
* description: Beschreibung der Webseite

Zusätzlich werden beim Typ **URLPDF** die folgenden Keys automatisch durch den Crawler basierend auf der PDF gesetzt:

* total\_pages: Anzahl an Seiten im PDF

### Bearbeiten einer Quelle

Durch Auswahl in der Quellen-Liste kann eine bestehende Quelle jederzeit bearbeitet werden. Änderungen müssen aber durch den Button "Speichern" bestätigt werden.

Bei Quellen vom Typ URL oder URLPDF wird das Text-Feld automatisch durch den Crawler gesetzt. Der Text kann nach dem Crawling jedoch trotzdem noch bearbeitet werden.

Sollte allerdings bei einer manuellen Änderung gleichzeitig die automatische Neusynchronisation aktiviert sein, erhält der Nutzer beim Speicher der Quelle die Warnung, dass die automatische Neusynchronisation deaktiviert wird. Andernfalls würde die manuelle Änderung beim nächsten Crawling wieder überschrieben werden.

Umgekehrt wird der Nutzer ebenfalls vor dem Überschreiben gewarnt, wenn bei einer Quelle mit manuellen Änderungen die automatische Neusynchronisation aktiviert wird.

### Löschen oder Deaktivieren einer Quelle

<figure><img src="/files/AW5Pm8OGe8KQHz2EtcYQ" alt=""><figcaption></figcaption></figure>

Über das Drei-Punkte-Kontextmenü in der Quellen-Liste können Quellen gelöscht oder deaktiviert/aktiviert werden.

* Das Löschen entfernt die Quelle und ihre Inhalte **dauerhaft** aus der Knowledge Base.
* Das Deaktivieren entfernt die Quelle und ihre Inhalte **nicht** aus der Knowledge Base. Stattdessen können die Inhalte einer deaktivieren Quelle nicht über die semantische Suche gefunden werden.
  * Sobald eine Quelle wieder aktiviert wird, sind ihr Inhalte wieder über die semantische Suche auffindbar.


# Knowledge Base Search

### Systemübersicht

Dieses System verarbeitet Markdown-Dokumente und wandelt sie in durchsuchbare Abschnitte um, während die Dokumentstruktur für die semantische Suche erhalten bleibt.

### Verarbeitungspipeline

#### Dokumentenanalyse

Das System verwendet einen Markdown-bewussten Splitter, um Dokumente zu parsen und die Struktur zu erhalten.

#### Inhaltsaufteilung

* **Abschnitte**: Regex erkennt Markdown-Überschriften (#, ##, ###) zur Identifizierung von Inhaltsgrenzen
* **Blöcke**: Jeder Abschnitt wird zu einem Textblock unter Beibehaltung der Formatierung
* **Chunks**: Blöcke werden in kleinere durchsuchbare Einheiten aufgeteilt (ein Block = mehrere Chunks)

#### Inhaltsklassifizierung

Blöcke werden automatisch kategorisiert als:

* **Text**: Absätze, Listen, formatierte Inhalte
* **Tabelle**: Markdown-Tabellen (Pipe `|` Syntax)
* **Überschrift**: Alle Überschriftenebenen für die Navigation

### Suchmaschine

#### Abfrageverarbeitung

* Wandelt Suchanfragen in Vektoreinbettungen um
* Erstellt mathematische Darstellungen der Suchabsicht

#### Ähnlichkeitsabgleich

* Bewertungsformel: `(cosineSimilarity + 1.0) / 2.0` (0-1 Bereich)
* Beinhaltet exakte Textübereinstimmung mit Boost-Faktoren

#### Ergebniszusammenstellung

* Gruppiert Ergebnisse nach Quelldokument
* Kombiniert verwandte Blöcke mit `[...]` Trennzeichen für Lücken
* Erhält ursprüngliche Formatierung und Hierarchie
* Token-Limit: 11.000 (konfigurierbar) - priorisiert höchste Relevanz

### Hauptfunktionen

* Erhält Markdown-Struktur und -Formatierung
* Semantische Suche über Stichwortsuche hinaus
* Mehrstufige Inhaltsgranularität (Abschnitte → Blöcke → Chunks)
* Automatische Inhaltstypklassifizierung
* Intelligente Ergebniszusammenstellung mit Kontexterhaltung


# Robot

Unterstützung zu Robot bekommen Sie hier.


# Workflows

Ein Workflow ist ein automatisierter Prozess, den Sie im Robot Modul erstellen können. Um einen Workflow zu starten, braucht es einen Trigger. Diese Trigger werden auch *Connectoren* genannt. Sie sorgen für den Start des Workflows und liefern Daten, die im Workflow dann verarbeitet werden können.

Der Workflow ist aus folgenden Komponenten aufgebaut:

* Arbeitsschritte
* Entscheidungen
* Variablen

Im [Workflow Builder](/robot/workflows/workflow-builder) werden diese Komponenten erstellt, konfiguriert und miteinander verknüpft.

## Erstellen eines Workflows

Um einen neuen Workflow zu erstellen, navigieren Sie mit der Maus auf das <img src="/files/32GhkrdYgbHLeEkg44Lg" alt="" data-size="line"> Symbol am unteren Ende der Workflow Liste. Aus den darauf erscheinenden Optionen, wählen Sie *Neuen Workflow erstellen* aus. Danach öffnet sich der [Workflow Builder](/robot/workflows/workflow-builder) und Sie können mit dem Design des neuen Workflows starten.

<figure><img src="/files/1q1OXdzOhqYxBVP3vnb5" alt="" width="215"><figcaption></figcaption></figure>

## Bearbeiten eines Workflows

Um einen Workflow zu bearbeiten, klicken Sie in der Workflow Liste auf den gewünschten Workflow. Anschliessend öffnet sich der [Workflow Builder](/robot/workflows/workflow-builder) und Sie können mit der Bearbeitung des Workflows starten.

Durchgeführte Änderungen werden nicht sofort bei der nächsten Ausführung des Workflows übernommen. Erst nachdem Sie den Workflow veröffentlicht haben, sind die Änderungen wirksam. Dies ermöglicht es, den Workflows in mehreren Schritten anzupassen, ohne dabei die aktuelle Live-Version des Workflows zu beeinflussen.

Um einen Workflow zu veröffentlichen, klicken Sie auf *Veröffentlichen* am unteren Ende des Workflow Builders.

<figure><img src="/files/smjV9Q7UDNmoTfzDtVyE" alt="" width="119"><figcaption></figcaption></figure>

Danach sind alle Änderungen, die Sie am Workflow durchgeführt haben, live und werden ab der nächsten Workflow-Ausführung berücksichtigt.

## Löschen eines Workflows

Das Löschen eins Workflows ist über die drei Punkte <img src="/files/tLadKRBVAM7DxEDhsMhR" alt="" data-size="line"> am Ende einer Zeile in der Workflow Liste möglich. Nach dem Klick erscheint ein Auswahlmenü mit der Option, den Workflow zu löschen.

<figure><img src="/files/rksvLjyLdovUDWJCGKMM" alt="" width="563"><figcaption></figcaption></figure>


# Workflow Liste

In der Workflow Liste sehen Sie alle Workflows des aktuellen Projektes.

<figure><img src="/files/J2IIyxeptWkiQEXRiMax" alt="" width="563"><figcaption></figcaption></figure>

Die Spalte *Trigger* zeigt an, wie der Workflow ausgelöst wird. Außerdem sind der Name des Workflows, das Datum der letzten Aktualisierung und der letzten Ausführung ersichtlich. Mit dem Schalter in der Spalte *Aktiv* können Sie den Workflow deaktivieren oder wieder aktivieren. Ein Klick auf das Icon in der Spalte *Protokoll* öffnet das jeweilige [Ausführungsprotokoll](/robot/workflows/workflow-protokoll) des Workflows.

## Aktionen

Am Ende jeder Zeile befindet sich das Aktionsmenü, welches durch einen Klick auf das <img src="/files/tLadKRBVAM7DxEDhsMhR" alt="" data-size="line"> Symbol geöffnet wird.

<figure><img src="/files/6JHAEYMJEZ36HdcEGOFl" alt="" width="245"><figcaption></figcaption></figure>

Die Aktion *Exportieren* ermöglicht es Workflows in ein anderes Projekt zu transferieren.

Mit *Duplizieren* erstellen Sie eine Kopie des Workflows im aktuellen Projekt. Diese Aktion steht nicht für alle Workflows zur Verfügung.

Um einen Workflow zu löschen, klicken Sie auf *Löschen*.

{% hint style="warning" %}
Ein gelöschter Workflow kann nicht wiederhergestellt werden!
{% endhint %}

Die Aktion *Linked Sub-Workflow erstellen* erstellt einen neuen Sub-Workflow für diesen Workflow. Mehr zu diesem Thema lesen Sie in [Sub-Workflows](/robot/workflows/sub-workflows).

Um den Workflow in eine andere Gruppe zu verschieben, wählen Sie die Option *Zu Gruppe verschieben*.

## Workflows gruppieren

Um die Liste der Workflows übersichtlich zu halten, können Workflows in Gruppen zusammengefasst werden. Um eine Gruppe zu erstellen, gibt es mehrere Möglichkeiten:

1. Sie ziehen per Drag'n'Drop einen Workflow auf einen anderen Workflow. Dadurch wird eine neue Gruppe erstellt, die beide Workflows beinhaltet.
2. Ziehen Sie einen Workflow auf die frei Fläche am oberen Ende der Liste. Dadurch wird ebenfalls eine neue Gruppe erstellt.

<figure><img src="/files/HtYcfUFmO1xYTLmD0vBk" alt=""><figcaption></figcaption></figure>

##


# Workflow Builder

Mit dem Workflow Builder erstellen und bearbeiten Sie Ihre Workflows. Um den Workflow Builder zu öffnen, klicken Sie auf den entsprechende Workflow in der Workflow Liste.

<figure><img src="/files/4CiHl7bVGGslEPzY5L98" alt="" width="563"><figcaption></figcaption></figure>

## Linke Toolbar

In der linken Toolbar befinden sich Werkzeuge wie das automatische Ausrichten der Worksteps, das Anzeigen aller Variablen oder Einstellungen zum Timeout des Workflows.

### Automatisches Ausrichten

Mit einem Klick auf das <img src="/files/qjxjeZSPK3fBMyWSdnPT" alt="" data-size="line">*Automatisch Ausrichten* Icon werden alle Elemente des Workflows neu ausgerichtet. Dadurch ist es möglich, eine bessere Übersicht über den Workflow zu bekommen.

### Wird von Workflow aufgerufen

Handelt es sich bei dem Workflow um einen Sub-Workflow, kann mit einem Klick auf <img src="/files/xz9HXNqx72dBvDlik1Zh" alt="" data-size="line"> *Wird von Workflow aufgerufen* herausgefunden werden, welche andere Workflows diesen Workflow aufrufen. Dies ist oft nützlich um herauszufinden, ob ein Sub-Workflow überhaupt noch benötigt beziehungsweise aufgerufen wird.

### Ruft Workflow auf

Wenn ein Workflow Sub-Workflow aufruft, kann mit dem Klick auf <img src="/files/a21LoGF1r0yXnifF4Vzd" alt="" data-size="line">*Ruft Workflow auf* herausgefunden werden, welche Sub-Workflows von diesem Workflow aufgerufen werden.

### Variablen

Ein Klick auf <img src="/files/W0uFwQ0RX2cwNSL5WbnM" alt="" data-size="line">*Variablen* öffnet in der rechten Sidebar alle in diesem Workflow zur Verfügung stehenden [Variablen](/robot/workflows/variablen).

### Workflow Trigger

Alle Trigger, die diesen Workflow auslösen, können mit einem Klick auf <img src="/files/JYn6ZAnORcM6IIFQJNAS" alt="" data-size="line">*Workflow Trigger* angezeigt werden. Die Verwaltung der Trigger erfolgt in der rechten Sidebar.

### Workflow Timeout

Um das Timeout eines Workflow zu Ändern, klicken Sie auf <img src="/files/VDX5wRTufXebFHag75xx" alt="" data-size="line"> *Workflow Timeout*. In der rechten Sidebar können Sie das Timeout zwischen fünf Sekunden und 60 Minuten einstellen.

<figure><img src="/files/zl9rXGA2qOUsj1DmLlyT" alt="" width="299"><figcaption><p>Einstellen des Workflow Timeouts</p></figcaption></figure>

{% hint style="info" %}
Sollte ein Timeout von 60 Minuten nicht ausreichen, wenden Sie sich bitte an unseren Support.
{% endhint %}

### Templates

Zur Verwaltung der Templates gelangen Sie, indem Sie auf <img src="/files/moKggWpdNpdtksdre8At" alt="" data-size="line"> *Templates* klicken.

### Formatierungsmarkierungen

Unsichtbare Zeichen wie Zeilenumbruch, Tabulator oder Leerzeichen können mit einem Klick auf <img src="/files/xr2c4Tje89wDnA2aIBzY" alt="" data-size="line"> *Formatierungsmarkierungen* sichtbar gemacht werden. Die Zeichen werden dann in den Eingabefeldern von Workstep-Konfigurationen angezeigt.

<figure><img src="/files/nfIem9ms8dNMlqnNLnOA" alt="" width="375"><figcaption><p>Anzeigen von Formatierungsmarkierungen</p></figcaption></figure>

### Unbekannte Referenzen

Fehler in der Workflow-Konfiguration werden mit einem Klick auf <img src="/files/UxNe2oJPZZesw6XaCdyL" alt="" data-size="line"> *Unbekannte Referenzen* angezeigt. Dadurch ist auf einen Blick ersichtlich, ob sämtliche Konfigurationen gültig sind.

## Untere Toolbar

Dieser Bereich zeigt an, ob Sie den Workflow in der Live-Version oder Draft-Version sehen. Zusätzlich stehen Möglichkeiten zur Verfügung rasch einen anderen Workflow zu öffnen oder in das Protokoll zu wechseln.

## Edit / Publish

Dieser Butten bringt sie in den Bearbeitungsmodus das Workfows beziehungsweise erlaubt es eine Workflow zu veröffentlichen.

## Sidebar

Auf der rechten Seite befindet sich eine Sidebar die kontextbezogene Daten anzeigt. Dazu gehören die Einstellungen der Workstpes, Decisionsteps oder Workflow-Variablen.


# Workflow veröffentlichen

Änderungen am Workflow werden erst aktiv, wenn Sie ihn veröffentlichen. Nach der Veröffentlichung gelten alle Anpassungen automatisch bei der nächsten Ausführung.

Um einen Workflow zu veröffentlichen, klicken Sie auf den Button *Veröffentlichen* am unteren Ende im Workflow Builder.

<figure><img src="/files/Xzl143m8WVhy73GZWoPJ" alt="" width="171"><figcaption><p>Button zum Veröffentlichen</p></figcaption></figure>

Beim Veröffentlichen können zusätzliche Informationen eingegeben werden. Mit dem *Kommentar* können Sie beschreiben, welche Änderungen durchgeführt wurden. Dies erhöht die Wartbarkeit das Workflows.

Zusätzlich können sie einen *Version Namen* eingeben. Dieser wird in der Workflow Liste angezeigt. In Zusammenhang mit Virtuellen Workflows ist es besonders sinnvoll, gute Name für die einzelnen Versionen eines Workflows zu vergeben.

Sowohl *Kommentar* als auch *Version Name* sind optional und haben keinen Einfluss auf die Ausführung des Workflows.

<figure><img src="/files/7VgfUl9gauPbEriGRgS1" alt="" width="375"><figcaption><p>Workflow veröffentlichen</p></figcaption></figure>


# Entscheidungen

Mit Hilfe von Entscheidungen können Verzweigungen in Workflows realisiert werden. Um eine Entscheidung hinzuzufügen, ziehen Sie sie von der Sidebar auf einen freien Bereich im Workflow Builder.

<figure><img src="/files/4jPtTQeIVZr1t8mT1zFE" alt="" width="375"><figcaption></figcaption></figure>

## Entscheidungspfade

Eine Entscheidung besteht aus Pfaden. Jeder Pfad enthält eine oder mehrere Bedingungen. Pfade werden nacheinander, in der Reihenfolge in der sie definiert sind, geprüft. Der erste Pfad, dessen Bedingungen erfüllt sind, wird für die weitere Ausführung des Workflows ausgewählt.

<figure><img src="/files/Atg1R86lOCcDyokYWMwr" alt="" width="375"><figcaption><p>Entscheidung mit drei Pfaden</p></figcaption></figure>

Jeder Pfad hat einen Ausgang, der mit einem grünen Kreis <img src="/files/FOJsCI0UYGiy1YizLwmf" alt="" data-size="line"> markiert ist. Verbinden Sie diesen mit dem Workstep, der als Nächstes ausgeführt werden soll. Trifft kein Pfad zu, wird der Workstep ausgeführt, der am unteren Ende der Entscheidung mit dem <img src="/files/Ue1HFQ15sFyFVZgGJwlZ" alt="" data-size="line"> Symbol verbunden ist.

Folgendes Beispiel zeigt eine Entscheidung, an der an allen Ausgänge Worksteps angebunden sind.

<figure><img src="/files/QJeFJIj0GrDzGRtU3ZDg" alt="" width="563"><figcaption><p>Entscheidung mit drei Pfaden und dem Default-Pfad</p></figcaption></figure>

## Bedingungen

Ein Entscheidungspfad enthält Bedingungen, die überprüft werden und entweder erfüllt (`true`) oder nicht erfüllt (`false`) sind. Mehrere Bedingungen können mit einem logischen `UND` oder `ODER` verknüpft werden.

Eine Bedingung setzt sich aus einem linken Operand, einer Operation und einem optionalen rechten Operand zusammen. Als linker Operand kann immer nur eine Variable gewählt werden.

Der Operator bestimmt, ob ein rechter Operand notwendig ist oder nicht.

Als rechter Operand kann entweder eine Variable, Freitext oder eine Mischung aus beidem verwendet werden.

Im folgenden Beispiel wird die Variable `counter` überprüft, ob sie grösser als 0 ist. Dabei ist `counter` der linke Operand, `Greter than` der Operator und `0` der rechte Operand.

<figure><img src="/files/Rs1FodeeEJZjbfqA2h2a" alt="" width="289"><figcaption><p>Pfad mit einer Bedingung</p></figcaption></figure>

Mit einem Klick auf *+ Bedingung hinzufügen* erhält dieser Pfad eine weitere Bedingung. Ob alle Bedingungen erfüllt sein müssen oder nur eine entscheiden Sie über die Schaltflächen `UND` oder `ODER`. `UND` bedeutet, dass alle Bedingungen erfüllt sein müssen um mit diesem Pfad im Workflow fortzufahren. `ODER` heisst, dass nur eine der Bedingungen erfüllt sein muss.

### Operatoren

Operatoren werden in binäre und unäre Operatoren unterteilt. Ein binärer Operator benötigt einen linken und rechten Operand, zum Beispiel `Greater than`. Ein unärer Operator benötigt nur einen linken Operanden, zum Beispiel `Is empty`.

Nicht jeder Operator ist für jeden Datentyp anwendbar. Nachdem Sie den linken Operanden ausgewählt haben, werden nur mehr die passenden Operatoren in der Auswahlbox angezeigt.

#### Has value / Has no value

Mit den Operatoren `Has value` und `Has no value` können Variablen geprüft werden, ob sie *null* sind. *null* ist eine spezielle Auszeichnung einer Variable, die angibt, dass die Variable keinen Wert hat.

Diese Operatoren sind für alle Variablentypen verfügbar.

#### Equals / Not equal

Diese Operatoren können verwendet werden, um Variablen auf Gleichheit oder Ungleichheit zu prüfen.

{% hint style="warning" %}
Wenn Sie `text` Variablen mit diesen Operatoren vergleichen, wird auf die Gross- und Kleinschreibung Rücksicht genommen!
{% endhint %}

#### Equals ignore case / Not equal ignore case

Diese Operatoren können ebenfalls verwendet werden, um Variablen auf Gleichheit oder Ungleichheit zu prüfen. Es wird jedoch dabei **nicht** auf die Gross- und Kleinschreibung Rücksicht genommen.

Diese Operatoren stehen nur für die Variablentypen `text`, `email`, `phone` und `url` zur Verfügung.

#### Greater than / Lower than / Greater than or equal / Lower than or equal

Mit diesen Operatoren können Variablen nach ihrer Grösse verglichen werden. Neben Zahlen lassen sich auch Datums- und Datumswerte mit Uhrzeit vergleichen.

Diese Operatoren stehen nur für die Variablentypen `integer`, `decimal`, `date` und `datetime` zur Verfügung.

#### Contains / Does not contain

Diese Operatoren prüfen, ob etwas in einer Variable vorhanden ist oder nicht. Wird dieser Operator auf eine `text` Variable angewendet, erfolgt die Prüfung unter Rücksichtnahme von Gross- und Kleinschreibung.

Für Collections, Datumsbereich und Datumsbereich mit Zeit können diese Operatoren ebenfalls verwendet werden. Damit lässt sich zum Beispiel untersuchen, ob ein gewünschtes Element in einer Collection vorkommt oder ob ein Datum in einem gewissen Datumsbereich liegt.

Diese Operatoren stehen nur für die Variablentypen `text`, `collection`, `dateRange` und `dateTimeRange` zur Verfügung.

#### Is true / Is false

Eine Variable vom Typ `boolean` kann mit Hilfe dieser Operatoren überprüft werden, ob sie `true` oder `false` ist.

Diese Operatoren stehen nur für den Variablentyp `boolean` zur Verfügung.

#### Empty / Not empty

Diese Operatoren prüfen, ob eine Variable leer ist. Es hängt vom Typ der Variable ab, wie "leer" zu interpretieren ist. Eine Variable vom Typ `text` ist leer, wenn sie keine Zeichen enthält, also eine Länge von 0 hat.

Variablen vom Typ `collection`, `files`, `carousel`, `optionList` sind leer, wenn sie keine Elemente beinhalten.

Diese Operatoren stehen nur für die Variablentypen `text`, `collection`, `files`, `carousel` und `optionList` zur Verfügung.

{% hint style="info" %}
Ist eine Variable *null*, liefert der Operator `Empty` den Wert `true` zurück.
{% endhint %}

#### Blank / Not blank

Dieser Operator steht speziell für `text` Variablen zur Verfügung. Er entfernt Leerzeichen und Zeilenumbrüche am **Anfang** und **Ende** des Variablenwertes. Danach verhält er sich gleich wie `Empty` / `Not empty`.

Dieser Operator steht nur für Variablen vom Typ `text` zur Verfügung.

{% hint style="info" %}
Ist eine Variable *null*, liefert der Operator `Blank` den Wert `true` zurück.
{% endhint %}

#### Is after / Is before / Is after now / Is before now

Diese Operatoren erlauben das Vergleichen von Datumswerten, mit und ohne Zeit. Bei `Is after` und `Is before` muss ein Vergleichswert angegeben werden. `Is after now` und `Is before now` verwenden hingegen das Datum und die Uhrzeit der Workflowausführung.

Diese Operatoren stehen nur für die Variablentypen `date` und `datetime` zur Verfügung.

#### Is JSON object

Dieser Operator prüft ob die Variable ein JSON-Objekt oder ein JSON-Array ist.

Er steht nur für Variablen vom Typ `text` oder `json` zur Verfügung.

#### Begins with / Ends with

Diese Operatoren prüfen, ob eine Variable vom Typ `text` mit einer gewissen Zeichenkette beginnt oder endet.

{% hint style="warning" %}
Die Prüfung erfolgt unter Berücksichtigung von Gross- und Kleinschreibung.
{% endhint %}

Diese Operatoren stehen nur für Variablen vom Typ `text` zur Verfügung.

### Vergleich Has Value / Empty / Blank

<table data-full-width="false"><thead><tr><th>Value</th><th>Has value</th><th>Is empty</th><th>Is blank</th></tr></thead><tbody><tr><td><em>null</em></td><td>No</td><td>Yes</td><td>Yes</td></tr><tr><td><code>""</code> (empty text)</td><td>Yes</td><td>Yes</td><td>Yes</td></tr><tr><td><code>" "</code> (only spaces)</td><td>Yes</td><td>No</td><td>Yes</td></tr><tr><td><code>"foo"</code></td><td>Yes</td><td>No</td><td>No</td></tr><tr><td><code>" foo"</code></td><td>Yes</td><td>No</td><td>No</td></tr><tr><td><code>"foo "</code></td><td>Yes</td><td>No</td><td>No</td></tr></tbody></table>


# Anmerkungen

Verwenden Sie Anmerkungen um Ihren Workflow zu dokumentieren und zu beschreiben. Damit soll die Wartbarkeit sowie die Lesbarkeit gesteigert werden. Anmerkungen können lose platziert werden oder an ein Element angeheftet werden.

Um eine Anmerkung zu erstellen, ziehen sie *Anmerkung* von der rechten Sidebar auf eine freie Fläche im Workflow Builder.

<figure><img src="/files/cJDnPgRciV5wqO3HUyx6" alt="" width="375"><figcaption><p>Anmerkung in der Sidebar</p></figcaption></figure>

Eine Anmerkungen kann beliebigen Text beinhalten. Zum besseren Verständnis können auch Variablen eingefügt werden.

<figure><img src="/files/BHb4TDwPnjHMblFZPZqz" alt="" width="375"><figcaption><p>Hinzufügen einer Variable zur Anmerkung</p></figcaption></figure>

Nachdem die Anmerkung gespeichert wurde, kann sie bei Bedarf an ein Element angehängt werden. Benutzen Sie dazu das <img src="/files/Ue1HFQ15sFyFVZgGJwlZ" alt="" data-size="line"> Icon am unteren Ende der Anmerkung und ziehen Sie es auf das gewünschte Element.

Beispiel einer Anmerkung, mit Variable im Text:

<figure><img src="/files/FPd3JKq1M4MOVhooJBiR" alt="" width="375"><figcaption><p>Anmerkung mit Variable im Text</p></figcaption></figure>


# Variablen

Variablen sind ein zentraler Bestandteil jedes Workflows. Sie speichern die Daten, die im Workflow verarbeitet werden. Jede Variable besitzt einen Namen und einen [Datentyp](/robot/workflows/variablen/datentypen). Der Datentyp legt fest, welche Art von Daten in der Variable gespeichert werden kann.

## Gruppen

Variablen werden in vier Gruppen unterteilt:

* Projekt
* Workflow
* Event
* Benutzerdefiniert

Diese Gruppierung sorgt für eine bessere Übersicht und Organisation der Variablen. Gleichzeitig zeigt sie, woher die jeweiligen Daten stammen.

{% hint style="info" %}
Variablen der Gruppe *Projekt* und *Workflow* sind schreibgeschützt. Sie können im Workflow nicht überschrieben werden.
{% endhint %}

### Projekt

Variablen der Gruppe <img src="/files/Xm3D46v6rzi3wWVoc235" alt="" data-size="line"> *Projekt* werden im Data Store definiert und sind in allen Workflows eines Projekts verfügbar. Sie können innerhalb eines Workflows nicht überschrieben werden.

Projektvariablen eignen sich besonders dazu, projektweite Einstellungen zu speichern und in verschiedenen Workflows wiederzuverwenden.

### Workflow

Variablen der Gruppe <img src="/files/U3uHn7eRgSusWjBCBs2S" alt="" data-size="line"> *Workflow* werden vom System automatisch bereitgestellt. Es ist nicht möglich, eigene Variablen zu dieser Gruppe hinzuzufügen.

Sie enthalten Informationen über den Workflow, wie beispielsweise den Namen des Workflows.

Folgende Variablen sind in der Gruppe *Workflow* zu finden:

#### connectorId

Diese Variable beinhaltet die interne ID des Connectors der den Workflow ausgelöst hat.

#### connectorType

Diese Variable beinhaltet den Namen des Connector-Typs, der den Workflow ausgelöst hat. Mögliche Werte sind:

* `chatbot`
* `json`
* `webForm`
* `mailbox`
* `exchange`
* `timer`
* `subworkflow`

#### isRerun

Ist der Wert dieser Variable `true`, handelt es sich um einen Re-Run des Workflows. Sonst hat sie den Wert `false`.

#### projectId

Diese Variable beinhaltet die ID des Projekts, in dem sich der Workflow befindet.

#### rootConnectorId

Diese Variable beinhaltet die interne ID des Connectors der den root-Workflow ausgelöst hat. Diese ID unterscheidet sich nur dann von der Variable `connectorId`, wenn man sich in einem Sub-Workflow befindet.

#### rootConnectorType

Diese Variable beinhaltet den Namen des Connector-Typs, der den root-Workflow ausgelöst hat. Die möglichen Werte sind identisch mit den Werten der Variable `connectorType`.

#### startedAtDatetime

Diese Variable beinhaltet Datum und Uhrzeit wann der Workflow gestartet wurde.

#### startedAtDate

Diese Variable beinhaltet nur das Datum, wann der Workflow gestartet wurde.

#### workflowId

Diese Variable beinhaltet die interen ID des Workflows.

#### workflowName

Diese Variabe beinhaltet den Namen des Workflows.

### Event

Variable der Gruppe <img src="/files/zJ0RWbf10JJYNL3OdLZU" alt="" data-size="line"> *Event* enthalten die Daten, die vom Connector stammen, der den Workflow ausgelöst hat. Sie bilden den Ausgangspunkt für die Daten, die im Workflow verarbeitet werden.

Wird der Workflow beispielsweise von einem E-Mail-Connector gestartet, befinden sich in dieser Gruppe Variablen wie `subject`, `body`, `sender` und `to`. Eine vollständige Auflistung und Beschreibung finden Sie auf der Seite [E-Mail-Variablen](/robot/workflows/variablen/e-mail-variablen).

Je nach Connector können Variablen dieser Gruppe überschrieben werden.

#### Chatbot

Wird der Workflow aus einer Chatbot-Story heraus aufgerufen, befinden sich alle Eingaben des Benutzers als Variable in dieser Gruppe. Wird der Wert einer Variable überschrieben, zum Beispiel mit dem Plugin [Variablenwert setzten](/robot/plugins/diverse/variablenwert-setzen), so ändert sich auch der Wert der Variable in der Story.

### Benutzerdefiniert

Die Gruppe <img src="/files/ZhliMUwxGgqn7axtnzeP" alt="" data-size="line"> *Benutzerdefiniert* beinhaltet alle Variablen, die Sie selbst für den Workflow erstellt haben. Alle Variablen stehen sowohl lesend als auch schreiben im gesamten Workflow zur Verfügung.


# Datentypen

Im Robot spielen Variablen eine zentrale Rolle. Sie dienen dazu, Informationen während der Ausführung eines Workflows zu speichern, zu übertragen und zu verarbeiten. Jede Variable besitzt dabei einen **Datentyp**, der bestimmt, welche Art von Daten die Variable speichern kann und wie diese verarbeitet werden.

## Was sind Datentypen?

Ein **Datentyp** legt fest, welche Werte eine Variable annehmen kann und welche Operationen darauf möglich sind. Die Wahl des richtigen Datentyps ist wichtig, um die Funktionalität und Effizienz eines Workflows sicherzustellen.

Zum Beispiel:

* Der Typ **text** speichert Texte wie Namen oder Nachrichten.
* Der Typ **integer** speichert ganze Zahlen, die für Zählungen oder Berechnungen nützlich sind.
* Der Typ **boolean** speichert Wahrheitswerte wie `true` oder `false`.

Robot bietet mehrere Datentypen, die im Folgenden näher erklärt werden.

## Simple Datentypen

### **text, email, phone, url und json (Zeichenketten)**

* **Beschreibung:** Dieser Typ speichert Zeichenfolgen, also Text.
* **Beispiel:** `"Hallo, Welt!"` , `https://www.aiaibot.com`, `support@mycompany.com`
* **Verwendung:**
  * Speichern von Namen, IDs oder Nachrichten.
  * Ausgabe von Textinformationen in Benachrichtigungen.
  * Zusammensetzen von Texten mithilfe von Operationen wie Verkettung.
* **Standardwert:** `""`

### **integer (Ganzzahl)**

* **Beschreibung:** Ein Integer speichert ganze Zahlen ohne Dezimalstellen.
* **Beispiel:** `42`
* **Verwendung:**
  * Zählen von Schleifen oder Aufgaben.
  * Speichern von Mengen oder numerischen Werten (z.B. Bestellnummern).
  * Berechnungen wie Addition oder Subtraktion.
* **Standardwert:** 0

### **decimal (Kommazahl)**

* **Beschreibung:** Ein Decimal speichert Zahlen mit Dezimalstellen.
* **Beispiel:** `3.14`
* **Verwendung:**
  * Speichern von genauen Messwerten oder Währungsbeträgen.
  * Berechnungen, die Genauigkeit erfordern (z.B. Durchschnittswerte).
* **Standardwert:** 0.0

### **boolean (Wahrheitswert)**

* **Beschreibung:** Ein Boolean speichert nur zwei mögliche Werte: `true` (wahr) oder `false` (falsch).
* **Beispiel:** `true`
* **Verwendung:**
  * Entscheidungen und Bedingungen in Workflows.
  * Prüfen, ob eine Aktion erfolgreich war.
  * Steuern von Prozessverzweigungen (z.B. "Wenn Bedingung erfüllt, dann...").
* **Standardwert:** *null* **(Diese Variable hat keinen Wert, solange ihr nicht true oder false zugewiesen werden!)**

### **date (Datum)**

* **Beschreibung:** Der Date-Datentyp speichert Datumswerte.
* **Beispiel:** `2024-06-17`
* **Verwendung:**
  * Terminplanung und Fristen in Workflows.
  * Berechnungen von Zeitdifferenzen.
  * Festlegen von Erinnerungen oder Gültigkeitszeiträumen.
* **Standardwert**: *null*

### **datetime (Datum und Uhrzeit)**

* **Beschreibung:** Der Datentyp speichert sowohl das Datum als auch die Uhrzeit als Zeitstempel.
* **Beispiel:** `2024-06-17T14:30:00+02:00`
* **Verwendung:**
  * Speichern von genauen Zeitpunkten für Aktionen oder Ereignisse.
  * Berechnungen von Zeitabständen.
  * Nachverfolgen von Bearbeitungszeiten oder Logeinträgen.
* **Standardwert**: *null*

### **collection (Liste)**

* **Beschreibung:** Eine Collection speichert eine Sammlung von Werten desselben oder unterschiedlichen Datentyps.
* **Beispiel:** `[1, 2, 3]` oder `["Apfel", "Banane", "Orange"]`
* **Verwendung:**
  * Speichern von Listen oder Aufzählungen.
  * Iteration über mehrere Werte (z.B. in Schleifen).
  * Gruppierung von ähnlichen Daten.
* **Standardwert**: `[]` (= leer)

### files und file (Dateien)

* **Beschreibung:** Diese Datentypen beinhalten ein Datei (Type `file` ) oder mehrere Dateien (Typ `files`). Der Typ `files` kann ähnlich wie eine Collection betrachtet werden. Die einzelnen Einträge sind vom Typ `file`.
* **Verwendung**:
  * Anhänge einer E-Mail
  * Hochgeladenen Dateien aus dem Chatbot
* **Standardwert**: *null* für den Typ `file` und `[]` (= leer) für den Typ `files`.


# E-Mail-Variablen

Wird der Workflow von einem E-Mail-Connector ausgelöst, so befinden sich in der Gruppe *Event* folgende Variablen:

### attachments

Diese Variable vom Typ `files` beinhaltet alle Attachments der E-Mail.

### attachmentSizes

Diese Variable vom Typ `collection` beinhaltet für jedes Attachment die Grösse in *bytes*.

### attachmentTypes

Diese Variable vom Typ `collection` beinhaltet den Typ jedes Attachments. Der Typ wird als MIME-Type angegeben, also zum Beispiel `image/png` für ein Bild im PNG Format.

### body

Der Inhalt der E-Mail wird in dieser Variable vom Typ `text` gespeichert. Eventuell vorhandene HTML-Formatierungen sind dabei nicht enthalten.

### ccRecipient

Die Liste der CC-Empfänger wird in dieser Variable gespeichert. Der Typ dieser Variable ist `text`. Hat die E-Mail mehrere CC-Empfänger, werden diese durch `;` getrennt aufgelistet.

### hasAttachment

Mit dieser Variable vom Typ `boolean` können Sie feststellen, ob eine E-Mail Anhänge hat oder nicht.

### htmlBody

Ähnlich wie die Variable *body* beinhaltet auch diese Variable (Type `text`) den Inhalt der E-Mail. Hier werden HTML-Formatierungen jedoch nicht entfernt.

### inReplyTo

Diese Variable enthält die Message-ID der E-Mail, auf die geantwortet wird. (Typ `text`)

### messageId

Eine eindeutige ID der E-Mail. Diese wird beim Versenden der E-Mail automatsich generiert und lässt sich nicht beeinflussen.

### payload

Diese Variable vom Typ `file` stellt die gesamte E-Mail im Format `message/rfc822` dar.

### recipient

Die Empfänger der E-Mail werden in dieser Variable (Typ `text`) gespeichert. Mehrere Empfänger werden durch `;` getrennt aufgelistet.

### references

Diese Variable enthält alle Message-IDs des bisherigen Kommunikationsverlaufs. E-Mail-Clients nutzen diese Daten, um zusammengehörige Nachrichten als Diskussionsfaden (Thread) darzustellen.

Da es sich um mehrere IDs handeln kann, wird der Type `collection` für diese Variable verwendet.

### sender

Diese Variable vom Typ `text` beinhaltet die E-Mail-Adresse des Absenders.

### senderName

Falls der Absender auch einen Namen mitschickt, wird diese in dieser Variable (Typ `text`) gespeichert.

### sentDate

Datum und Uhrzeit des Sendezeitpunktes der E-Mail wird in dieser Variable (Typ `datetime`) gespeichert.

### subject

Der Betreff der E-Mail.


# Workflow Protokoll

Das Workflow Protokoll zeigt, wie oft und wann ein Workflow ausgeführt wurde. Jede Ausführung kann auch im Detail betrachtet werden.

<figure><img src="/files/4dw9sCediPWgbdK2HyG5" alt="" width="563"><figcaption></figcaption></figure>

Die Liste kann nach Ausführungsdatum und Ergebnis gefilterter werden. Im Feld *Suche* kann freitextlich nach Workflowausführungen gesucht werden.

Das Ergebnis einer Workflowausführung kann sein:

* `Ok`: Der Workflow wurde ohne Fehler ausgeführt.
* `Warnung`: Der Workflow wurde ausgeführt, aber es gibt eine Warnung.
* `Error`: Der Workflow wurde nicht erfolgreich ausgeführt.
* `Timeout`: Der Workflow wurde abgebrochen, weil das Timeout überschritten war.
* `Cancel`: Der Workflow wurde abgebrochen.

Um einen Workflow erneut auszuführen, klicken Sie auf das <img src="/files/SrLegKAx1i3k2Fv8O1if" alt="" data-size="line"> Symbol am Ende einer Zeile. Dadurch wird der komplette Workflow erneut ausgeführt.

{% hint style="info" %}
Bei wiederholter Ausführung des Workflows wird die aktuelle Version des Workflows verwendet. Diese kann von der Version der ursprünglichen Ausführung abweichen.
{% endhint %}

## Details

Durch einen Klick auf eine Zeile öffnet sich das Protokoll für die gewünschte Workflow-Ausführung. In dieser Detailansicht können die Arbeitsschritte und Entscheidungen genauer betrachtet werden.

<figure><img src="/files/YCQYKcTyxzLmyWtqMDqC" alt="" width="563"><figcaption></figcaption></figure>

Links sind die ausgeführten Arbeitsschritte und Entscheidungen aufgelistet. Um Details einzusehen, klicken Sie auf den gewünschten Eintrag.

Rechts erscheint die Detailansicht des ausgewählten Arbeitsschrittes oder der ausgewählten Entscheidung.

Im oberen Abschnitt sehen Sie das Ausführungsdatum, die Dauer und das Ergebnis der Workflowausführung. Ausserdem können Sie zur vorigen oder nächsten Ausführung navigieren und den Workflow erneut ausführen.

<figure><img src="/files/sh9Z2MA3nUdDIqdswMWj" alt=""><figcaption></figcaption></figure>

### Event-Quelle

Als sehr hilfreich bei der Fehlersuche erweist sich das Betrachten der Event-Quelle. Je nach Trigger kann diese direkt im Browser betrachtet werden bzw. wird beim Klick auf <img src="/files/DKON3RwM2bWQH9DeOEhn" alt="" data-size="line"> heruntergeladen.

### Detail Arbeitsschritt

Die Detailansicht eines Arbeitsschrittes beinhaltet den Namen, Ergebnis, Datum und Uhrzeit sowie die Dauer der Ausführung.

Der Tab *Eingabe und Ausgabe* zeigt Werte an, die an den Arbeitsschritt übergeben bzw. die vom Arbeitsschritt zurückgegeben wurden (*Input* und *Output*).

<figure><img src="/files/U7rHSPEu7xUTN8kKwkzV" alt="" width="563"><figcaption></figcaption></figure>

Der Tab *Variablen* zeigt einen Snapshot aller Variablen mit den Werten, die sie **nach** der Ausführung dieses Arbeitsschritt hatten.

<figure><img src="/files/DJ1tGy8H8GqUfWA3O15r" alt="" width="563"><figcaption></figcaption></figure>

### Detail Entscheidung

Eine Entscheidung besteht aus einem oder mehreren Pfaden, und ein Pfad wiederum aus einer oder mehreren Bedingungen. Welche Pfade und Bedingungen während der Workflowausführung evaluiert wurden, können Sie im Detail einsehen.

<figure><img src="/files/tcTC8NpN1lmPkQAGgN9D" alt="" width="563"><figcaption></figcaption></figure>

Für jede Bedingung eines Pfades wird angezeigt, ob sie ausgewertet wurde und welches Ergebnis vorliegt. Je nachdem, ob die Bedingungen mit `UND` oder `ODER` verknüpft sind, ist es nicht immer erforderlich, alle Bedingungen zu prüfen.


# Sub-Workflows

Je mehr Aufgaben ein Workflow erfüllen muss, desto komplexer wird er. Um die Übersichtlichkeit zu verbessern, können einzelne Teile in Sub-Workflows ausgelagert werden. Dadurch bleibt der Haupt-Workflow übersichtlicher. Idealerweise sind Sub-Workflows so gestaltet, dass sie auch in anderen Workflows wiederverwendet werden können. Das spart Zeit und verhindert, dass gleiche Schritte mehrfach konfiguriert werden müssen.

{% hint style="info" %}
Ein Sub-Workflow kann einen anderen Sub-Workflow aufrufen.
{% endhint %}

Sub-Workflows werden in zwei Kategorien unterteilt:

* **Generic Sub-Workflows**
* **Linked Sub-Workflows**

## **Generic Sub-Workflows**

Generic Sub-Workflows können von jedem anderen Workflow aufgerufen werden. Sie sind flexibel, da sie mit Parametern arbeiten, die beim Aufruf mit Variablen verknüpft werden müssen. Um einen Generic Sub-Workflow aufzurufen, verwenden Sie das Plugin [Sub-Workflow ausführen](/robot/plugins/diverse/sub-workflow-ausfuhren).

### **Parameter**

Die Parameter eines Generic Sub-Workflows werden im zugehörigen Connector definiert. Jeder Parameter besteht aus einem Namen und einem Datentyp. Diese Parameter stehen im Sub-Workflow als Event-Variablen zur Verfügung.

Wenn der Sub-Workflow den Wert einer Event-Variable ändert, wird diese Änderung automatisch in der zugeordneten Variable des aufrufenden Workflows übernommen.

## Linked Sub-Workflows

Linked Sub-Workflows sind fest mit einem bestimmten Haupt-Workflow verbunden und können ausschliesslich von diesem Workflow aus aufgerufen werden. Der Aufruf erfolgt ebenfalls über das Plugin [Sub-Workflow ausführen](/robot/plugins/diverse/sub-workflow-ausfuhren).

Im Gegensatz zu Generic Sub-Workflows benötigen Linked Sub-Workflows keine eigenen Parameter. Stattdessen stehen im Sub-Workflow automatisch alle benutzerdefinierten Variablen sowie Event-Variablen des Haupt-Workflows zur Verfügung.

Ein Linked Sub-Workflow dient dazu, sehr spezifische Aufgaben des Haupt-Workflows abzutrennen, die nicht von anderen Workflows verwendet werden sollen oder können. Der Haupt-Workflow bleibt so übersichtlich und leicht verständlich.

### Erstellen eines Linked Sub-Workflows

Um einen neuen Linked Sub-Workflow zu erstellen, klicken Sie auf <img src="/files/tLadKRBVAM7DxEDhsMhR" alt="" data-size="line"> am Ender der Zeile des gewünschten Workflows und wählen anschliessend *Linked Sub-Workflow erstellen* aus.

<figure><img src="/files/FAbPy5HeZWeTsgfGdoN2" alt="" width="563"><figcaption><p>Erstellen eines neuen Linked Sub-Workflows</p></figcaption></figure>

{% hint style="info" %}
Ein Linked Sub-Workflow kann nur aus dem Workflow heraus aufgerufen werden, für den er erstellt wurde.
{% endhint %}


# Export/Import


# Plugins

**Plugins** bieten eigenständige Funktionen, um Daten innerhalb von Workflows zu verarbeiten. Mithilfe von Ein- und Ausgabeparametern werden Daten an ein Plugin übergeben und das Ergebnis zurückgegeben.

Es steht eine Vielzahl an Plugins zur Verfügung, die eine umfangreiche Verarbeitung von Daten ermöglichen. Dazu gehören unter anderem:

* Empfangen und Senden von Daten vom bzw. an unseren Chatbot
* Aufruf von APIs von Drittsystemen (z.B. ITSM-Systemen)
* Lesen und Schreiben von Datenbanken
* Senden von E-Mails und SMS-Nachrichten
* Und viele mehr ...


# AI


# LLM aufrufen

Mit dem Plugin <img src="/files/Eov3JzhWjdgyuEDzsOqE" alt="" data-size="line"> *LLM aufrufen* können Sie Text an ein Large Language Model (LLM) schicken und die generierte Antwort im Workflow zur weiteren Verarbeitung nutzen oder direkt als Ausgabe an den Chatbot weiterleiten (streamen).

## Links

Im generierten Text des LLMs können auch Links vorkommen. Hauptsächlich passiert das wenn Kontext aus der Wissensdatenbank an das LLM übergeben wird (RAG-Prozess). Um sicherzustellen, dass keine unerwünschten Links beim Benutzer ankommen, werden nur Links erlaubt, die auch im übergebenen Kontext zu finden sind.

Zusätzlich kann mit einem [Parameter](#parameter-gultige-domains-fur-link-uberprufung) eine weitere Einschränkung auf gewisse Domains vorgenommen werden.

## Konversationshistorie

Da LLMs keine Erinnerung haben (stateless), muss bei jeder neuen Anfrage die gesamte bisherige Konversation mitgeschickt werden, um den Eindruck eines zusammenhängenden Dialogs zu erzeugen.

Wird die Option [#parameter-konversationshistorie](#parameter-konversationshistorie "mention") aktiviert, übernimmt das Plugin automatisch die Verwaltung der Konversationshistorie. Bei jeder Anfrage wird die bisherige Unterhaltung an das LLM übermittelt. Dies inkludiert auch eventuell hochgeladene Dateien.

Als erste Nachricht wird immer der [#parameter-prompt](#parameter-prompt "mention") in der Rolle `system` an das LLM geschickt. Anschliessend folgt die bisherige Konversationshistorie jeweils mit den Rollen `user` beziehungsweise `assistant`. Am Ende wird dann der [#parameter-benutzereingabe](#parameter-benutzereingabe "mention") in der Rolle `user` übermittelt.

Um eine neue Konversation zu beginnen, muss das Plugin [Konversationshistorie löschen](/robot/plugins/ai/llm-konversationshistorie-loschen) in den Workflow eingebaut werden.

## Eingabeparameter

## Parameter "AI Konfiguration"

Dieses Auswahlfeld beinhaltet die zuvor erstellten Konfigurationen, um mit einem LLM zu sprechen. [AI Konfigurationen](/robot/konfigurationen/ai-textkonfiguration) können im Menüpunkt [Konfigurationen](/robot/konfigurationen) erstellt werden. Durch die Auswahl der AI Konfiguration für die Ausführung des Plugins entsteht eine grosse Flexibilität. Unterschiedliche Use-Cases können mit speziell angepassten AI Konfigurationen effizient bearbeitet werden.

### Parameter "Prompt"

Mit diesem Parameter legen Sie das generelle Verhalten des LLMs fest. Über diesen Parameter können Sie das System gezielt an Ihre Anforderungen anpassen.

Mit dem diesem Parameter konfigurieren Sie:

* **Verhaltensregeln**: Definieren Sie, wie das LLM auf Anfragen reagieren soll.
* **Spracheinstellungen**: Legen Sie die bevorzugte Kommunikationssprache fest.
* **Grundlegende Anweisungen**: Geben Sie allgemeine Richtlinien für die Antwortgenerierung vor.
* **Statische Informationen**: Hinterlegen Sie konstante Daten, die das System berücksichtigen soll.

### Parameter "Benutzereingabe"

Dieser Parameter ist **optional**. Damit wird die Eingabe des Benutzers an das LLM übermittelt. Dies kann eine Frage aus dem Chatbot sein oder der Inhalt einer E-Mail die analysiert werden soll.

Für Workflows, die von einem Agenten ausgelöst werden, muss dieser Parameter nicht angegeben werden. Die Frage bzw. Eingabe des Benutzers wird automatisch an das LLM weitergeleitet, auch wenn dieses Feld leer bleibt.

#### Zusätzlicher Kontext

Zusätzliche Informationen, wie zum Beispiel das Ergebnis einer Wissensdatenbankabfrage, wird ebenfalls mit diesem Parameter an das LLM übergeben. Im Fall von Agenten-Workflows muss dann auch die Eingabe des Benutzers manuell hinzugefügt werden. Diese befindet sich in der Event-Variable `userInput`.&#x20;

Zum Beispiel:&#x20;

<figure><img src="/files/Gzj6i1BavHzZ0VImUGU8" alt="" width="375"><figcaption></figcaption></figure>

{% hint style="info" %}
Bekommt dieser Parameter **in Agent-Workflows** einen Wert, muss auch die Benutzereingabe manuell hinzugefügt werden!
{% endhint %}

### Parameter "Konversationshistorie"

Dieser Parameter legt fest, ob eine Konversationshistorie an das LLM übermittelt werden soll.

### Parameter "Konversations-ID"

Dieser Parameter ist **optional**. Für Workflows, die vom Chatbot oder einem Agenten ausgelöst werden, ist keine explizite Angabe einer Konversations-ID notwendig. Diese ID wird vom System automatisch verwaltet und erkannt.

Es ist jedoch möglich, eine ID der Konversation zur Verfügung zu stellen. Diese muss eine gültige UUID sein.

{% hint style="info" %}
Nur UUIDs können als Konversations-ID verwendet werden.
{% endhint %}

### Parameter "Streaming-Modus"

Wird der Workflow vom Chatbot oder dem Agent aufgerufen, kann die Antwort des LLMs direkt an den Benutzer gestreamt werden. Dadurch werden lange Wartezeiten vermieden.

{% hint style="danger" %}
Ist dieser Parameter aktiviert und der Workflow wird nicht vom Chatbot oder Agent aufgerufen, erhält man eine entsprechende Fehlermeldung im Workflow Protokoll.
{% endhint %}

### Parameter "AI Tools"

Tools stellen für das LLM eine Möglichkeit dar, sich selbstständig Informationen zu besorgen, wenn die Anfrage des Benutzers nicht aus dem Allgemeinwissen oder dem übergebenen Kontext beantwortet werden kann. Tools sind externe Funktionen, die ein LLM nutzen kann, um über das reine Textgenerieren hinaus zu agieren. Während ein LLM normalerweise nur Text produziert, ermöglichen Tools dem Modell, konkrete Aktionen durchzuführen.

Mit diesem Parameter wählen Sie die Tools aus, die bei der Beantwortung der Anfrage zur Verfügung stehen. Das Model entscheidet selbstständig, ob und welches der Tools benötigt wird.

Als Tools stehen alle Workflows zur Verfügung, die über den [AI-Funktion-Connector](/robot/connectoren/passiv/ai-funktion) getriggert werden.

### Parameter "JSON Schema"

Der JSON-Schema-Modus eines LLM sorgt dafür, dass das Modell seine Antworten strikt in einer zuvor definierten JSON-Struktur liefert. Dadurch können Ausgaben zuverlässig validiert, weiterverarbeitet und automatisiert genutzt werden. Wählen Sie die Variable, die das JSON Schema enthält.

Tools, wie zum Beispiel <https://json.ophir.dev/> helfen, ein JSON Schema zu erstellen.

{% hint style="danger" %}
Nicht jedes LLM Modell unterstützt den JSON Modus.
{% endhint %}

### Parameter "Alle Links erlauben"

Um die Richtigkeit der Antworten sicherzustellen, prüft das System standardmässig alle vom LLM generierten Links gegen den bereitgestellten Kontext. So wird verhindert, dass das Modell fiktive oder fehlerhafte Links „erfindet“ (Halluzinationen).

* Links ausserhalb des Kontexts zulassen: Falls Ihr Anwendungsfall erfordert, dass das Modell Links ausgibt, die nicht im ursprünglichen Kontext enthalten sind, können Sie diese Funktion über den Parameter "Alle Links erlauben" aktivieren. In diesem Fall werden alle generierten Links direkt an den Benutzer weitergegeben.
* Einschränkung durch Domains: Für zusätzliche Sicherheit können Sie das Feld „Gültige Domains für Link-Überprüfung“ nutzen. Damit legen Sie fest, welche Webseiten-Adressen als vertrauenswürdig eingestuft und im Ergebnis zugelassen werden.

### Parameter "Gültige Domains für Link-Überprüfung"

Die Antwort des LLMs kann auch Links beinhalten. Mit diesem Parameter können Sie diese Links auf Domains beschränken. Grundsätzlich werden nur Links an den Benutzer weitergeleitet, die auch im übergebenen Kontext vorkommen.

Mit diesem Parameter kann die Domain von Links noch zusätzlich eingeschränkt werden. Es kann eine Variable vom Typ `collection` oder `text` ausgewählt werden. Bei der Verwendung einer `text` Variable muss jede gültige Domain in einer eigenen Zeile stehen.

{% hint style="info" %}
Domains werden ohne `https://` angegeben, also zum Beispiel `aiaibot.com` .
{% endhint %}

Wird vom LLM ein Link generiert, der nicht im Kontext vorkommt oder keine gültige Domain hat, wird nur der Beschreibungstext des Links an den Benutzer weitergeleitet.

#### Beispiele

<table><thead><tr><th width="173.6624755859375" valign="top">Zulässige Domains</th><th valign="top">Gültige Links</th><th valign="top">Ungültige Links</th></tr></thead><tbody><tr><td valign="top">aiaibot.com<br>www.aiaibot.com</td><td valign="top"><p>https://aiaibot.com/<br>https://aiaibot.com/info.html</p><p>https://www.aiaibot.com/home.html<br><br></p></td><td valign="top">https://blog.aiaibot.com/story1<br>https://api.aiaibot.com/info<br>https://example.com<br></td></tr></tbody></table>

### Parameter "URL Query Parameter"

Mit dieser Einstellung können Sie zusätzliche Query-Parameter zu einer generierten URL hinzufügen.

Query-Parameter haben das Format `name=wert`. Wenn Sie mehrere Parameter hinzufügen möchten, trennen Sie diese mit einem Und-Zeichen (`&`) (z.B. `id=123&quelle=handbuch`).

{% hint style="danger" %}
Nicht alle Zeichen sind für den Namen und Wert eines Parameters erlaubt. Sie müssen ein korrektes Escaping sicherstellen.
{% endhint %}

Wenn das System (LLM) eine URL im Markdown-Format (z.B. `[Linkname](URL)`) erstellt, werden die hier definierten Parameter automatisch an das Ende der URL angehängt. Bestehende Parameter in der ursprünglichen URL werden nicht überschrieben, sondern Ihre neuen Parameter werden einfach danach angefügt.

{% hint style="info" %}
Nur URLs die im gültigen Markdown-Format vom LLM generiert werden, werden berücksichtigt.
{% endhint %}

Query-Parameter werden in einer URL mit dem Fragezeichen-Symbol (`?`) eingeleitet (z.B. `https://beispiel.ch/?parameter=wert`). Sie müssen das `?` hier nicht eingeben. Das System fügt es bei Bedarf automatisch ein.

#### Beispiele für URL Query-Parameter

* `utm_source=chatbot&utm_medium=onsite&utm_campaign=chat`
* `from=aiaibot&module=chatbot`

## Ausgabeparameter

<figure><img src="/files/ImJzpYWCp9j8dV3y6Qoq" alt="" width="285"><figcaption><p>Ausgabeparameter</p></figcaption></figure>

### Parameter "Antwort"

Dieser Parameter enthält die generierte Antwort des LLMs. Auch wenn die Antwort an den Chatbot gestreamt wird, enthält dieser Parameter die gesamte Antwort zur weiteren Verwendung im Workflow.

### Parameter "Beendigungsgrund"

Wenn die Generierung der Antwort abgeschlossen ist, kann über den Beendigungsgrund herausgefunden werden, warum das Modell keinen weiteren Text mehr generiert hat. Die wichtigsten Gründe sind:

`stop`: Dieser Grund gibt an, dass die Antwort vollständig und ohne Fehler generiert wurde.

`length`: Das Modell hat die Generierung der Antwort abgebrochen, weil die max. Anzahl an Tokens überschritten wurde. Die max. Anzahl an Tokens ist in der AI Konfiguration hinterlegt, die beim Parameter [AI KONFIGURATION](#parameter-ai-konfiguration) ausgewählt wurde.

`content_filter`: Die Generierung des Textes wurde abgebrochen, weil ein Inhaltsfilter aktiv wurde. Genauere Informationen darüber wird im nächsten Parameter gespeichert.

`rate_limit`: Es vorgegebene Limit an Requests pro Minute wurde erreicht. Eine Erhöhung kann über unseren Support angefragt werden.

`error`: Allgemeiner Fehler während der Textgenerierung.

`timeout`: Die Anfrage konnte nicht innerhalb einer gewissen Zeit beantwortet werden.

`cancelled`: Die Textgenerierung wurde vom Modell oder vom Benutzer abgebrochen.

`context_length_exceeded`: Das Kontext-Fenster des Modells ist nicht gross genug, um die Anfrage zu beantworten.

### Parameter "Inhaltsfilter"

Wenn der Beendigungsgrund `content_filter` war, kann mit diesem Parameter mehr darüber herausgefunden werden.

Die wichtigsten Inhaltsfilter sind:

* `hate`
* `hate/threatening`
* `jailbreak`
* `profanity`
* `self-harm`
* `sexual`
* `sexual/minors`
* `violence`
* `violence/graphic`
* `harassment`
* `harassment/threatening`

Diese Liste ist nicht vollständig und hängt sehr vom verwendeten Modell ab.


# LLM Konversationshistorie lesen

Mit diesem Plugin können Sie die bisherige Konversationshistorie auslesen.

<figure><img src="/files/JSOgBYVYdZ5jDL8yOs1U" alt="" width="295"><figcaption></figcaption></figure>

## Parameter "Conversation ID"

Dieser Parameter ist optional, er kann für Chatbot- und AI-Agent-Workflows leer gelassen werden. Die ID der Konversation wird automatisch vom System geführt und muss nicht extra angegeben werden.

Wenn jedoch manuell eine Conversation-ID vergeben wird (siehe Plugin [LLM aufrufen](/robot/plugins/ai/llm-aufrufen)), muss die ID auch in diesem Plugin angegeben werden, um die korrekte Historie zu laden.

## Parameter "Conversation History"

Wählen Sie eine Variable vom Typ `collection` aus, in der die Historie gespeichert werden soll. Jeder Eintrag in der Collection ist ein JSON-Objekt mit folgenden Eigenschaften:

* `role`: Gibt die Rolle des Eintrags an und kann den Wert `user` oder `assistant` haben.
* `content`: Enthält den eigentlichen Nachrichteninhalt.

### Beispiel

Das folgende Beispiel enthält eine Konversation mit vier Einträgen. Das bedeutet, dass in der ausgewählten `collection` Variable **vier Elemente** vorhanden sind.

<pre class="language-json" data-overflow="wrap" data-line-numbers><code class="lang-json"><strong>Erstes Element:
</strong>{
  "role": "user",
  "content": "Wie heißt du?"
}

<strong>Zweites Element
</strong>{
  "role": "assistant",
  "content": "Ich heiße Aibo! 😊 Wie kann ich dir helfen?"
}

<strong>Drittes Element
</strong>{
  "role": "user",
  "content": "Wer war der dritte Präsitent der USA?"
}

<strong>Viertes Element
</strong>{
  "role": "assistant",
  "content": "Der dritte Präsident der Vereinigten Staaten war **Thomas Jefferson**. Er diente von **1801 bis 1809** und ist vor allem als Hauptautor der Unabhängigkeitserklärung bekannt."
}
</code></pre>


# LLM Konversationshistorie löschen

Mit diesem Plugin können Sie die bisher aufgezeichnete Konversationshistorie zurücksetzen.

Die Konversationshistorie wird automatisch geführt, wenn das Plugin [LLM aufrufen](/robot/plugins/ai/llm-aufrufen) die Option [LLM aufrufen](/robot/plugins/ai/llm-aufrufen#parameter-konversationshistorie) aktiviert ist. Dies ist erforderlich, um einen fortlaufenden Dialog zwischen Benutzer und LLM zu simulieren, da das LLM selbst keine Informationen über frühere Anfragen speichert (stateless).

Verwenden Sie dieses Plugin, um eine neue, leere Konversation zu beginnen. Die bisherige Historie wird gelöscht.

Das Plugin besitzt keine Eingabe- oder Ausgabeparameter.


# LLM Tokenverbrauch

Mit diesem Plugin können Sie den aktuellen Tokenverbrauch für das laufende Monat einsehen. Die Auswertung bezieht sich automatisch immer auf den aktuellen Monat. Eine Auswahl oder Festlegung eines individuellen Zeitraums ist nicht möglich.

<figure><img src="/files/hxMRle9vxxlKy86Uil7v" alt="" width="293"><figcaption></figcaption></figure>

## Parameter "AI-Umgebung"

Dieser optionale Parameter ermöglicht es Ihnen, die Token-Auswertung auf eine bestimmte AI-Umgebung zu beschränken (*Text* oder *Audio*).

Wenn keine AI-Umgebung ausgewählt wird, werden die Tokens für alle verfügbaren AI-Umgebungen berücksichtigt.

## Parameter "Tokens gesamt"

Zeigt die Gesamtanzahl der im **aktuellen Monat** verbrauchten Tokens an.

## Parameter "Input-Tokens"

Gibt die Anzahl der im **aktuellen Monat** verbrauchten Input-Tokens an. Je mehr Text an das LLM (Large Language Model) gesendet wird, desto höher ist dieser Wert.

In der Regel liegt die Anzahl der Input-Tokens deutlich über der der Output-Tokens, da der gesamte übermittelte Kontext (einschliesslich Anfragen, Anweisungen und zusätzlicher Daten) in diese Zählung einfliesst.

## Parameter "Output-Tokens"

Zeigt die Anzahl der im **aktuellen Monat** verbrauchten Output-Tokens an. Dazu zählen alle Tokens, die durch die Antworten des Modells erzeugt werden.


# Suche in Wissensdatenbank

Das Plugin <img src="/files/Pj8hEdMUyLSwp5rni5dT" alt="" data-size="line"> *Suche in Wissensdatenbank* wird verwendet, um einen Kontext zu generieren, der anschliessend an ein LLM (Large Language Model) gesendet wird. Dieses Plugin ist ein wesentlicher Bestandteil unseres RAG-Prozesses (Retrieval-Augmented Generation). Das Ergebnis dieses Plugins ist darauf ausgelegt, in einem GPT-Workflow weiterverarbeitet zu werden.

<figure><img src="/files/yZqxUkf8yPJ6t3mCPxvF" alt=""><figcaption><p>Konfiguration des "Suche in Wissensdatenbank" Plugins</p></figcaption></figure>

## Parameter "In allen Wissensdatenbank suchen"

Mit diesem Schalten legen Sie fest, ob sie in allen verfügbaren Wissensdatenbanken Ihres Projektes suche möchten. Wenn diese Option aktiviert ist, ist eine Auswahl im nächsten Parameter "Wissensdatenbank" nicht möglich.

## Parameter "Wissensdatenbank"

Mit diesem Parameter können Sie festlegen, in welcher Wissensdatenbank Sie suchen möchten. Eine Mehrfachauswahl ist ebenfalls möglich.

## Parameter "IDs von Wissensdatenbanken"

Alternativ ist es möglich, IDs von zu durchsuchenden Wissensdatenbank von einer Variable zu lesen. Die IDs müssen dabei mit Newline (`\n`) oder Komma (`,`) getrennt sein.

## Parameter "Suchanfrage"

Dieser Parameter legt die Frage fest, die an die Wissensdatenbank geschickt wird.

## Parameter "GPT-Prompt"

Wählen Sie eine Variable vom Typ `text` in dem der Kontext gespeichert werden soll, der in weiterer Folge an ein LLM gesendet wird.

## Parameter "Suchergebnisse"

Dieser Parameter enthält detaillierte Informationen über das Suchergebnis, das zusammengefasst als GPT-Prompt zur Verfügung steht. Dies ist besonders hilfreich für das Finetuning eines GPT-Workflows. Die Suchergebnisse bieten Einblick, welche Artikel bzw. Bereiche der Wissensdatenbank gefunden wurden und somit Einfluss auf den GPT-Prompt hatten.

## Parameter "Suchdauer (Millisekunden)"

Sie können die Dauer der Suche in einer Variable vom Type `integer` speichern. Die Dauer wird in Millisekunden angegeben.


# Agent-Status setzen

Mit dem Plugin <img src="/files/o9mMTG7foN7lC8hOWHM6" alt="" data-size="line"> *Agent-Status setzen* können Sie Meldungen zum Arbeitsablauf des Agenten and den Benutzer übermitteln. Diese werden als "Denkprozess" im Agent angezeigt.

<figure><img src="/files/CWX2kB6ztxTNlcjc9UBn" alt="" width="375"><figcaption></figcaption></figure>

## Parameter "Status-Nachricht"

Hier erfassen sie die Meldung, die Sie dem Benutzer anzeigen möchten. Sie wird als Teil des "Denkprozesses" im Agent angezeigt.


# Variable im Konversations-Kontext ablegen

Mit dem Plugin <img src="/files/k3Mb6AXvAAkWUvjif5lU" alt="" data-size="line"> *In AI-Konversations-Kontext speichern* können Sie eine Variable in den Kontext eine Konversation legen. Die Variable muss unter einem Schlüssel (Key) abgelegt werden. Dieser Schlüssel wird dann benötigt, wenn Sie die Variable später wieder aus dem Kontext holen möchten.

<figure><img src="/files/xHZ8W2W3RtScLE1EdrHQ" alt=""><figcaption><p>Plugin: In AI-Konversations-Kontext speichern</p></figcaption></figure>

Wie der Name des Plugins impliziert, werden die Variablen **pro Konversation** abgespeichert. Das bedeutet, dass der Key pro Konversation eindeutig ist. Im Gegensatz um Plugin [Speichern eines Wertes](/robot/plugins/speicher/speichern-eines-wertes) bei dem der Key für das gesamte Projekt eindeutig sein muss.

Diese Plugin kann dabei helfen, den Konversationsfluss zu steuern. Werden zum Beispiel mit einem Agent der Vor- und Nachname sowie die E-Mail-Adresse des Benutzer abgefragt, können diese in den Konversations-Kontext gelegt werden. Erst wenn alle drei Eingaben vorhanden sind, wird der Workflow in einem bestimmten Pfad weiter fortgeführt.

Dieses Plugin steht auch in [AI-Funktion](/robot/connectoren/passiv/ai-funktion) Workflows zur Verfügung.

## Parameter "Key"

Hier geben Sie den Schlüssel (Key) ein, unter dem die Variable abgelegt werden soll. Die Länge des Schlüssel darf 200 Zeichen nicht überschreiten.

## Parameter "Variable"

Aus diesem Auswahlfeld wählen Sie die Variable aus, die in den Konversations-Kontext gelegt werden soll.


# Variable aus Konversations-Kontext laden

Mit dem Plugin <img src="/files/uWwffV86oRyficRBZsZV" alt="" data-size="line"> *Aus AI-Konversations-Kontext holen* können Sie eine Variable aus dem Kontext eine Konversation holen. Die Variable muss anhand eines Schlüssels (Keys) geladen werden.

<figure><img src="/files/UWmvhWG3SfBZNKxoKkiw" alt=""><figcaption><p>Plugin: In AI-Konversations-Kontext speichern</p></figcaption></figure>

Diese Plugin kann dabei helfen, den Konversationsfluss zu steuern. Werden zum Beispiel mit einem Agent der Vor- und Nachname sowie die E-Mail-Adresse des Benutzer abgefragt, können diese in den Konversations-Kontext gelegt werden. Erst wenn alle drei Eingaben vorhanden sind, wird der Workflow in einem bestimmten Pfad weiter fortgeführt.

Dieses Plugin steht auch in [AI-Funktion](/robot/connectoren/passiv/ai-funktion) Workflows zur Verfügung.

## Parameter "Key"

Hier geben Sie den Schlüssel (Key) ein, unter dem die Variable abgelegt wurde. Die Länge des Schlüssels darf 200 Zeichen nicht überschreiten.

## Parameter "Variable"

Aus diesem Auswahlfeld wählen Sie die Variable aus, in dem der im Kontext gespeicherte Wert abgelegt werden soll.

## Prüfen der geladenen Variable

Um sicherzustellen, dass die Variable die geladen wurde auch einen Wert hat, sollte diese immer mit einer Entscheidung überprüft werden. Das Pattern hierzu sieht so aus:

<figure><img src="/files/LJAgOtGQJfKC2hE2BIGr" alt=""><figcaption><p>Pattern zur Prüfung ob eine Variable einen Wert hat</p></figcaption></figure>

Hier wird ein Eintrag aus dem Konversations-Kontext mit dem Key `Konversations Status` geladen. Anschliessend wird geprüft, ob die Variable auch einen Wert hat.


# Chatbot

Robot bietet eine Reihe von Plugins, die ausschliesslich in Workflows genutzt werden können, die durch eine Chatbot-Story aufgerufen wurden. Mithilfe dieser Plugins lassen sich der weitere Verlauf von Stories steuern sowie dynamische Listen und Karussell-Elemente befüllen.

{% content-ref url="/pages/PMrHxJbUw5vhTVuZZoUM" %}
[Konversationspfad festlegen](/robot/plugins/chatbot/konversationspfad-festlegen)
{% endcontent-ref %}

{% content-ref url="/pages/K7fQwp1zb208ULP5oSHz" %}
[Dynamische Liste erstellen](/robot/plugins/chatbot/dynamische-liste-erstellen)
{% endcontent-ref %}

{% content-ref url="/pages/HXIdn2q9LxUDaw4prcCq" %}
[Dynamische Liste befüllen](/robot/plugins/chatbot/dynamische-liste-befullen)
{% endcontent-ref %}

{% content-ref url="/pages/ZJSVTYeOOPmlafpq56mS" %}
[Nachricht an Benutzer senden](/robot/plugins/chatbot/nachricht-an-benutzer-senden)
{% endcontent-ref %}


# Konversationspfad festlegen

Wenn in einer Chatbot Story ein Robot Workflow aufgerufen wird, pausiert die Story an dieser Stelle kurz und wartet, bis der Workflow abgeschlossen ist. Abhängig vom Ergebnis der Workflow Ausführung setzt die Story ihren Verlauf im entsprechenden Pfad fort.

Jeder Workflow Aufruf verfügt über zwei feste Pfade, die im Story Builder als *OK-Pfad* und *Fehler-Pfad* angezeigt werden.

<figure><img src="/files/dnzRgXuWmKlFz610U9rl" alt="" width="326"><figcaption><p>Robot Widget im Story Builder</p></figcaption></figure>

Läuft der Workflow ohne Fehler durch, setzt die Story ihren Verlauf im *OK-Pfad* fort. Bei fehlerhafter Ausführung wird die Story im *Fehler-Pfad* weitergeführt.

Mit dem Button *+ Pfad hinzufügen* können zusätzliche Konversationspfade erstellt werden. Mithilfe des Plugins *Konversationspfad festlegen* wird im Workflow definiert, in welchem Pfad die Story fortgesetzt werden soll.

Das folgende Beispiel zeigt drei zusätzliche Pfade:

<figure><img src="/files/27n4uPRk7NEw25Z8Q9Kk" alt="" width="331"><figcaption></figcaption></figure>

## Statischer Pfad

Im Workflow legen Sie mithilfe dieses Plugins fest, wie der Verlauf der Story weitergehen soll. Die Option *Statischer Pfad* ermöglicht die Auswahl eines der Pfade, die im Story Builder definiert wurden.

<figure><img src="/files/7bFFofy93JoevqiEHrY9" alt="" width="300"><figcaption></figcaption></figure>

## Dynamischer Pfad

Falls der Name des Pfads beim Design des Workflows noch nicht ausgewählt werden kann, können Sie mit der Option *Dynamischer Pfad* eine Workflow-Variable auswählen, die den Pfadnamen enthält. Ist der Pfadname ungültig oder die Variable leer, setzt die Story ihren Verlauf im definierten *Fallback-Wert* fort.

<figure><img src="/files/Bu09k72GMx1rbsp8SSnR" alt="" width="299"><figcaption></figcaption></figure>


# Dynamische Liste erstellen

Der Chatbot kennt zwei unterschiedliche Arten von dynamischen Listen:

* Optionsliste
* Karussell

Beide Arten können in einem Robot Workflow erstellt und mit Inhalt befüllt werden.

## Optionsliste

Die Optionsliste bietet ein Auswahl an unterschiedlichen Optionen aus denen der Chatbot-Benutzer eine auswählen kann.

<figure><img src="/files/jDE6vIliUUHIzb0YB2RD" alt="" width="298"><figcaption></figcaption></figure>

Um eine Optionsliste zu erstellen, wählen Sie die Option *Liste* unter *Listenart*. Sie können der Liste ein Überschrift geben, die dem Benutzer dann angezeigt wird.

Falls die gewünschten Listeneinträge bereits in einer `collection` Variable vorliegen, können Sie diese hier ebenfalls auswählen. Jeder Eintrag in der `collection` Variable wird zu einem Eintrag in der Liste. Alternativ können mit dem Plugin [Dynamische Liste befüllen](/robot/plugins/chatbot/dynamische-liste-befullen) Einträge für die Liste erstellt werden.

Am Ende müssen Sie eine Variable auswählen, in der die gesamte Liste abgespeichert werden soll.

## Karussell

Die zweite Listenart ist das *Karussell*. Mit dem [Karussell](/chatbot/widgets/karussell) Widget im Story Builder können Sie ein statisches Karussell in Ihrer Story platzieren. Die Einträge müssen bereits bei der Erstellung des Karussells bekannt sein.

Diese Plugin kann ein Karussell mit dynamischen Inhalt erstellen. Nachdem Sie die *Listenart* auf *Karussell* geändert haben, können Sie einen *Karussellnamen* sowie *Button-Text* des Auswahlbuttons festlegen.

<figure><img src="/files/McY6IlggdcTNtKkut4CR" alt="" width="295"><figcaption></figcaption></figure>

Ähnlich wie beim [Karussell-Optionen Modifier](/chatbot/widgets/modifier#karussell-optionen) können Sie hier Optionen festlegen, die das Aussehen und das Verhalten verändern bzw. beeinflussen.

<figure><img src="/files/WslgmNu85B18E1BmBXAd" alt="" width="292"><figcaption></figcaption></figure>

Am Ende muss eine Variable ausgewählt werden, in der das Karussell gespeichert werden soll.

Ein Karussell ist nach der Erstellung leer. Elemente für das Karussell müssen mit dem Plugin [Dynamische Liste befüllen](/robot/plugins/chatbot/dynamische-liste-befullen) erstellt werden.


# Dynamische Liste befüllen

Listen die mit dem Plugin [Dynamische Liste erstellen](/robot/plugins/chatbot/dynamische-liste-erstellen) erstellt werden, sind leer. Mit diesem Plugin können Sie Elemente in diese Listen einfügen.

## Optionsliste

Um eine Optionsliste mit Elementen zu befüllen, wählen Sie die entsprechnde Liste unter *Liste auswählen* aus.

<figure><img src="/files/fkrwheYHIJcsT1LIdWR9" alt="" width="298"><figcaption></figcaption></figure>

Im mehrzeilige Eingabefeld *Elemente hinzufügen* können Sie die gewünschten Elemente definieren. Jede Zeile wird zu einem Element in der Liste.

## Karussell

Ein Element im Karussell hat mehrere Eigenschaften. Wählen Sie unter *Liste auswählen* die entsprechende Liste aus. Danach können Sie **ein** Element für das Karussell definieren.

<figure><img src="/files/iZfKuXyl3sizhGokkslN" alt="" width="297"><figcaption></figcaption></figure>

Ein Karussellelement hat folgende Eigenschaft, wovon alle bist auf *Titel* optional sind:

* Bild URL
* Titel
* Externe ID
* Beschreibung
* Link-Text
* URL


# Nachricht an Benutzer senden

Mit diesem Plugin können Sie Texte an den Benutzer schicken, die mit dem Agent Workspace oder Chatbot interagieren.

<figure><img src="/files/ojFqkjlv7h0196WWJttw" alt=""><figcaption><p>Normale Nachricht an Benutzer senden</p></figcaption></figure>

## Parameter "ART DER NACHRICHT"

### Normale Nachricht

Es wird zwischen *Normalen Nachrichten* und *Info Nachrichten* unterschieden. Die normale Nachricht wird als Text an den Benutzer ausgespielt.

### Info Nachricht

Die Info Nachricht erscheint im Chatbot als "Nachdenkphase" und soll helfen, längere Wartezeiten im Chatbot weniger unangenehm erscheinen zu lassen. Im Agent wird diese Nachricht als Denkprozess angezeigt.

<figure><img src="/files/AE17ZoI4ebAi4435cGdQ" alt=""><figcaption><p>Info Nachricht an Benutzer senden</p></figcaption></figure>

Zudem ist es möglich, die Info Nachricht in den Sprachen Deutsch und English zu erfassen. Für den Chatbot wird die Nachricht in der Sprache ausgegeben, in der auch die Story wiedergegeben wird.

Für den Agent wird aktuell nur die Nachricht im Feld *NACHRICHT (DE)* ausgegeben.


# Textverarbeitung

Es stehen eine Vielzahl an Plugins zur Verfügungen, mit denen Text verarbeitet werden kann.

{% content-ref url="/pages/XkiWjrZArRqG4aXoSljt" %}
[Text in Datumsobjekte umwandeln](/robot/plugins/textverarbeitung/text-in-datumsobjekte-umwandeln)
{% endcontent-ref %}

{% content-ref url="/pages/64KJcAdstFbhjYH1K1Ri" %}
[Datumsobjekte in Text umwandeln](/robot/plugins/textverarbeitung/datumsobjekte-in-text-umwandeln)
{% endcontent-ref %}

{% content-ref url="/pages/tT5LTgd65GEIobFldQRH" %}
[Text extrahieren](/robot/plugins/textverarbeitung/text-extrahieren)
{% endcontent-ref %}

{% content-ref url="/pages/mLrIOJuaIrI1k5g4LnsS" %}
[Dezimal-Variable formatieren](/robot/plugins/textverarbeitung/dezimal-variable-formatieren)
{% endcontent-ref %}

{% content-ref url="/pages/tT5LTgd65GEIobFldQRH" %}
[Text extrahieren](/robot/plugins/textverarbeitung/text-extrahieren)
{% endcontent-ref %}

{% content-ref url="/pages/30t5lK4hgiyylmJkHk2D" %}
[Umändern von Texten](/robot/plugins/textverarbeitung/umandern-von-texten)
{% endcontent-ref %}

{% content-ref url="/pages/51UckIciVDHpvkZ3SFWM" %}
[Regular Expression abgleichen](/robot/plugins/textverarbeitung/regular-expression-abgleichen)
{% endcontent-ref %}

{% content-ref url="/pages/Ywh4ZoquEnvblIkho9aR" %}
[Text verändern](/robot/plugins/textverarbeitung/text-verandern)
{% endcontent-ref %}

{% content-ref url="/pages/LrB3RbUMG2dwLXZYyLRI" %}
[Teilen eines Textes](/robot/plugins/textverarbeitung/teilen-eines-textes)
{% endcontent-ref %}

{% content-ref url="/pages/IBP6EAdhbHZjATwbCZ1H" %}
[Ersetzen im Text](/robot/plugins/textverarbeitung/ersetzen-im-text)
{% endcontent-ref %}

{% content-ref url="/pages/beWRS6BkTSETLw7KYNnF" %}
[Suche in Text](/robot/plugins/textverarbeitung/suche-in-text)
{% endcontent-ref %}

{% content-ref url="/pages/Z39gXoYjNJMPqsHCt0Ec" %}
[Text abschneiden](/robot/plugins/textverarbeitung/text-abschneiden)
{% endcontent-ref %}


# Text in Datumsobjekte umwandeln

Das Plugin <img src="/files/UjMF6lP01dY6FmCNghx1" alt="" data-size="line"> *Text in Datumsobjekte umwandeln* ermöglicht es, Text in eine Variable vom Typ `date` oder `datetime` umzuwandeln.

<figure><img src="/files/VtOAH6fPlgPFV4VFcPda" alt="" width="295"><figcaption></figcaption></figure>

## Parameter "Text eingeben"

Im Feld *Text eingeben* geben Sie den Text an, der umgewandelt werden soll; es ist auch möglich, Variablen zu referenzieren.

## Parameter "Formatierung"

Das Feld *Formatierung* benötigt ein Muster, das den Text beschreibt und festlegt, wo sich Tag, Monat, Jahr usw. befinden. Das Muster besteht aus Gross- und Kleinbuchstaben mit spezifischen Bedeutungen. Zum Beispiel steht der Buchstabe `H` für die Stunde eines Tages (0 - 23).

## Parameter "Variable"

Im Ausgabefeld *Variable* können Sie eine Variable vom Typ `date` oder `datetime` auswählen.




---

[Next Page](/llms-full.txt/1)

