KI fragen
Deutsch DE
Zu Watbot

Funktionsreferenz

Eine Funktion wird so aufgerufen: {{ name(argument1, argument2) }}. Argumente sind Text in Anführungszeichen, Zahlen, Variablen ($name) und in Ausdrücken auch Ergebnisse anderer Funktionen.

Mit einfach markierte Funktionen funktionieren überall, wo es Platzhalter gibt. Die übrigen nur in Nachrichtentexten, Bedingungen und einigen Blockeinstellungen, siehe Wo Platzhalter funktionieren.

Text

Funktion Was sie tut Beispiel Ergebnis
upper(text) Alle Buchstaben groß {{ upper("hallo") }} HALLO
lower(text) Alle Buchstaben klein {{ lower("HALLO") }} hallo
capitalize(text) Erster Buchstabe groß {{ capitalize("anna") }} Anna
len(text) Anzahl der Zeichen {{ len("Montag") }} 6
trim(text) Entfernt Leerzeichen am Rand {{ trim(" ja ") }} ja
replace(text, was, womit) Ersetzt alle Vorkommen {{ replace("0151-000-00", "-", "") }} 015100000
substr(text, start, länge) Teil eines Textes; Start bei 0 {{ substr("Montag", 0, 3) }} Mon
number_format(zahl, stellen, dezimaltrenner, tausendertrenner) Zahl mit Trennzeichen. Standard: 0 Stellen, Komma und Leerzeichen {{ number_format(1234.5, 2) }} 1 234,50
urlencode(text) Kodiert Text für einen Link https://site.de/?q={{ urlencode($suche) }}
randomText(variante1, variante2, ...) Eine Variante nach Zufall {{ randomText("Hallo", "Guten Tag") }}
strRandom(länge, groß) Zufällige Zeichenfolge aus Buchstaben und Ziffern, bis 1000 Zeichen. true als zweites Argument — nur Großbuchstaben {{ strRandom(8, true) }} K3JD8QWZ

Alle Funktionen dieses Abschnitts sind einfach.

Mathematik

Funktion Was sie tut Beispiel Ergebnis
round(zahl, stellen) Runden, standardmäßig auf eine ganze Zahl {{ round(2.567, 2) }} 2.57
ceil(zahl) Aufrunden {{ ceil(2.1) }} 3
floor(zahl) Abrunden {{ floor(2.9) }} 2
abs(zahl) Betrag einer Zahl {{ abs(-5) }} 5
sqrt(zahl) Quadratwurzel {{ sqrt(16) }} 4
max(a, b, ...) Größter Wert {{ max(3, 7, 5) }} 7
min(a, b, ...) Kleinster Wert {{ min(3, 7, 5) }} 3
rand(von, bis) Zufällige ganze Zahl {{ rand(1, 100) }}

Alle Funktionen dieses Abschnitts sind einfach. Addition, Subtraktion, Multiplikation, Division und Potenz schreiben Sie mit Zeichen, siehe Rechnen.

Veraltete Funktionen

Diese Funktionen funktionieren weiterhin, aber in neuen Texten schreiben Sie die Zeichen — das ist kürzer und verständlicher:

Veraltete Funktion Neue Schreibweise
sum($a, $b), сумма($a, $b) {{ $a + $b }}
diff($a, $b), разность($a, $b) {{ $a - $b }}
multiplication($a, $b), произведение($a, $b) {{ $a * $b }}
div($a, $b), деление($a, $b) {{ $a / $b }}
pow($a, $b) {{ $a ** $b }}

Zum Beispiel statt {{ sum($preis, $lieferung) }} — {{ $preis + $lieferung }}.

Datum und Uhrzeit

Achtung

Die Zeit wird in UTC berechnet. Für Berlin addieren Sie im Winter eine Stunde, im Sommer zwei: {{ date("H:i", "+1 hour") }}.

Funktion Was sie tut
date(format, datum) Datum im gewünschten Format. Ohne Datum — jetzt. Datum — "2026-10-02", "+7 days", "next monday" usw.
time() Aktuelle Zeit in Sekunden seit 1970 (Unix-Zeit)
modifyDateTime(datum, datumsformat, ausgabeformat, verschiebung) Liest ein Datum aus einer Variable in ihrem Format, verschiebt es und gibt es in einem anderen Format aus
modifyUnixTime(unix_zeit, verschiebung, format) Verschiebt eine Unix-Zeit; mit Format wird ein Datum ausgegeben, ohne Format die neue Unix-Zeit

Beispiele:

Heute ist der {{ date("d.m.Y") }}
Wir erwarten Sie am {{ date("d.m.Y", "+3 days") }}
Der Termin wurde auf den {{ modifyDateTime($termin_datum, "d.m.Y", "d.m.Y", "+1 day") }} verschoben
Zugang bis {{ modifyUnixTime(time(), "+30 days", "d.m.Y") }}

Die wichtigsten Formatzeichen:

Zeichen Bedeutung Beispiel
d Tag mit führender Null 02
j Tag ohne führende Null 2
m Monat mit führender Null 10
n Monat ohne führende Null 10
Y Jahr 2026
H Stunden, 24-Stunden-Format 14
i Minuten 05
s Sekunden 09
N Wochentag, 1 — Montag 5

Die Verschiebung wird auf Englisch geschrieben: "+1 day", "-2 hours", "+1 month", "next friday".

Alle Funktionen dieses Abschnitts sind einfach.

Hinweis

In älteren Szenarien findet sich die Ersetzung über ein Fragezeichen: {{ date("d.m.Y", "+? days", $tage) }} — ? wird durch das nächste Argument ersetzt. Das funktioniert weiterhin, in Ausdrücken ist es aber einfacher, Text zu verbinden: {{ date("d.m.Y", "+" ~ $tage ~ " days") }}.

