Ersetzungen und Formeln
Ersetzungen sind Variablen der Form {{...}}, die beim Auslösen einer Reaktion in Nachrichtentexte, Aktionsfelder und Schaltflächenvorlagen eingesetzt werden. Nicht erkannte Ersetzungen bleiben unverändert. Zusätzlich zu Variablen gibt es Formeln für Berechnungen. Die Schaltfläche „Ersetzungen" im Nachrichten-Editor hilft beim Einfügen von Variablen.
Absenderdaten
{{first_name}},{{last_name}}— Vor- und Nachname.{{username}}—@usernamedes Nutzers.{{user_id}}— numerische Telegram-ID.
Ereignis- und Chat-Daten
{{text}}(auch{{received_message}}) — Text der eingehenden Nachricht.{{message_id}}(auch{{received_message_id}}) — ID der eingehenden Nachricht.{{chat_id}},{{chat_title}}(auch{{chat_name}}) — Chat, in dem das Ereignis stattfand.{{topic_id}},{{topic_url}}— Thema (für Foren).
Datum und Uhrzeit
{{date}}— Datum (JJJJ-MM-TT),{{time}}— Uhrzeit (HH:MM),{{datetime}}— Datum und Uhrzeit.- Formatierung:
{{date:DD.MM.YYYY HH:mm}}— TokensYYYY,YY,MM,DD,HH,mm,ss.
Nutzerparameter
{{param.schlüssel}}(auch{{params.schlüssel}}oder{{recipient.schlüssel}}) — Wert des Abonnentenparameters. Parameter werden durch die Aktionen „Parameter ändern", „Nachricht speichern" und Dialogantworten befüllt.
Ausführungskontext (ctx)
{{ctx.schlüssel}}(auch{{context.schlüssel}}) — temporäre Werte des aktuellen Ausführungslaufs: Daten des eingehenden Webhooks, Aktionsergebnisse (Web-Anfrage, Quellanfrage, KI), wiederhergestellte Schaltflächendaten (Carry), Schleifenelemente.- In der Schleife über eine Liste ist das Element unter seinem Alias zugänglich, z. B.
{{item.name}}.
Formeln
Das Konstrukt {{= ausdruck}} berechnet den Ausdruck direkt im Text. Dieselbe Engine funktioniert in der Aktion „Berechnung" und in den Bedingungen der Entscheidungstabelle. In Ausdrücken kann auf Parameter und ctx-Werte nach Namen zugegriffen werden; Arithmetik, Vergleiche, Logik und Dutzende von Funktionen stehen zur Verfügung — einschließlich russischer Aliase wie ROUND, IF, CONCAT u. a.
Beispiel: {{= ROUND(param.total * 0.9) }} — 10% Rabatt auf den Betrag aus dem Parameter.
Vollständige Syntax und Funktionsliste — im Abschnitt Formeln.
HTML in Ersetzungen
Nachrichten werden mit HTML-Markup gesendet. Damit ein eingesetzter Wert das Layout nicht zerstört (z. B. wenn ein Nutzername < enthält), werden eingesetzte Werte standardmäßig escaped: HTML-Zeichen werden zu sicherem Text. Tags, die Sie direkt in den Reaktionstext schreiben (<b>, <a>, …), bleiben unangetastet.
Wenn ein Wert selbst fertiges Markup enthält (z. B. eine in einem Parameter gespeicherte Ankündigung mit <b>...</b>) und Sie ihn unverändert einfügen möchten, stellen Sie der Ersetzung ein & voran:
{{& key}}— Rohes Einfügen für{{...}}-Ersetzungen.{&user:key},{&recipient:key},{&global:key}— rohes Einfügen für Namespace-Ersetzungen.
Das Präfix & deaktiviert das Escaping nur für diese eine Ersetzung — Sie bürgen für die Vertrauenswürdigkeit der Wertquelle. Vom Abonnenten kontrollierte Tokens ({{first_name}}, …) lassen Sie besser escaped.
Beim Import von Bots aus anderen Buildern werden Namespace-Ersetzungen {user:…}/{recipient:…}/{global:…} automatisch in die Rohform {&…} migriert — sie enthalten typischerweise Werte mit fertigem Markup, so wie es im ursprünglichen Builder funktionierte.
Wichtig zum Format
Ersetzungen {{...}} funktionieren in Texten, Bildunterschriften, Anfrage-Bodies und Schaltflächenvorlagen. Geben Sie Parameter- und ctx-Schlüsselnamen kurz und in lateinischen Buchstaben (email, total, order_id) — so lassen sie sich bequemer einfügen.
Weiter
- Formeln — DSL-Syntax und vollständige Funktionsliste.
- Nachrichten und Schaltflächen — wo Ersetzungen verwendet werden.
- Aktionen — Aktionen, die Parameter und
ctxbefüllen. - Sammlungen und Daten — Datenspeicherung zwischen Ausführungen.