JavaScript-Interpreter
Der Block führt Ihren JavaScript-Code aus: Er rechnet, wandelt Daten um, ändert Variablen und Tags des Kontakts und entscheidet, wohin das Szenario weitergeht. Von sich aus sendet der Block nichts in den Chat — nur das, was Sie aus dem Code senden.


Einstellungen
Der Block hat ein einziges Feld — den Code-Editor. Beginnen Sie, den Namen einer Funktion zu tippen, und der Editor schlägt eine Ergänzung vor.


Was dem Code zur Verfügung steht
Die Daten des Kontakts sind fertige Variablen. Alle Werte sind Zeichenfolgen. Fehlt dem Kontakt etwas, gibt es die Variable nicht — prüfen Sie das mit typeof phone !== 'undefined'.
| Variable | Was darin steht |
|---|---|
id |
ID des Kontakts auf der Plattform |
name, first_name, last_name |
Der vollständige Name, das erste Wort des Namens, das zweite Wort |
phone, email, address |
Telefon, E-Mail, Adresse |
username |
Benutzername im Messenger |
telegram_id, max_id |
ID der Person in Telegram und MAX |
created_at |
Datum, an dem der Kontakt entstanden ist, in der Form 2026-01-31 12:00:00 |
bot_id |
ID des Bots |
Funktionen:
| Funktion | Was sie tut |
|---|---|
getContactVariable(name) |
Gibt den Wert einer Kontaktvariable zurück oder undefined, wenn es sie nicht gibt. Der Wert ist eine Zeichenfolge: Für Berechnungen wandeln Sie ihn mit Number() um |
setContactVariable(name, value) |
Schreibt eine Kontaktvariable. Der Wert ist eine Zeichenfolge, eine Zahl oder true/false. Ein Objekt oder Array wandeln Sie zuerst in eine Zeichenfolge um: JSON.stringify(value) |
deleteContactVariable(name) |
Löscht eine Kontaktvariable |
getContactTags() |
Gibt ein Array mit den Tags des Kontakts zurück |
hasContactTag(name) |
true, wenn der Kontakt den Tag hat |
setContactTag(name) |
Fügt einen Tag hinzu |
deleteContactTag(name) |
Entfernt einen Tag |
getGlobalVariable(name) |
Gibt eine globale Variable des Bots zurück |
setGlobalVariable(name, value) |
Schreibt eine globale Variable. Der Wert wird als Zeichenfolge gespeichert |
deleteGlobalVariable(name) |
Löscht eine globale Variable |
sendMessage(text) |
Sendet dem Kontakt einen Text. Pro Ausführung bis zu zehn Nachrichten |
goToBlock(id) |
Schickt den Kontakt in den Block mit der angegebenen ID. Pro Ausführung nur ein Aufruf |
disableContinue() |
Schaltet die Verbindung „Fortsetzen“ für diese Ausführung ab |
hash_hmac(algo, text, key, format) |
HMAC-Signatur. Algorithmus — md5, sha1, sha256, sha512 oder md4. Das Ergebnis ist hexadezimal, und wenn Sie als vierten Parameter 'base64' übergeben — in Base64 |
base64_encode(text), base64_decode(text) |
Base64-Kodierung und -Dekodierung |
Parameter, Rückgabewerte und Beispiele zu jeder Funktion finden Sie im Abschnitt JavaScript API.
Variablen und Tags werden dem Kontakt geschrieben, nachdem der Code ohne Fehler durchgelaufen ist. Innerhalb des Codes sieht getContactVariable bereits den Wert, den Sie gerade geschrieben haben.
Einen Preis mit Rabatt berechnen und das Ergebnis speichern:
var price = Number(getContactVariable('preis'));
var total = Math.round(price * 0.9);
setContactVariable('gesamt', total);
Der nächste Block zeigt das Ergebnis mit dem Platzhalter {{ $gesamt }}.
Einen Kontakt mit Tag in einen eigenen Zweig schicken:
if (hasContactTag('vip')) {
goToBlock(12345);
disableContinue();
}
Setzen Sie statt 12345 die ID des gewünschten Blocks ein — sie steht in den Einstellungen des Blocks. goToBlock allein hebt die Verbindung „Fortsetzen“ nicht auf: Ohne disableContinue() führt der Bot sowohl den angegebenen Block aus als auch den, der an „Fortsetzen“ angeschlossen ist.
Ausgänge
- „Fortsetzen“ — wird nach der Ausführung des Codes ausgelöst, wenn der Code
disableContinue()nicht aufgerufen hat.
Grenzen
- Die Sprache ist JavaScript nach dem Standard ES5: ohne
letundconst, Pfeilfunktionen und Template-Strings. - Reguläre Ausdrücke — ohne Lookahead, Lookbehind und Rückverweise, mehr dazu unter Sprache.
- Der Code — bis zu 16 384 Zeichen.
- Für die Ausführung — 5 Sekunden. Code, der länger braucht, wird mit einem Fehler abgebrochen.
- Netzwerkanfragen aus dem Code sind nicht möglich — dafür gibt es den Block „HTTP-Anfrage“.
Wenn der Code nicht funktioniert
Öffnen Sie das „Ausführungsprotokoll“ in den Einstellungen des Blocks. Der Eintrag zeigt den Quellcode, die Liste der ausgeführten Aktionen und den Wert des letzten Ausdrucks — er eignet sich gut zur Fehlersuche: Schreiben Sie ans Ende des Codes den Namen einer Variable, und ihr Wert landet im Protokoll.


Achtung
Endet der Code mit einem Fehler, geht der Fehlertext an den Kontakt in den Chat, und das Szenario läuft über die Verbindung „Fortsetzen“ weiter. Prüfen Sie den Code im Bot-Test, bevor Sie ihn auf Menschen loslassen.