KI fragen
Deutsch DE
Zu Watbot

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.

Einstellungspanel des Blocks „JavaScript-Interpreter“Einstellungspanel des Blocks „JavaScript-Interpreter“

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.

Code-Editor mit Vorschlag: zu „setCon“ werden setContactTag() und setContactVariable() angebotenCode-Editor mit Vorschlag: zu „setCon“ werden setContactTag() und setContactVariable() angeboten

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 let und const, 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.

„Ausführungsprotokoll“ des JavaScript-Blocks: Quellcode, Wert des letzten Ausdrucks und Liste der Aktionen„Ausführungsprotokoll“ des JavaScript-Blocks: Quellcode, Wert des letzten Ausdrucks und Liste der Aktionen

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.