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}}@username des 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}} — Tokens YYYY, 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