Bedingungen

Funktion Was sie tut
printByCondition(a, operator, b, wenn_ja, wenn_nein) Vergleicht a und b und gibt eine der Varianten aus. Operatoren: =, !=, >, >=, <, <=. Ist a oder b leer, wird wenn_nein ausgegeben
printByExistsCondition(wert, wenn_ja, wenn_nein) wenn_ja, wenn der Wert nicht leer ist, sonst wenn_nein
{{ printByCondition($punkte, ">=", 100, "Das Geschenk gehört Ihnen!", "Sammeln Sie weiter") }}
{{ printByExistsCondition($telefonnummer, "Telefonnummer gespeichert", "Bitte hinterlassen Sie Ihre Telefonnummer") }}

Beide Funktionen sind einfach. In Ausdrücken ist der Bedingungsoperator praktischer: {{ $punkte >= 100 ? "Das Geschenk gehört Ihnen!" : "Sammeln Sie weiter" }}.

Daten des Kontakts und des Bots

Funktion Was sie tut Einfach
var("name") Wert einer Kontaktvariable; praktisch für Namen mit Leerzeichen ja
global("name") Wert einer globalen Variable ja
printContactTags() Tags des Kontakts, durch Kommas getrennt ja
printContactVariables() Alle Textvariablen des Kontakts als Liste „- name: wert“ ja
printGlobalVariables() Alle globalen Variablen des Bots als Liste „- name: wert“ ja
getBalance("währung", "bezeichnung") Kontostand des Kontakts in der Währung, mit Währungszeichen: getBalance("EUR"). Mit zweitem Argument — Zahl und Ihre Bezeichnung: getBalance("PTS", "Punkte") → 150 Punkte nein
getCartAmount() Summe des Warenkorbs aus dem alten Block „Warenkorb“ nein

Achtung

printGlobalVariables() gibt alle globalen Variablen aus. Verwenden Sie sie nicht in Nachrichten an Kontakte, wenn in globalen Variablen Schlüssel oder Passwörter gespeichert sind.

Variablen

Diese Funktionen schreiben das Ergebnis in eine Kontaktvariable und geben selbst nichts aus.

Funktion Was sie tut
setSumVariablesIntoVariable("ergebnis", a, b, ...) Speichert die Summe in der Variable ergebnis
setMultiplicationVariablesIntoVariable("ergebnis", a, b, ...) Speichert das Produkt in der Variable ergebnis

Summanden sind Zahlen oder Variablennamen in Anführungszeichen, mindestens zwei: {{ setSumVariablesIntoVariable("ergebnis", "preis", "lieferung", 100) }}.

Für Berechnungen ist der Block „Variablenoperation“ praktischer — dort können Sie ebenfalls Ausdrücke verwenden.

Listen

Funktion Was sie tut
getListRow("eintrags-id", "vorlage") Gibt einen Eintrag einer Liste nach der Vorlage aus
getListRows("listen-id", "vorlage", anzahl, "sortierfeld", "asc" oder "desc", "trennzeichen") Gibt Einträge einer Liste nach der Vorlage aus, standardmäßig 10, höchstens 50, jeder in einer neuen Zeile

In der Vorlage steht ein Feld des Eintrags in einfachen geschweiften Klammern: {Bezeichnung}, {Preis}. In getListRows können Sie eine Kontaktvariable in die Vorlage einfügen: {$stadt}.

{{ getListRows("6523f0c2a1b2c3d4e5f60718", "{Bezeichnung} — {Preis} €", 5, "Preis", "asc") }}

Der Bot liest nur Listen seines Eigentümers.

Empfehlungsprogramm

Funktion Was sie ausgibt
getInviteLink() Persönlichen Empfehlungslink des Kontakts (Telegram, MAX)
getDirectInviteLink(szenario_id) Direkten Link zum Bot mit Empfehlungsparameter; mit Szenario — Start dieses Szenarios
getInviteLinkWithSchema(szenario_id) Empfehlungslink zum Start eines Szenarios
getLinkBySchema(szenario_id) Link zum Start eines Szenarios, ohne Empfehlungsparameter
getReferrals(anzahl, "tag") Liste der vom Kontakt Eingeladenen (erste Ebene): „1. Name - username“, standardmäßig 10, höchstens 100. Mit Tag — nur mit diesem Tag
getReferralsByDepth(ebene, anzahl, "tag") Dasselbe für die angegebene Ebene
getReferralsCount("tag") Anzahl der Eingeladenen auf allen Ebenen
getReferralsCountByDepth(ebene, "tag") Anzahl der Eingeladenen auf der angegebenen Ebene; 0 — auf allen
getReferrer(ebene) Wer den Kontakt eingeladen hat; 2 — wer den Einladenden eingeladen hat usw.
getReferrers(anzahl_ebenen, ab_ebene, "tag") Liste der Einladenden nach oben entlang der Kette

Die Funktionen dieses Abschnitts sind nicht einfach. Veraltete Varianten mit Telegram im Namen (getTelegramInviteLink und andere) funktionieren genauso.

Unterschiedliche Texte für Messenger

Den Text in der Funktion sehen nur Kontakte aus dem angegebenen Messenger, alle anderen erhalten eine leere Stelle:

Funktion Messenger
messageToTelegram("text") Telegram
messageToViber("text") Viber
messageToVK("text") VK
messageToWeb("text") Webchat auf der Website
Schreiben Sie uns{{ messageToTelegram(" in Telegram: @example_support") }}{{ messageToWeb(" direkt in diesem Chat") }}

Die Funktionen dieses Abschnitts sind nicht einfach. In einem Ausdruck muss eine solche Funktion allein stehen — sie darf nicht in eine Bedingung oder eine andere Funktion gesetzt werden.