Підстановки та формули
Підстановки — це змінні виду {{...}}, що підставляються в тексти повідомлень, поля дій і шаблони кнопок при спрацьовуванні реакції. Нерозпізнані підстановки залишаються як є. Крім змінних є формули для обчислень. Вставити змінну допомагає кнопка «Підстановки» в редакторі повідомлення.
Дані відправника
{{first_name}},{{last_name}}— ім'я та прізвище.{{username}}—@usernameкористувача.{{user_id}}— числовий Telegram-ID.
Дані події та чату
{{text}}(він же{{received_message}}) — текст вхідного повідомлення.{{message_id}}(він же{{received_message_id}}) — ID вхідного повідомлення.{{chat_id}},{{chat_title}}(він же{{chat_name}}) — чат, де відбулася подія.{{topic_id}},{{topic_url}}— топік (для форумів).
Дата і час
{{date}}— дата (РРРР-ММ-ДД),{{time}}— час (ГГ:ХХ),{{datetime}}— дата і час.- Форматування:
{{date:DD.MM.YYYY HH:mm}}— токениYYYY,YY,MM,DD,HH,mm,ss.
Параметри користувача
{{param.ключ}}(він же{{params.ключ}}або{{recipient.ключ}}) — значення параметра підписника. Параметри наповнюються діями «Змінити параметри», «Зберегти повідомлення» та відповідями в діалозі.
Контекст виконання (ctx)
{{ctx.ключ}}(він же{{context.ключ}}) — тимчасові значення поточного запуску: дані вхідного вебхука, результати дій (веб-запит, запит до джерела, ШІ), відновлені дані кнопки (Carry), елементи циклу.- У циклі за списком елемент доступний за своїм псевдонімом, наприклад
{{item.name}}.
Формули
Конструкція {{= вираз}} обчислює вираз прямо в тексті. Той самий рушій працює в дії «Обчислення» і в умовах таблиці рішень. У виразах можна посилатися на параметри та значення ctx за іменем, використовувати арифметику, порівняння, логіку і десятки функцій з російськими аліасами (ОКРУГЛ, ЕСЛИ, СЦЕПИТЬ та ін.).
Приклад: {{= ОКРУГЛ(param.total * 0.9) }} — знижка 10% від суми з параметра.
Повний синтаксис і список функцій — у розділі Формули.
HTML у підстановках
Повідомлення надсилаються з розміткою HTML. Щоб значення підстановки не зламало верстку (наприклад, якщо ім'я користувача містить <), підставлені значення за замовчуванням екрануються: HTML-символи перетворюються на безпечний текст. Власні теги, які ви написали прямо в тексті реакції (<b>, <a> тощо), не чіпаються.
Якщо значення саме містить готову розмітку (наприклад, збережений у параметрі анонс із <b>...</b>) і ви хочете вставити її як є, позначте підстановку префіксом &:
{{& key}}— сира вставка для підстановок{{...}}.{&user:key},{&recipient:key},{&global:key}— сира вставка для namespace-підстановок.
Префікс & вимикає екранування лише для конкретної підстановки — ви берете на себе довіру до джерела значення. Підписник-контрольовані токени ({{first_name}} тощо) краще залишати екранованими.
Під час імпорту ботів з інших конструкторів namespace-підстановки {user:…}/{recipient:…}/{global:…} автоматично переносяться в сиру форму {&…} — там часто лежать значення з готовою розміткою, як це й працювало у вихідному конструкторі.
Важливо про формат
Підстановки {{...}} працюють у текстах, підписах, тілах запитів і шаблонах кнопок. Імена параметрів і ключів ctx давайте короткими і латиницею (email, total, order_id) — так їх зручніше підставляти.
Що далі
- Формули — синтаксис DSL і повний список функцій.
- Повідомлення та кнопки — де застосовуються підстановки.
- Дії — дії, що наповнюють параметри та
ctx. - Колекції та дані — зберігання даних між запусками.