Zum Hauptinhalt springen

Kontextspezifische Prompts

Prompts für den Chatbot und die Agenten lassen sich im CMS kontextspezifisch gestalten. Dazu wird die Liquid-Template-Sprache verwendet: Variablen und bedingte Blöcke im Text werden zur Laufzeit mit sitzungsspezifischen Werten befüllt.

Aktivierung

Die Funktion ist standardmässig deaktiviert und muss explizit eingeschaltet werden:

const server = createBubbleServer({
// ...
templates: {
enabled: true,
},
});

Verfügbare Variablen

Sobald die Funktion aktiviert ist, stehen folgende Variablen zur Verfügung:

VariableTypBeschreibung
contextsstring[]Liste aller aktiven Kontextnamen der aktuellen Sitzung
context.<Name>booleantrue, wenn der Kontext <Name> in der aktuellen Sitzung aktiv ist
environment.PRODbooleantrue, wenn die Sitzung in der Produktivumgebung läuft
environment.TESTbooleantrue, wenn die Sitzung in der Testumgebung läuft
vars.<Name>beliebigWerte, die über variablesProvider geliefert werden

Eigene Variablen via variablesProvider

Mit dem optionalen variablesProvider können pro Sitzung eigene Variablen bereitgestellt werden:

templates: {
enabled: true,
variablesProvider: async (sessionInfo) => {
return {
page: getPageReferrer(sessionInfo),
location: getLocation(sessionInfo),
};
},
},

Syntax

Bubble verwendet die Liquid-Syntax. Die wichtigsten Bausteine:

Variable ausgeben

Der Nutzer befindet sich auf der Seite {{ vars.page }}.

Wenn vars.page den Wert "https://example.com/products/shoe" hat, ergibt dies: Der Nutzer befindet sich auf der Seite https://example.com/products/shoe.

If/else – einfache Bedingung

{% if context.sales %}
Du hast eine Frage zu unseren Produkten?
{% else %}
Wie kann ich dir helfen?
{% endif %}

Wenn der Kontext sales aktiv ist, wird der erste Text verwendet, sonst der zweite.

If/elsif/else – mehrere Bedingungen

{% if environment.PROD %}
Produktiv
{% elsif environment.TEST %}
Test
{% else %}
Unbekannt
{% endif %}

Case/when – Wert vergleichen

{% case vars.location %}
{% when "zurich" %}Willkommen in Zürich!
{% when "bern" %}Willkommen in Bern!
{% else %}Willkommen!
{% endcase %}

Kontextliste prüfen

Mit contains lässt sich prüfen, ob ein bestimmter Kontext aktiv ist:

{% if contexts contains "sales" %}
Verkauf-spezifischer Text
{% else %}
Allgemeiner Text
{% endif %}

Fehlerverhalten

Enthält ein Textfeld ungültige Liquid-Syntax, wird der Text unverändert so ausgegeben, wie er im CMS erfasst wurde. Die Konfiguration wird dadurch nie unterbrochen.