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:
| Variable | Typ | Beschreibung |
|---|---|---|
contexts | string[] | Liste aller aktiven Kontextnamen der aktuellen Sitzung |
context.<Name> | boolean | true, wenn der Kontext <Name> in der aktuellen Sitzung aktiv ist |
environment.PROD | boolean | true, wenn die Sitzung in der Produktivumgebung läuft |
environment.TEST | boolean | true, wenn die Sitzung in der Testumgebung läuft |
vars.<Name> | beliebig | Werte, 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.