Podstawiania i formuły
Podstawiania to zmienne w formacie {{...}}, które są wstawiane do tekstów wiadomości, pól akcji i szablonów przycisków w momencie wyzwolenia reakcji. Nierozpoznane podstawiania pozostają bez zmian. Oprócz zmiennych dostępne są formuły do obliczeń. W wstawieniu zmiennej pomaga przycisk „Podstawiania" w edytorze wiadomości.
Dane nadawcy
{{first_name}},{{last_name}}— imię i nazwisko.{{username}}—@usernameużytkownika.{{user_id}}— numeryczne Telegram-ID.
Dane zdarzenia i czatu
{{text}}(alias{{received_message}}) — tekst przychodzącej wiadomości.{{message_id}}(alias{{received_message_id}}) — ID przychodzącej wiadomości.{{chat_id}},{{chat_title}}(alias{{chat_name}}) — czat, w którym nastąpiło zdarzenie.{{topic_id}},{{topic_url}}— temat (dla forów).
Data i czas
{{date}}— data (RRRR-MM-DD),{{time}}— czas (GG:MM),{{datetime}}— data i czas.- Formatowanie:
{{date:DD.MM.YYYY HH:mm}}— tokenyYYYY,YY,MM,DD,HH,mm,ss.
Parametry użytkownika
{{param.klucz}}(alias{{params.klucz}}lub{{recipient.klucz}}) — wartość parametru subskrybenta. Parametry są wypełniane akcjami „Zmień parametry", „Zapisz wiadomość" oraz odpowiedziami w dialogu.
Kontekst wykonania (ctx)
{{ctx.klucz}}(alias{{context.klucz}}) — tymczasowe wartości bieżącego uruchomienia: dane przychodzącego webhooka, wyniki akcji (żądanie webowe, zapytanie do źródła, AI), przywrócone dane przycisku (Carry), elementy pętli.- W pętli po liście element jest dostępny pod własnym aliasem, np.
{{item.name}}.
Formuły
Konstrukcja {{= wyrażenie}} oblicza wyrażenie bezpośrednio w tekście. Ten sam silnik działa w akcji „Obliczenie" i w warunkach tabeli decyzji. W wyrażeniach można odwoływać się do parametrów i wartości ctx po nazwie, używać arytmetyki, porównań, logiki i dziesiątek funkcji (np. ROUND, IF, CONCAT).
Przykład: {{= ROUND(param.total * 0.9) }} — rabat 10% od kwoty z parametru.
Pełna składnia i lista funkcji — w sekcji Formuły.
HTML w podstawianiach
Wiadomości są wysyłane ze znacznikami HTML. Aby podstawiona wartość nie zepsuła układu (na przykład gdy nazwa użytkownika zawiera <), podstawiane wartości są domyślnie escapowane: znaki HTML zamieniają się w bezpieczny tekst. Znaczniki, które piszesz bezpośrednio w tekście reakcji (<b>, <a>, …), pozostają nietknięte.
Jeśli wartość sama zawiera gotowe znaczniki (na przykład ogłoszenie zapisane w parametrze z <b>...</b>) i chcesz wstawić ją bez zmian, poprzedź podstawianie znakiem &:
{{& key}}— surowe wstawienie dla podstawiań{{...}}.{&user:key},{&recipient:key},{&global:key}— surowe wstawienie dla podstawiań namespace.
Prefiks & wyłącza escapowanie tylko dla tego jednego podstawiania — bierzesz na siebie odpowiedzialność za zaufanie do źródła wartości. Tokeny kontrolowane przez subskrybenta ({{first_name}}, …) lepiej zostawić escapowane.
Podczas importu botów z innych konstruktorów podstawiania namespace {user:…}/{recipient:…}/{global:…} są automatycznie migrowane do postaci surowej {&…} — zwykle zawierają wartości z gotowymi znacznikami, tak jak działało to w konstruktorze źródłowym.
Ważne o formacie
Podstawiania {{...}} działają w tekstach, podpisach, treściach żądań i szablonach przycisków. Nadawaj parametrom i kluczom ctx krótkie nazwy łacińskie (email, total, order_id) — wygodniej je wstawiać.
Co dalej
- Formuły — składnia DSL i pełna lista funkcji.
- Wiadomości i przyciski — gdzie stosuje się podstawiania.
- Akcje — akcje, które wypełniają parametry i
ctx. - Kolekcje i dane — przechowywanie danych między uruchomieniami.