Funktionen
Funktionen werden verwendet, um im Chat-Ablauf dynamische Werte zu berechnen, z. B. die aktuelle Uhrzeit oder das Alter einer Kundin oder eines Kunden. Funktionen können in Bedingungen, in Variablen-Wertzuweisungen und in Ausdrücken verwendet werden, die in interpolierten Texten wie Chat-Nachrichtenblasen Welcome ${firstname} of age ${customerAgeYears()} oder E-Mail-Vorlagen enthalten sind.
Funktionen können mit anderen Funktionen oder Variablen kombiniert werden, z. B. stringContains(getParam("foo"), "bar") oder stringContains(getParam("foo"), someVariable).
Die folgende Liste der Funktionen kann in LoyJoy verwendet werden. Diese Liste wächst stetig. Bitte kontaktieren Sie uns, wenn Ihnen eine Funktion für Ihre Anforderungen fehlt.
Wo Funktionen verwendet werden
Wertzuweisung einer Variable
Eine Funktion kann aufgerufen werden, wenn einer Variable ein Wert zugewiesen wird.

Bedingung
Eine Funktion kann aufgerufen werden, wenn in einer Bedingung Werte verglichen werden.

Interpolierter Text
Eine Funktion kann als Teil eines Ausdrucks in interpoliertem Text aufgerufen werden.

