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.