Zum Hauptinhalt springen

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.

Variable Assignment Function

Bedingung​

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

Condition - Function

Interpolierter Text​

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

Interpolation - Function

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 ist Nanos.

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, localDateTime
  • formattedLocalDate, formattedLocalDateTime
  • localDateDayOfMonth, localDateDayOfWeek, localDateDayOfYear, localDateMonthOfYear, localDateYear
  • timestamp, timestampMs

können mit den Datums- und Uhrzeit-Arithmetikfunktionen angepasst werden

  • plusChronoUnit, minusChronoUnit
  • withChronoField, withTemporalAdjuster
  • ofLocalDate, ofLocalDateTime
  • ofTimestamp, 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 (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 upload wird von LoyJoy automatisch eine Variable upload_content_type erstellt, die hier verwendet werden kann.
  • Argument 3: Optional der Dateiname. Beim Erstellen einer Dateivariable wie upload wird von LoyJoy automatisch eine Variable upload_filename erstellt, 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 upload wird von LoyJoy automatisch eine Variable upload_content_type erstellt, die hier verwendet werden kann.
  • Argument 3: Optional der Dateiname. Beim Erstellen einer Dateivariable wie upload wird von LoyJoy automatisch eine Variable upload_filename erstellt, 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 upload wird von LoyJoy automatisch eine Variable upload_content_type erstellt, die hier verwendet werden kann.
  • Argument 3: Optional der Dateiname. Beim Erstellen einer Dateivariable wie upload wird von LoyJoy automatisch eine Variable upload_filename erstellt, 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:

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"