Mathematik
increment
Erhöht die Zahl aus Argument 1 um den Wert aus Argument 2.
increment(4, 2) -> 6
increment(someVarWithValue4, 2) -> 6
increment(4, someVarWithValue2) -> 6
increment(4) -> 5
increment(4, null) -> 5
Die Argumente sind:
- Argument 1: Die Zahl, die erhöht werden soll.
- Argument 2: Die Zahl, um die erhöht werden soll. Standard ist
1, wenn nichts angegeben ist.
Diese Funktion ist identisch mit dem Plus-Operator.
4 + 2 -> 6
someVarWithValue4 + 2 -> 6
4 + someVarWithValue2 -> 6
max
Gibt den Maximalwert von zwei Zahlen zurück.
max(4, 2) -> 4
max(someVarWithValue4, 2) -> 4
max(4, someVarWithValue2) -> 4
Die Argumente sind:
- Argument 1: Die erste Zahl, die verglichen werden soll.
- Argument 2: Die zweite Zahl, die verglichen werden soll.
min
Gibt den Minimalwert von zwei Zahlen zurück.
min(4, 2) -> 2
min(someVarWithValue4, 2) -> 2
min(4, someVarWithValue2) -> 2
Die Argumente sind:
- Argument 1: Die erste Zahl, die verglichen werden soll.
- Argument 2: Die zweite Zahl, die verglichen werden soll.
randomInt
Gibt eine zufällige ganze Zahl zwischen den Grenzen (Argument 1 und Argument 2) einschließlich der Grenzen zurück.
randomInt(6, 8) -> one value of 6, 7, 8
randomInt(someVarWithValue6, 8) -> one value of 6, 7, 8
Die Argumente sind:
- Argument 1: Die erste Zahl, die als untere Grenze verwendet wird.
- Argument 2: Die zweite Zahl, die als obere Grenze verwendet wird.
Ein besonderer Anwendungsfall für diese Funktion ist es, mit dem Prozessmodul Variable eine Zufallszahl zu erzeugen und diese dann in einem Gateway als Bedingung zu verwenden. Auf diese Weise lässt sich der Ablauf mit dieser Funktion als Zufallszahlengenerator zufällig auf verschiedene Pfade aufteilen.
round
Gibt den gerundeten Wert einer Zahl zurück.
round(2.0) -> 2
round(2.3) -> 2
round(2.6) -> 3
round(null) -> 0
round(2.0, 1) -> 2.0
round(2.3333, 1) -> 2.3
round(2.6666, 1) -> 2.7
round(2.0, 2) -> 2.00
round(2.3333, 2) -> 2.33
round(2.6666, 2) -> 2.67
Die Argumente sind:
- Argument 1: Die Variable, deren Wert gerundet werden soll.
- Argument 2: Optional die Anzahl der Nachkommastellen, die der Wert haben soll. Standard ist
0.
Strings
cr
Gibt ein Wagenrücklaufzeichen (\r) zurück. In Kombination mit newline() ergibt sich ein Zeilenumbruch im Windows-Format (\r\n).
cr() -> "\r"
stringConcat("Line 1", cr(), newline(), "Line 2") -> "Line 1\r\nLine 2"
Die Funktion benötigt keine Argumente.
newline
Gibt ein Zeilenvorschubzeichen (\n) zurück. Verwenden Sie es, um Zeilenumbrüche in Strings einzufügen, z. B. wenn Sie den JSON-Body des API-Client-Moduls erstellen.
newline() -> "\n"
stringConcat("Line 1", newline(), "Line 2") -> "Line 1\nLine 2"
Die Funktion benötigt keine Argumente.
nl2br
Fügt vor allen Zeilenumbrüchen in einem String HTML-Zeilenumbrüche ein. Dies ist nützlich, um Text in HTML darzustellen, z. B. in E-Mail-Vorlagen. Der Grund: E-Mail-Vorlagen erwarten HTML-Zeilenumbrüche <br /> anstelle von Zeilenumbrüchen \n.
nl2br("foo is not\n bar") -> "foo is not<br />\n bar"
nl2br("Welcome\nThis is my HTML document") -> "Welcome<br />\nThis is my HTML document"
Die Argumente sind:
- Argument 1: Der Text, der konvertiert werden soll.
padZeroes
Diese Funktion wird verwendet, um eine Zahl oder einen String mit Nullen aufzufüllen.
padZeroes(12, 4) -> "0012"
padZeroes(someVarWithValue42, 4) -> "0042"
Die Argumente sind:
- Argument 1: Die Variable, deren Wert mit Nullen aufgefüllt werden soll.
- Argument 2: Die Anzahl der Stellen, die der Wert am Ende haben soll.
stringConcat
Gibt einen String zurück, der aus der Verkettung aller Argumente besteht.
stringConcat("foo", "bar") -> "foobar"
stringConcat("foo", "bar", "test") -> "foobartest"
stringConcat("foo", 1) -> "foo1"
stringConcat("foo", someVarWithValue12) -> "foo12"
Die Argumente sind:
- Argument 1 - n: Die Werte, die verkettet werden sollen.
- Es sind mindestens 2 Argumente erforderlich, sonst wird ein Fehler ausgelöst.
stringContains
Prüft, ob Argument 1 den String aus Argument 2 enthält.
stringContains("Hello", "ll") -> true
stringContains(someVarWithValueHello, "ll") -> true
Die Argumente sind:
- Argument 1: Der String, der geprüft werden soll.
- Argument 2: Der String, der geprüft werden soll, ob er in Argument 1 enthalten ist.
stringEndsWith
Prüft, ob Argument 1 mit dem String aus Argument 2 endet.
stringEndsWith("Hello", "lo") -> true
stringEndsWith(someVarWithValueHello, "lo") -> true
Die Argumente sind:
- Argument 1: Der String, der geprüft werden soll.
- Argument 2: Der String, der geprüft werden soll, ob er am Ende von Argument 1 steht.
stringIndexOf
Gibt den Index des ersten Vorkommens des Strings aus Argument 2 im String aus Argument 1 zurück.
stringIndexOf("Hello", "l") -> 2
stringIndexOf(someVarWithValueHello, "l") -> 2
Die Argumente sind:
- Argument 1: Der String, der geprüft werden soll.
- Argument 2: Der String, dessen Index des ersten Vorkommens im ersten Argument Sie ermitteln möchten.
stringLastIndexOf
Gibt den Index des letzten Vorkommens des Strings aus Argument 2 im String aus Argument 1 zurück.
stringLastIndexOf("Hello", "l") -> 3
stringLastIndexOf(someVarWithValueHello, "l") -> 3
Die Argumente sind:
- Argument 1: Der String, der geprüft werden soll.
- Argument 2: Der String, dessen Index des letzten Vorkommens im ersten Argument Sie ermitteln möchten.
stringLength
Gibt die Länge des Strings aus Argument 1 zurück.
stringLength("Hello") -> 5
stringLength(someVarWithValueHello) -> 5
Die Argumente sind:
- Argument 1: Der String, dessen Länge Sie ermitteln möchten.
stringReplace
Ersetzt jedes Vorkommen des zu ersetzenden Strings und gibt diesen Wert zurück. Es hat keine Auswirkung auf die Eingabevariable in Argument 1.
stringReplace("Hello all", "ll", "bb") -> "Hebbo abb"
stringReplace(someVarWithValueHello, "ll", "bb") -> "Hebbo"
Die Argumente sind:
- Argument 1: Der String, den Sie verändern möchten.
- Argument 2: Der String, der ersetzt werden soll.
- Argument 3: Der String, durch den der zu ersetzende String ersetzt werden soll.
stringReplaceAll
Verändert den String in Argument 1 mithilfe eines regulären Ausdrucks in Argument 2. Es hat keine Auswirkung auf die Eingabevariable in Argument 1.
stringReplaceAll("this is an example sentence", "\s+", "-") -> "this-is-an-example-sentence"
stringReplaceAll(someVarWithSentence, "\s+", "-") -> "this-is-an-example-sentence"
Die Argumente sind:
- Argument 1: Der String, den Sie verändern möchten.
- Argument 2: Der reguläre Ausdruck, der für die Ersetzung verwendet werden soll.
stringStartsWith
Prüft, ob Argument 1 mit dem String aus Argument 2 beginnt.
stringStartsWith("Hello", "He") -> true
stringStartsWith(someVarWithValueHello, "He") -> true
Die Argumente sind:
- Argument 1: Der String, der geprüft werden soll.
- Argument 2: Der String, der geprüft werden soll, ob er am Anfang von Argument 1 steht.
stringStrip
Entfernt alle führenden und abschließenden Leerzeichen aus dem String in Argument 1.
stringStrip(" Hello ") -> "Hello"
stringStrip(someVarWithValueHello) -> "Hello"
Die Argumente sind:
- Argument 1: Der String, der bereinigt werden soll.
stringSubstring
Gibt einen Teilstring des Strings aus Argument 1 zurück, der am Index aus Argument 2 beginnt und am Index aus Argument 3 endet.
stringSubstring("Hello", 1, 3) -> "el"
stringSubstring(someVarWithValueHello, 1, 3) -> "el"
Die Argumente sind:
- Argument 1: Der String, aus dem der Teilstring extrahiert werden soll.
- Argument 2: Der Startindex des Teilstrings.
- Argument 3: Der Endindex des Teilstrings.
stringToLowerCase
Konvertiert den String aus Argument 1 mit englischer Locale in Kleinbuchstaben.
stringToLowerCase("Hello") -> "hello"
Die Argumente sind:
- Argument 1: Der String, der konvertiert werden soll.
stringToUpperCase
Konvertiert den String aus Argument 1 mit englischer Locale in Großbuchstaben.
stringToUpperCase("Hello") -> "HELLO"
Die Argumente sind:
- Argument 1: Der String, der konvertiert werden soll.
Datum & Uhrzeit
Formatiert
formattedLocalDate
Gibt das lokalisierte Datum von jetzt (oder wie in der Chat-Vorschau im LoyJoy Manager ausgewählt) zurück.
formattedLocalDate() -> "15.02.24" formatted according on process locale (in this example "DE")
formattedLocalDate("YYYY") -> "2024"
Die Argumente sind:
- Argument 1 (Muster): Optional das Muster, das Sie abrufen möchten. Weitere Informationen finden Sie in der offiziellen Mustersyntax.
formattedLocalDateTime
Gibt das lokalisierte Datum und die lokalisierte Uhrzeit von jetzt (oder wie in der Chat-Vorschau im LoyJoy Manager ausgewählt) zurück.
formattedLocalDateTime() -> "15.02.24, 12:30" formatted according on process locale (in this example "DE")
formattedLocalDateTime("YYYY") -> "2024"
Die Argumente sind:
- Argument 1 (Muster): Optional das Muster, das Sie abrufen möchten. Weitere Informationen finden Sie in der offiziellen Mustersyntax.
ISO 8601
localDate
Gibt das lokalisierte Datum im ISO 8601-Format von jetzt (oder wie in der Chat-Vorschau im LoyJoy Manager ausgewählt) zurück.
localDate() -> "2024-02-15"
localDateTime
Gibt das lokalisierte Datum und die lokalisierte Uhrzeit im ISO 8601-Format von jetzt (oder wie in der Chat-Vorschau im LoyJoy Manager ausgewählt) zurück.
localDateTime() -> "2024-02-15T12:30:00.000000000"
localDateTime("Seconds") -> "2024-02-15T12:30:00"
localDateTime("Millis") -> "2024-02-15T12:30:00.000"
localDateTime("Micros") -> "2024-02-15T12:30:00.000000"
localDateTime("Nanos") -> "2024-02-15T12:30:00.000000000"
Die Argumente sind:
- Argument 1: Optional die Genauigkeit als eine der Optionen
Seconds,Millis,Micros,Nanos. Standard istNanos.
Datumsfelder
localDateDayOfMonth
Gibt den lokalisierten Tag des Monats (Muster dd) von jetzt (oder wie in der Chat-Vorschau im LoyJoy Manager ausgewählt) zurück.
localDateDayOfMonth() -> 15
localDateDayOfWeek
Gibt den lokalisierten Wochentag als Zahl im Intervall [1-7] zurück, wobei 1 für Montag und 7 für Sonntag steht, von jetzt (oder wie in der Chat-Vorschau im LoyJoy Manager ausgewählt).
localDateDayOfWeek() -> 4
localDateDayOfYear
Gibt den lokalisierten Tag des Jahres als Zahl im Intervall [1-366] von jetzt (oder wie in der Chat-Vorschau im LoyJoy Manager ausgewählt) zurück.
localDateDayOfYear() -> 46
localDateMonthOfYear
Gibt den lokalisierten Monat des Jahres als Zahl im Intervall [1-12] von jetzt (oder wie in der Chat-Vorschau im LoyJoy Manager ausgewählt) zurück.
localDateMonthOfYear() -> 2
localDateYear
Gibt das lokalisierte Jahr von jetzt (oder wie in der Chat-Vorschau im LoyJoy Manager ausgewählt) zurück.
localDateYear() -> 2024
Zeitstempel
timestamp
Gibt die Anzahl der Sekunden seit dem 1. Januar 1970 von jetzt (oder wie in der Chat-Vorschau im LoyJoy Manager ausgewählt) zurück.
timestamp() -> 1707996600
timestampMs
Gibt die Anzahl der Millisekunden seit dem 1. Januar 1970 von jetzt (oder wie in der Chat-Vorschau im LoyJoy Manager ausgewählt) zurück.
timestampMs() -> 1707996600000
Datums- & Uhrzeit-Arithmetik
Die Datums- und Uhrzeitfunktionen
localDate,localDateTimeformattedLocalDate,formattedLocalDateTimelocalDateDayOfMonth,localDateDayOfWeek,localDateDayOfYear,localDateMonthOfYear,localDateYeartimestamp,timestampMs
können mit den Datums- und Uhrzeit-Arithmetikfunktionen angepasst werden
plusChronoUnit,minusChronoUnitwithChronoField,withTemporalAdjusterofLocalDate,ofLocalDateTimeofTimestamp,ofTimestampMs
Dies ermöglicht Datums- und Uhrzeit-Arithmetik auf Basis des gregorianischen Kalenders und von ISO 8601 gemäß der Java Date/Time API.
plusChronoUnit
Chrono-Einheiten können zu den meisten Datums- und Uhrzeitfunktionen addiert werden.
localDateTime(plusChronoUnit(1, "Seconds")) -> "2024-02-15T12:30:01.000000000"
localDateTime(plusChronoUnit(1, "Minutes")) -> "2024-02-15T12:31:00.000000000"
localDateTime(plusChronoUnit(1, "Hours")) -> "2024-02-15T13:30:00.000000000"
localDateTime(plusChronoUnit(1, "Days")) -> "2024-02-16T12:30:00.000000000"
localDateTime(plusChronoUnit(1, "Weeks")) -> "2024-02-22T12:30:00.000000000"
localDateTime(plusChronoUnit(1, "Months")) -> "2024-03-15T12:30:00.000000000"
localDateTime(plusChronoUnit(1, "Years")) -> "2025-02-15T12:30:00.000000000"
localDate(plusChronoUnit(1, "Days")) -> "2024-02-16"
formattedLocalDate(plusChronoUnit(1, "Days")) -> "16.02.24"
formattedLocalDateTime(plusChronoUnit(1, "Days")) -> "16.02.24, 12:30"
timestamp(plusChronoUnit(1, "Days")) -> 1708086600
timestampMs(plusChronoUnit(1, "Days")) -> 1708086600000
Chrono-Anpassungen müssen am Ende der Argumentliste stehen, d. h. die ursprünglichen Funktionsargumente müssen zuerst kommen.
localDateTime("Seconds", addChronoUnit(1, "Days"))
Mehrere Anpassungen können kombiniert werden:
localDate(minusChronoUnit(1, "Days"), plusChronoUnit(2, "Months"))
minusChronoUnit
Chrono-Einheiten können von den meisten Datums- und Uhrzeitfunktionen subtrahiert werden.
localDateTime(minusChronoUnit(1, "Seconds")) -> "2024-02-15T12:29:59.000000000"
localDateTime(minusChronoUnit(1, "Minutes")) -> "2024-02-15T12:29:00.000000000"
localDateTime(minusChronoUnit(1, "Hours")) -> "2024-02-15T11:30:00.000000000"
localDateTime(minusChronoUnit(1, "Days")) -> "2024-02-14T12:30:00.000000000"
localDateTime(minusChronoUnit(1, "Weeks")) -> "2024-02-08T12:30:00.000000000"
localDateTime(minusChronoUnit(1, "Months")) -> "2024-01-15T12:30:00.000000000"
localDateTime(minusChronoUnit(1, "Years")) -> "2023-02-15T12:30:00.000000000"
localDate(minusChronoUnit(1, "Days")) -> "2024-02-14"
formattedLocalDate(minusChronoUnit(1, "Days")) -> "14.02.24"
formattedLocalDateTime(minusChronoUnit(1, "Days")) -> "14.02.24, 12:30"
timestamp(minusChronoUnit(1, "Days")) -> 1707913800
timestampMs(minusChronoUnit(1, "Days")) -> 1707913800000
Chrono-Anpassungen müssen am Ende der Argumentliste stehen, d. h. die ursprünglichen Funktionsargumente müssen zuerst kommen.
localDateTime("Seconds", minusChronoUnit(1, "Days"))
Mehrere Anpassungen können kombiniert werden:
localDate(minusChronoUnit(1, "Days"), plusChronoUnit(2, "Months"))
withChronoField
Chrono-Felder können für die meisten Datums- und Uhrzeitfunktionen auf bestimmte Werte gesetzt werden.
localDate(withChronoField("DayOfMonth", 3)) -> "2024-02-03"
localDate(withChronoField("DayOfWeek", 3)) -> "2024-02-14"
localDate(withChronoField("DayOfYear", 3)) -> "2024-01-03"
localDate(withChronoField("HourOfDay", 3)) -> Exception, as local date does not have time
localDate(withChronoField("MinuteOfHour", 3)) -> Exception, as local date does not have time
localDate(withChronoField("MonthOfYear", 3)) -> "2024-03-15"
localDate(withChronoField("Year", 2023)) -> "2023-02-15"
localDateTime(withChronoField("DayOfMonth", 3)) -> "2024-02-03T12:30:00.000000000"
formattedLocalDate(withChronoField("DayOfMonth", 3)) -> "03.02.24"
formattedLocalDateTime(withChronoField("DayOfMonth", 3)) -> "03.02.24, 12:30"
Chrono-Anpassungen müssen am Ende der Argumentliste stehen, d. h. die ursprünglichen Funktionsargumente müssen zuerst kommen.
localDateTime("Seconds", withChronoField("Year", 2023))
Mehrere Anpassungen können kombiniert werden:
localDate(withChronoField("Year", 2023), plusChronoUnit(2, "Months"))
withTemporalAdjuster
Temporal-Adjuster können auf die meisten Datums- und Uhrzeitfunktionen angewendet werden. Temporal-Adjuster sind eine explizitere Version des Setzens von Chrono-Feldern. Z. B. ist withTemporalAdjuster("FirstDayOfMonth") identisch mit withChronoField("DayOfMonth", 1).
localDate(withTemporalAdjuster("FirstDayOfMonth")) -> "2024-02-01"
localDate(withTemporalAdjuster("FirstDayOfNextMonth")) -> "2024-03-01"
localDate(withTemporalAdjuster("FirstDayOfNextYear")) -> "2025-01-01"
localDate(withTemporalAdjuster("FirstDayOfYear")) -> "2024-01-01"
localDate(withTemporalAdjuster("LastDayOfMonth")) -> "2024-02-29"
localDate(withTemporalAdjuster("LastDayOfYear")) -> "2024-12-31"
localDateTime(withTemporalAdjuster("FirstDayOfMonth")) -> "2024-02-01T12:30:00.000000000"
formattedLocalDate(withTemporalAdjuster("FirstDayOfMonth")) -> "01.02.24"
formattedLocalDateTime(withTemporalAdjuster("FirstDayOfMonth")) -> "01.02.24, 12:30"
Chrono-Anpassungen müssen am Ende der Argumentliste stehen, d. h. die ursprünglichen Funktionsargumente müssen zuerst kommen.
localDateTime("Seconds", withTemporalAdjuster("FirstDayOfMonth"))
Mehrere Anpassungen können kombiniert werden:
localDate(withTemporalAdjuster("FirstDayOfNextMonth"), plusChronoUnit(2, "Days"))
ofLocalDate
Ein lokales Datum kann als Startwert anstelle von jetzt gesetzt werden.
localDate(ofLocalDate("2024-02-10")) -> "2024-02-10"
localDateTime("Seconds", ofLocalDate("2024-02-10")) -> "2024-02-10T00:00:00"
formattedLocalDate(ofLocalDate("2024-02-10")) -> "10.02.24"
formattedLocalDateTime(ofLocalDate("2024-02-10")) -> "10.02.24, 00:00"
timestamp(ofLocalDate("2024-02-10")) -> 1707523200
timestampMs(ofLocalDate("2024-02-10")) -> 1707523200000
ofLocalDateTime
Ein lokales Datum mit Uhrzeit kann als Startwert anstelle von jetzt gesetzt werden.
localDate(ofLocalDateTime("2024-02-10T12:30:00")) -> "2024-02-10"
localDateTime("Seconds", ofLocalDateTime("2024-02-10T12:30:00")) -> "2024-02-10T00:00:00"
formattedLocalDate(ofLocalDateTime("2024-02-10T12:30:00")) -> "10.02.24"
formattedLocalDateTime(ofLocalDateTime("2024-02-10T12:30:00")) -> "10.02.24, 12:30"
timestamp(ofLocalDateTime("2024-02-10T12:30:00")) -> 1707568200
timestampMs(ofLocalDateTime("2024-02-10T12:30:00")) -> 1707568200000
ofTimestamp
Ein Zeitstempel in Sekunden kann als Startwert anstelle von jetzt gesetzt werden.
localDate(ofTimestamp(1707568200)) -> "2024-02-10"
localDateTime("Seconds", ofTimestamp(1707568200)) -> "2024-02-10T12:30:00"
formattedLocalDate(ofTimestamp(1707568200)) -> "10.02.24"
formattedLocalDateTime(ofTimestamp(1707568200)) -> "10.02.24, 12:30"
timestamp(ofTimestamp(1707568200)) -> 1707568200
timestampMs(ofTimestamp(1707568200)) -> 1707568200000
ofTimestampMs
Ein Zeitstempel in Millisekunden kann als Startwert anstelle von jetzt gesetzt werden.
localDate(ofTimestampMs(1707568200000)) -> "2024-02-10"
localDateTime("Seconds", ofTimestampMs(1707568200000)) -> "2024-02-10T12:30:00"
formattedLocalDate(ofTimestampMs(1707568200000)) -> "10.02.24"
formattedLocalDateTime(ofTimestampMs(1707568200000)) -> "10.02.24, 12:30"
timestamp(ofTimestampMs(1707568200000)) -> 1707568200
timestampMs(ofTimestampMs(1707568200000)) -> 1707568200000
Arrays
arrayIncludes
Liegt eine Variable vom Typ JSON-Array vor (z. B. erzeugt durch eine Multiple-Choice-Frage im Fragebogen), gibt diese Funktion true zurück, wenn das zweite Argument im JSON-Array enthalten ist, andernfalls false.
arrayIncludes("[2, 3]", 3) -> true
arrayIncludes(someVarWithJsonArray, 3) -> true
Die Argumente sind:
- Argument 1: Das JSON-Array, das geprüft werden soll. Jedoch in Form eines Strings, d. h. des serialisierten JSON-Arrays.
- Argument 2: Der Wert, der geprüft werden soll, ob er im JSON-Array enthalten ist.
arrayJoin
Liegt eine Variable vom Typ JSON-Array vor (z. B. erzeugt durch eine Multiple-Choice-Frage im Fragebogen), gibt diese Funktion einen String zurück, in dem alle Elemente des Arrays durch das Trennzeichen aus Argument 2 verbunden sind.
arrayJoin("[2, 3]", ",") -> "2,3"
arrayJoin(someVarWithJsonArray, ";") -> "2;3"
Die Argumente sind:
- Argument 1: Das JSON-Array, das verbunden werden soll. Jedoch in Form eines Strings, d. h. des serialisierten JSON-Arrays.
- Argument 2: Das Trennzeichen, das zum Verbinden der Array-Elemente verwendet werden soll.
arrayLength
Liegt eine Variable vom Typ JSON-Array vor (z. B. erzeugt durch eine Multiple-Choice-Frage im Fragebogen), gibt diese Funktion die Anzahl der Elemente in diesem Array zurück. Sie können diese Funktion für jede Art von Array-Variable verwenden und prüfen, ob sie leer ist oder einen Wert enthält, indem Sie prüfen, ob arrayLength 0 zurückgibt.
arrayLength("[2, 3]") -> 2
arrayLength(someVarWithJsonArray) -> 2
Die Argumente sind:
- Argument 1: Das JSON-Array, das geprüft werden soll. Jedoch in Form eines Strings, d. h. des serialisierten JSON-Arrays.
pushLiteral
Diese Funktion fügt der Variable in Argument 1 einen Wert aus Argument 2 hinzu. Die Variable muss von vornherein ein Array sein (z. B. bei einer Multiple-Choice-Frage).
pushLiteral("[2]", 3) -> "[\"2\", \"3\"]"
pushLiteral(someVarWithJsonArray, 3) -> "[\"3\"]"
Die Argumente sind:
- Argument 1: Das JSON-Array, dem ein Wert hinzugefügt werden soll. Jedoch in Form eines Strings, d. h. des serialisierten JSON-Arrays.
- Argument 2: Der Wert, der dem Array hinzugefügt werden soll.
pushVariable
Funktioniert wie pushLiteral, fügt dem Array jedoch den Wert einer Variable hinzu. Beachten Sie, dass eine spätere Änderung des Werts der hinzugefügten Variable die Werte im Array nicht verändert.
pushVariable("[2]", someVarWithValue3) -> "[\"2\", \"3\"]"
pushVariable(someVarWithJsonArray, someVarWithValue3) -> "[\"3\"]"
Die Argumente sind:
- Argument 1: Das JSON-Array, dem ein Wert hinzugefügt werden soll. Jedoch in Form eines Strings, d. h. des serialisierten JSON-Arrays.
- Argument 2: Die Variable, die dem Array hinzugefügt werden soll.
Typkonvertierung
toBigDecimal
Konvertiert einen String oder eine Zahl in eine Dezimalzahl. Die maximale Zahl ist unbegrenzt.
toBigDecimal(4) -> 4
toBigDecimal(4.0) -> 4
toBigDecimal(4.3) -> 4.299... due to rounding error as 4.3 is handled as a double
toBigDecimal("4") -> 4
toBigDecimal("4.0") -> 4.0
toBigDecimal("4.3") -> 4.3
toBigDecimal(someVarWithValue4Dot3) -> 4.3
Die Argumente sind:
- Argument 1: Der String oder die Zahl, die konvertiert werden soll.
toBigInteger
Konvertiert einen String oder eine Zahl in eine ganze Zahl. Die maximale ganze Zahl ist unbegrenzt.
toBigInteger(4) -> 4
toBigInteger(4.0) -> 4
toBigInteger(4.3) -> 4
toBigInteger(4.9) -> 4
toBigInteger("4") -> 4
toBigInteger("4.0") -> 4
toBigInteger(someVarWithValue4) -> 4
Die Argumente sind:
- Argument 1: Der String oder die Zahl, die konvertiert werden soll.
toBoolean
toBoolean(true) -> true
toBoolean(false) -> false
toBoolean("true") -> true
toBoolean("false") -> false
toBoolean(someVarWithValueTrue) -> true
Die Argumente sind:
- Argument 1: Der String oder der boolesche Wert, der konvertiert werden soll.
toFloat
Konvertiert einen String oder eine Zahl in eine Dezimalzahl. Die maximale Zahl ist unbegrenzt.
toFloat(4) -> 4.0
toFloat(4.0) -> 4.0
toFloat(4.3) -> 4.3
toFloat("4") -> 4.0
toFloat("4.0") -> 4.0
toFloat("4.3") -> 4.3
toFloat(someVarWithValue4Dot3) -> 4.3
Die Argumente sind:
- Argument 1: Der String oder die Zahl, die konvertiert werden soll.
toInteger
Konvertiert einen String oder eine Zahl in eine ganze Zahl. Die maximale ganze Zahl ist 2147483647.
toInteger(4) -> 4
toInteger(4.0) -> 4
toInteger(4.3) -> 4
toInteger(4.9) -> 4
toInteger("4") -> 4
toInteger("4.0") -> 4
toInteger(someVarWithValue4) -> 4
Die Argumente sind:
- Argument 1: Der String oder die Zahl, die konvertiert werden soll.
toString
toString("test") -> "test"
toString(1) -> "1"
toString(true) -> "true"
toString(false) -> "false"
toString(someVarWithValueTrue) -> "true"
Die Argumente sind:
- Argument 1: Der String, die Zahl oder der boolesche Wert, der konvertiert werden soll.
Einwilligungen & Opt-Ins
hasDeniedAnySingleOptIn
Gibt true zurück, wenn der angemeldete Benutzer jemals ein einzelnes Opt-In abgelehnt hat, und false, wenn nicht.
hasDeniedAnySingleOptIn() -> true
newsletterDoubleOptIn
Gibt true zurück, wenn der aktuelle Benutzer ein Double-Opt-In im Prozessmodul Newsletter Opt-In hat, und false, wenn nicht. Wenn Sie verschiedene Newsletter mit verschiedenen Tags haben, verwenden Sie den Tag als Argument in dieser Funktion.
newsletterDoubleOptIn() -> true
newsletterDoubleOptIn("some_tag") -> true
Die Argumente sind:
- Argument 1: Optional der Tag des Newsletters, den Sie prüfen möchten. Wenn nichts angegeben ist, wird der Standard-Newsletter geprüft.
newsletterDoubleOptInUrl
Gibt die URL zurück, die als Double-Opt-In-Bestätigung verwendet wird.
newsletterDoubleOptInUrl() -> "https://app-stable.loyjoy.com/bot/opt_in/newsletter/confirm?token=eyJ0e..."
newsletterSingleOptIn
Gibt true zurück, wenn der aktuelle Benutzer ein Single-Opt-In im Prozessmodul Newsletter Opt-In hat, und false, wenn nicht. Wenn Sie verschiedene Newsletter mit verschiedenen Tags haben, verwenden Sie den Tag als Argument in dieser Funktion.
newsletterSingleOptIn() -> true
newsletterSingleOptIn("some_tag") -> true
Die Argumente sind:
- Argument 1: Optional der Tag des Newsletters, den Sie prüfen möchten. Wenn nichts angegeben ist, wird der Standard-Newsletter geprüft.
profilingDoubleOptIn
Gibt true zurück, wenn der aktuelle Benutzer ein Double-Opt-In im Prozessmodul Profiling Opt-In hat, und false, wenn nicht.
profilingDoubleOptIn() -> true
profilingDoubleOptInUrl
Gibt die URL zurück, die als Double-Opt-In-Bestätigung verwendet wird.
profilingDoubleOptInUrl() -> "https://app-stable.loyjoy.com/bot/opt_in/profiling/confirm?token=eyJ0e..."
profilingSingleOptIn
Gibt true zurück, wenn der aktuelle Benutzer ein Single-Opt-In im Prozessmodul Profiling Opt-In hat, und false, wenn nicht.
profilingSingleOptIn() -> true
reminderSingleOptIn
Gibt true zurück, wenn der aktuelle Benutzer ein Single-Opt-In im Prozessmodul Reminder Opt-In hat, und false, wenn nicht.
reminderSingleOptIn() -> true
smsDoubleOptIn
Gibt true zurück, wenn der aktuelle Benutzer ein Double-Opt-In im Prozessmodul SMS Opt-In hat, und false, wenn nicht.
smsDoubleOptIn() -> true
smsSingleOptIn
Gibt true zurück, wenn der aktuelle Benutzer ein Single-Opt-In im Prozessmodul SMS Opt-In hat, und false, wenn nicht.
smsSingleOptIn() -> true
webPushDoubleOptIn
Gibt true zurück, wenn der Benutzer im Prozessmodul Web Push Opt-In ein Abonnement für Web-Push-Benachrichtigungen im Webbrowser erlaubt hat. Andernfalls gibt es false zurück.
webPushDoubleOptIn() -> true
webPushSingleOptIn
Gibt true zurück, wenn der Benutzer im Prozessmodul Web Push Opt-In ein Abonnement für Web-Push-Benachrichtigungen im Chat erlaubt hat. Andernfalls gibt es false zurück.
webPushSingleOptIn() -> true
Webbrowser & Website
clientLocale
Diese Funktion gibt die Spracheinstellung des Webbrowsers als String zurück. Beispielsweise könnte ein englischer Webbrowser en und ein deutscher Webbrowser de zurückgeben.
clientLocale() -> "de"
clientLocale() -> "de-CH"
clientLocale() -> "fr-CH"
Um alle möglichen Werte zu prüfen, lesen Sie die Dokumentation der Sprachcodes.
displayLanguage
Diese Funktion gibt die Spracheinstellung des KI-Agenten mit englischen Bezeichnungen zurück. Beispielsweise könnte ein englischer Webbrowser English und ein deutscher Webbrowser German (Duzen) oder German (Siezen) zurückgeben.
displayLanguage() -> "English"
displayLanguage() -> "German (Duzen)"
displayLanguage() -> "German (Siezen)"
getCookie
Diese Funktion kann jedes Cookie der Hosting-Website bereitstellen, auf der der LoyJoy-KI-Agent veröffentlicht ist. Das Cookie darf nicht HTTP-only sein, d. h. es muss von JavaScript aus zugänglich sein.
getCookie("foo") -> "bar"
Die Argumente sind:
- Argument 1: Der Schlüssel (oder Name) des Cookies, das extrahiert werden soll.
getParam
Diese Funktion kann Parameter aus drei Quellen extrahieren:
- URL-Parameter (weitere Informationen unten)
- Widget-URL-Parameter
- Widget-Boot-Parameter
URL-Parameter (auch als Query-Strings oder URL-Query-Parameter bezeichnet) sind Elemente, die in Ihre URLs eingefügt werden, um Inhalte zu filtern und zu organisieren oder Tracking auf Ihrer Website umzusetzen, z. B. mit UTM-Tracking-Parametern. Um den Namen eines URL-Parameters zu erkennen, betrachten Sie den Teil der URL, der auf ein Fragezeichen (?) folgt. URL-Parameter bestehen aus einem Schlüssel und einem Wert, die durch ein Gleichheitszeichen (=) getrennt sind. Mehrere Parameter werden dann durch ein kaufmännisches Und (&) getrennt. Dies ist ein leistungsfähiges Werkzeug für Ihre Werbung, z. B. auf Meta und Google Adwords.
Eine vollständige URL mit Parametern sieht wie folgt aus:
https://example.org/some_path?foo=bar
Die Funktion zum Extrahieren des Parameterwerts aus der oben genannten URL sieht wie folgt aus:
getParam("foo") -> "bar"
Die Argumente sind:
- Argument 1: Der Schlüssel (oder Name) des URL- oder anderen Parameters, der extrahiert werden soll.
Parameter sind aus Sicherheitsgründen von Variablen getrennt, da sie technisch von Kunden frei verändert werden können. Mit dieser Funktion können Sie einen bestimmten Parameter bewusst abrufen und ihn z. B. mit dem Variablen-Prozessmodul als Variable speichern.
Beispielsweise können URL-Query-Parameter wie https://example.org/some_path?foo=bar aussehen oder https://example.org/some_path?foo1=bar1&foo2=bar2 für mehrere Query-Parameter.
ipAddress
Gibt die IP-Adresse des aktuellen Geräts zurück.
ipAddress() -> "127.0.0.1"
isMobile
Gibt true zurück, wenn der aktuelle Benutzer ein mobiles Gerät verwendet, und false, wenn nicht.
isMobile() -> true
locale
Diese Funktion gibt die Spracheinstellung des KI-Agenten als String zurück. Beispielsweise könnte ein englischer Webbrowser en und ein deutscher Webbrowser de zurückgeben, wenn diese Sprachen beim KI-Agenten aktiviert sind.
locale() -> "de"
locale() -> "en"
locale() -> "fr"
Formelles Deutsch („Siezen") ist nicht durch IETF standardisiert und wird in LoyJoy daher mit einem BCP-47-Private-Use-Subtag ausgedrückt.
locale() -> "de-x-formal"
Um alle möglichen Werte zu prüfen, lesen Sie die Dokumentation der Sprachcodes.
locationHref
Gibt die aktuelle URL zurück, in die das Widget eingebettet ist.
Z. B. für https://www.Example.org/some/Path.html?foo=bAr&Baz=qux#somE-hash:
locationHref() -> "https://www.Example.org/some/Path.html?foo=bAr&Baz=qux#somE-hash"
Z. B. kann diese Funktion verwendet werden, um die aktuelle URL des Chats in den Prompt der Prozessmodule AI Knowledge oder AI Prompt zu integrieren, indem ${locationHref()} in das Prompt-Feld geschrieben wird.
locationHrefHost
Gibt den Host der aktuellen URL zurück, in die das Widget eingebettet ist.
Z. B. für https://www.Example.org/some/Path.html?foo=bAr&Baz=qux#somE-hash:
locationHrefHost() -> "www.Example.org"
locationHrefHostLowerCase
Gibt den Host der aktuellen URL zurück, in die das Widget eingebettet ist. Alle Buchstaben werden in Kleinbuchstaben konvertiert.
Z. B. für https://www.Example.org/some/Path.html?foo=bAr&Baz=qux#somE-hash:
locationHrefHostLowerCase() -> "www.example.org"
locationHrefPath
Gibt den Pfad der aktuellen URL zurück, in die das Widget eingebettet ist.
Z. B. für https://www.Example.org/some/Path.html?foo=bAr&Baz=qux#somE-hash:
locationHrefPath() -> "/some/Path.html"
locationHrefPathLowerCase
Gibt den Pfad der aktuellen URL zurück, in die das Widget eingebettet ist. Alle Buchstaben werden in Kleinbuchstaben konvertiert.
Z. B. für https://www.Example.org/some/Path.html?foo=bAr&Baz=qux#somE-hash:
locationHrefPathLowerCase() -> "/some/path.html"
userAgent
Gibt die Versionszeichenfolge des Webbrowsers des Kunden zurück.
userAgent() -> "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36"
Sonstiges
chatHistory
Gibt den vollständigen Chatverlauf zurück.
chatHistory() -> "Assistant: Do you want to continue?<br />Human: OK<br />"
chatHistoryKnowledge
Gibt den bisherigen Frage-Antwort-Verlauf aus dem Wissensbereich zurück, d. h. wenn der Benutzer in der Fußzeile eine Frage eingegeben und zuvor eine Antwort von der KI erhalten hat.
chatHistoryKnowledge() -> "Human: How are you?<br />Assistant: I'm fine and you?<br />Human: I'm fine too<br />"
chatHistoryLive
Gibt den bisherigen Live-Chat-Verlauf zurück, d. h. wenn der Benutzer mit einem Live-Agenten gechattet hat.
chatHistoryLive() -> "Human: I have a request regarding ...<br />Agent: I'm happy to help?<br />Human: Thank you for solving the problem.<br />"
conversationId
Gibt die ID der aktuellen Konversation zurück.
conversationId() -> "cd7e8264-7464-4fad-a553-cbcba23f7a2d"
customerAgeYears
Diese Funktion berechnet das Alter des Kunden auf Basis seines Geburtsdatums, das in der Variable birthdate gespeichert ist. Die Variable wird automatisch befüllt, wenn Sie das Geburtsdatum-Modul verwenden.
customerAgeYears() -> 18
deviceId
Gibt die ID des aktuellen Geräts zurück. LoyJoy weist jedem Chat-UI-Client und jedem Drittanbieter-Client wie WhatsApp eine zufällige ID als Geräte-ID zu. Die Geräte-ID ermöglicht es, Web-Push-Benachrichtigungen oder Chat-Nachrichten an das Gerät zu senden. Wenn ein Kunde mehrere Browser oder Geräte verwendet, hat der Kunde mehrere Geräte-IDs.
deviceId() -> "c5182f8e-aa28-4ebd-a4ad-c28d38b2c6ab"
fileContent
Gibt den Inhalt einer vom Benutzer hochgeladenen Datei als Byte-Array zurück. Die Datei muss vor dem Aufruf dieser Funktion im Chat hochgeladen werden.
fileContent(upload, upload_content_type, upload_filename)
Die Argumente sind:
- Argument 1: Eine Variable, die zuvor z. B. im Datei-Upload des Fragebogens erstellt wurde.
- Argument 2: Der erwartete Inhaltstyp. Beim Erstellen einer Dateivariable wie
uploadwird von LoyJoy automatisch eine Variableupload_content_typeerstellt, die hier verwendet werden kann. - Argument 3: Optional der Dateiname. Beim Erstellen einer Dateivariable wie
uploadwird von LoyJoy automatisch eine Variableupload_filenameerstellt, die hier verwendet werden kann.
fileContentBase64
Gibt den Inhalt einer vom Benutzer hochgeladenen Datei als base64-codierten String zurück. Die Datei muss vor dem Aufruf dieser Funktion im Chat hochgeladen werden.
fileContentBase64(upload, upload_content_type, upload_filename)
Die Argumente sind:
- Argument 1: Eine Variable, die zuvor z. B. im Datei-Upload des Fragebogens erstellt wurde.
- Argument 2: Der erwartete Inhaltstyp. Beim Erstellen einer Dateivariable wie
uploadwird von LoyJoy automatisch eine Variableupload_content_typeerstellt, die hier verwendet werden kann. - Argument 3: Optional der Dateiname. Beim Erstellen einer Dateivariable wie
uploadwird von LoyJoy automatisch eine Variableupload_filenameerstellt, die hier verwendet werden kann.
fileContentString
Gibt den Inhalt einer vom Benutzer hochgeladenen Datei als String zurück. Die Datei muss vor dem Aufruf dieser Funktion im Chat hochgeladen werden. Das erste Argument ist eine Variable, die zuvor z. B. im Datei-Upload des Fragebogens verwendet wurde. Das zweite ist der erwartete Inhaltstyp. Das dritte Argument ist optional und kann verwendet werden, um den Dateinamen anzugeben.
fileContentString(upload, upload_content_type, upload_filename)
Die Argumente sind:
- Argument 1: Eine Variable, die zuvor z. B. im Datei-Upload des Fragebogens erstellt wurde.
- Argument 2: Der erwartete Inhaltstyp. Beim Erstellen einer Dateivariable wie
uploadwird von LoyJoy automatisch eine Variableupload_content_typeerstellt, die hier verwendet werden kann. - Argument 3: Optional der Dateiname. Beim Erstellen einer Dateivariable wie
uploadwird von LoyJoy automatisch eine Variableupload_filenameerstellt, die hier verwendet werden kann.
hasBpmnProcessVariable
Gibt true zurück, wenn die in Argument 1 angegebene Variable existiert, und false, wenn die Variable nicht existiert.
hasBpmnProcessVariable("someVar") -> true
hasBpmnProcessVariable(stringConcat("some", "Var")) -> true
Die Argumente sind:
- Argument 1: Der Name der Variable, für die geprüft werden soll, ob sie existiert.
getBpmnProcessVariable
Gibt den Wert des in Argument 1 angegebenen Variablennamens zurück und null, wenn die Variable nicht existiert.
getBpmnProcessVariable("someVar") -> "someValue"
getBpmnProcessVariable(stringConcat("some", "Var")) -> "someValue"
getBpmnProcessVariable("someUnknownVar") -> null
Die Argumente sind:
- Argument 1: Der Name der Variable, die extrahiert werden soll.
i18nTranslate
Diese Funktion gibt den i18n-Textwert in der aktuellen Sprache des Benutzers für einen bestimmten Schlüssel zurück. Die Funktion erwartet den i18n-Schlüssel für den Text als Argument, den Sie aus dem Textbereich abrufen können.
i18nTranslate("welcome_greeting/1f6fb69a-49a8-47c6-ab8e-b6cd290fa196") -> "Welcome" als den Begrüßungstext, der im Willkommensmodul mit der ID `1f6fb69a-49a8-47c6-ab8e-b6cd290fa196` hinterlegt ist. Alle i18n-Schlüssel finden Sie in der Texttabelle eines KI-Agenten.
Die Argumente sind:
- Argument 1: Der i18n-Schlüssel für den Text, der extrahiert werden soll. Alle i18n-Schlüssel finden Sie in der Texttabelle eines KI-Agenten.
interpolate
Interpoliert den in Argument 1 eingegebenen String.
interpolate("Hello ${firstname}") -> "Hello Joe"
Die Argumente sind:
- Argument 1: Ein String mit Ausdrücken, die interpoliert werden sollen. Die Ausdrücke werden in
${}eingeschlossen.
isAuthenticated
Gibt true zurück, wenn der Benutzer authentifiziert ist, und false, wenn nicht. Ein Benutzer kann über mehrere Prozessmodule authentifiziert werden, z. B. Sign-In, Auth0, ReachFive und ProCampaign.
isAuthenticated() -> true
jsonParse
Hauptsächlich für die Verwendung mit dem API-Client-Modul vorgesehen. Kann JSON parsen, um Strings in Objekte zu konvertieren. Dies ist nützlich, wenn die API, mit der Sie kommunizieren, ein Array erwartet und Sie z. B. einen Multiple-Choice-Fragebogen verwendet haben, um das Array zu erstellen.
jsonParse("[\"a\", \"b\"]") -> ["a", "b"]
Die Argumente sind:
- Argument 1: Ein JSON-String, der in ein Objekt konvertiert werden soll.
Nach der Verwendung von jsonParse können Sie auch mit einer JavaScript-ähnlichen Syntax auf die Elemente des JSON-Objekts zugreifen. Zum Beispiel:
jsonParse("{\"a\": [42, 12], \"b\": \"test\"}").a[0] -> 42
jsonParse("{\"a\": [42, 12], \"b\": \"test\"}").b -> "test"
jsonStringify
Hauptsächlich für jedes dynamische Mapping eines JSON-Objekts auf einen String vorgesehen, z. B. im API-Client-Modul oder im Keycloak-Modul. Es kann verwendet werden, um JSON-Arrays in Strings zu konvertieren.
jsonStringify(jsonObject.some_array) -> ["a", "b"]
Die Argumente sind:
- Argument 1: Ein JSON-Objekt, das in einen String konvertiert werden soll. Wird in der Regel von einer API-Anfrage bereitgestellt.
numParticipations
Diese Funktion berechnet die Anzahl aller Teilnahmen des aktuellen Benutzers an einem beliebigen Gewinnspiel. Zur Berechnung dieser Zahl muss zuvor ein Participation-Prozessmodul vorhanden sein.
numParticipations() -> 3
numParticipationsBpmnProcess
Die Anzahl der Teilnahmen, die ein Kunde im aktuellen Prozess gemacht hat, summiert über alle Participation-Prozessmodule. Zur Berechnung dieser Zahl muss zuvor ein Participation-Prozessmodul vorhanden sein.
numParticipationsBpmnProcess() -> 3
numRedemptionsRemaining
Diese Funktion berechnet die Anzahl der verbleibenden Einlösungen, wenn in einem Loyalty-Redemption-Modul eine maximale Gesamtzahl an Einlösungen konfiguriert ist.
numRedemptionsRemaining("37b68834-04ed-4f1b-9193-89c789dd0545") -> 99
Die Argumente sind:
- Argument 1: Die ID des Loyalty-Redemption-Prozessmoduls.
objectKeys
Liegt eine Variable vom Typ JSON-Objekt vor (z. B. erzeugt durch eine API-Anfrage), gibt diese Funktion ein Array der Eigenschaftsschlüssel dieses Objekts zurück.
Z. B. für someVariableWithJsonObject, das den String {"a":1,"b":2} enthält:
objectKeys(jsonParse(someVariableWithJsonObject)) -> ["a","b"]
Die Argumente sind:
- Argument 1: Ein JSON-Objekt, aus dem die Eigenschaftsschlüssel extrahiert werden sollen. Wird in der Regel von einer API-Anfrage bereitgestellt.
objectValues
Liegt eine Variable vom Typ JSON-Objekt vor (z. B. erzeugt durch eine API-Anfrage), gibt diese Funktion ein Array der Eigenschaftswerte dieses Objekts zurück.
Z. B. für someVariableWithJsonObject, das den String {"a":1,"b":2} enthält:
objectValues(jsonParse(someVariableWithJsonObject)) -> [1,2]
Die Argumente sind:
- Argument 1: Ein JSON-Objekt, aus dem die Eigenschaftswerte extrahiert werden sollen. Wird in der Regel von einer API-Anfrage bereitgestellt.
postbackPayloadValue
Gibt die ID des vom Benutzer ausgewählten Werts zurück. Wenn der Benutzer z. B. ein Element im Produktgalerie-Modul auswählt, können Sie dessen ID identifizieren.
printR
Gibt für alle Variablen der aktuellen Konversation den Variablennamen und ihren Wert zurück. Für alle Fragebogenfragen gibt es die Frage und die Antwort zurück. Diese Funktion ist nützlich zum Debuggen oder um alle Variablen in eine E-Mail oder ein PDF zu drucken.
printR() -> "someQuestion: someAnswer
someVar: someValue"
processInstanceId
Gibt die ID der aktuellen Prozessinstanz zurück. Wenn ein Kunde einen Prozess (KI-Agent) im Hintergrund ausführt, wird eine Prozessinstanz-ID generiert und in der Konversation gespeichert. Alle prozessspezifischen Variablen sind mit dem Prozess und der Prozessinstanz-ID versehen, sodass Variablen aus verschiedenen Prozessausführungen unterschieden werden können. Eine neue Prozessinstanz-ID kann mit dem Prozessmodul Process Instance Create erzwungen werden.
processInstanceId() -> "99a5a7ef-127f-4513-99e1-1df95618f539"
processId
Gibt die ID des aktuellen Prozesses (KI-Agenten) zurück.
processId() -> "9f1baa74-de18-4ae6-ab54-550e4472beb0"
productsCount
Gibt die Anzahl der Produkte in der Datenbank zurück. Sie können eine SQL-Anweisung verwenden, um die Anzahl der Produkte für die angegebene Abfrage zu zählen.
productsCount() -> 5
productsCount("SELECT * FROM products WHERE price <= 100") -> 3
Die Argumente sind:
- Argument 1: Optional eine SQL-Anweisung, um die Produkte aus der Datenbank auszuwählen.
productsToCsv
Formatiert die Produkte in der Datenbank als CSV-String. Sie können eine SQL-Anweisung verwenden, um die Produkte aus der Datenbank auszuwählen und als CSV-String zu formatieren.
productsToCsv() -> "
id,title,price
1, Product 1,100
2, Product 2,200
"
productsToCsv("SELECT title, price FROM products WHERE price <= 100") -> "
title,price
Product 1,100
"
productsValueRanges
Gibt die Wertbereiche der Produkte in der Datenbank zurück. Sie können eine SQL-Anweisung verwenden, um die Produkte aus der Datenbank auszuwählen und die Wertbereiche zu berechnen.
productsValueRanges() -> "
title: Product 1, Product2
price: 100, 200
"
productsValueRanges("SELECT title, price FROM products WHERE price <= 100") -> "
title: Product 1
price: 100
"
randomUuid
Gibt eine zufällige UUID zurück.
randomUuid() -> "71fae7ba-39e0-427b-b052-4fb8add08754"
senderId
Gibt die ID des aktuellen Clients zurück. Bei Drittanbieter-Clients wie WhatsApp wird die Sender-ID von WhatsApp vergeben, z. B. als Telefonnummer. Beim LoyJoy-Chat-UI-Client wird die Sender-ID von LoyJoy zufällig gesetzt, z. B. aus der Geräte-ID. Wenn Sie die Geräte-ID ermitteln möchten, verwenden Sie den Funktionsaufruf deviceId().
senderId() -> "b0d6950b-06bc-4e6d-88d6-ca7442eb13c9"
signInToken
Gibt ein Token zurück, das pro Sitzung eindeutig ist, auch wenn Sie nicht angemeldet sind.
signInToken() -> "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3Mi..."
tenantName
Gibt den Namen des aktuellen Tenants zurück.
tenantName() -> "My Company"
subProcessId
Gibt die ID des aktuellen Prozessmoduls zurück, d. h. des Subprozesses.
subProcessId() -> "bf918b9e-fc27-4577-9bcc-28b4e98d8517"
urlEncode
Nimmt einen String als Eingabe und wendet darauf URL-Encoding (auch als Prozent-Encoding bezeichnet) an. Dieser Prozess ist entscheidend, wenn ein String, der reservierte Zeichen enthalten kann, als Pfad- oder Query-Parameter in einer URL verwendet werden soll. URL-Encoding stellt sicher, dass die URL gültig ist und von Webbrowsern und Servern korrekt interpretiert werden kann.
urlEncode("test@loyjoy.com") -> "test%40loyjoy.com"
Die Argumente sind:
- Argument 1: Der String, der URL-encodiert werden soll.
userMessageText
Gibt den Text der letzten Benutzernachricht zurück, die in der Fußzeile eingegeben wurde.
userMessageText() -> "Hello, I need help with my credit card"