Довідник функцій
Функцію викликають так: {{ назва(аргумент1, аргумент2) }}. Аргументи — текст у лапках, числа, змінні ($назва) і, у виразах, результати інших функцій.
Функції з позначкою проста працюють скрізь, де є автопідстановки. Решта — лише в текстах повідомлень, умовах і деяких налаштуваннях блоків, див. Де працюють автопідстановки.
Текст
| Функція | Що робить | Приклад | Результат |
|---|---|---|---|
upper(текст) |
Усі літери великі | {{ upper("привіт") }} |
ПРИВІТ |
lower(текст) |
Усі літери малі | {{ lower("ПРИВІТ") }} |
привіт |
capitalize(текст) |
Перша літера велика | {{ capitalize("анна") }} |
Анна |
len(текст) |
Кількість символів | {{ len("Привіт") }} |
6 |
trim(текст) |
Прибирає пробіли по краях | {{ trim(" так ") }} |
так |
replace(текст, що, на_що) |
Замінює всі входження | {{ replace("050-000-00", "-", "") }} |
05000000 |
substr(текст, початок, довжина) |
Частина тексту; початок з 0 | {{ substr("Привіт", 0, 3) }} |
При |
number_format(число, знаків, дробовий_роздільник, роздільник_тисяч) |
Число з роздільниками. Типово 0 знаків, кома й пробіл | {{ number_format(1234.5, 2) }} |
1 234,50 |
urlencode(текст) |
Кодує текст для посилання | https://site.ua/?q={{ urlencode($запит) }} |
|
randomText(варіант1, варіант2, ...) |
Один варіант навмання | {{ randomText("Привіт", "Вітаю") }} |
|
strRandom(довжина, великі) |
Випадковий рядок із літер і цифр, до 1000 символів. true другим аргументом — лише великі літери |
{{ strRandom(8, true) }} |
K3JD8QWZ |
Усі функції розділу — прості.
Математика
| Функція | Що робить | Приклад | Результат |
|---|---|---|---|
round(число, знаків) |
Округлення, типово до цілого | {{ round(2.567, 2) }} |
2.57 |
ceil(число) |
Округлення вгору | {{ ceil(2.1) }} |
3 |
floor(число) |
Округлення вниз | {{ floor(2.9) }} |
2 |
abs(число) |
Модуль числа | {{ abs(-5) }} |
5 |
sqrt(число) |
Квадратний корінь | {{ sqrt(16) }} |
4 |
max(a, b, ...) |
Найбільше | {{ max(3, 7, 5) }} |
7 |
min(a, b, ...) |
Найменше | {{ min(3, 7, 5) }} |
3 |
rand(від, до) |
Випадкове ціле число | {{ rand(1, 100) }} |
Усі функції розділу — прості. Додавання, віднімання, множення, ділення та степінь пишуть знаками, див. Арифметика.
Застарілі функції
Ці функції й надалі працюють, але в нових текстах пишіть знаки — так коротше й зрозуміліше:
| Застаріла функція | Як писати тепер |
|---|---|
sum($a, $b), сумма($a, $b) |
{{ $a + $b }} |
diff($a, $b), разность($a, $b) |
{{ $a - $b }} |
multiplication($a, $b), произведение($a, $b) |
{{ $a * $b }} |
div($a, $b), деление($a, $b) |
{{ $a / $b }} |
pow($a, $b) |
{{ $a ** $b }} |
Наприклад, замість {{ sum($ціна, $доставка) }} — {{ $ціна + $доставка }}.
Дата і час
Увага
Час рахується за UTC. Київський час — UTC+2 узимку й UTC+3 улітку:
{{ date("H:i", "+3 hours") }}для літнього часу.
| Функція | Що робить |
|---|---|
date(формат, дата) |
Дата в потрібному форматі. Без дати — зараз. Дата — "2026-10-02", "+7 days", "next monday" тощо |
time() |
Поточний час у секундах від 1970 року (Unix time) |
modifyDateTime(дата, формат_дати, формат_виведення, зсув) |
Розбирає дату зі змінної за її форматом, зсуває й виводить в іншому форматі |
modifyUnixTime(unix_time, зсув, формат) |
Зсуває Unix time; з форматом виводить дату, без формату — новий Unix time |
Приклади:
Сьогодні {{ date("d.m.Y") }}
Чекаємо на вас {{ date("d.m.Y", "+3 days") }}
Запис перенесено на {{ modifyDateTime($дата_запису, "d.m.Y", "d.m.Y", "+1 day") }}
Доступ до {{ modifyUnixTime(time(), "+30 days", "d.m.Y") }}
Основні символи формату:
| Символ | Значення | Приклад |
|---|---|---|
d |
день із нулем | 02 |
j |
день без нуля | 2 |
m |
місяць із нулем | 10 |
n |
місяць без нуля | 10 |
Y |
рік | 2026 |
H |
години, 24-годинний формат | 14 |
i |
хвилини | 05 |
s |
секунди | 09 |
N |
день тижня, 1 — понеділок | 5 |
Зсув пишуть англійською: "+1 day", "-2 hours", "+1 month", "next friday".
Усі функції розділу — прості.
Примітка
У старих сценаріях трапляється підстановка через знак питання:
{{ date("d.m.Y", "+? days", $дні) }}—?замінюється наступним аргументом. Це й надалі працює, але у виразах простіше склеїти:{{ date("d.m.Y", "+" ~ $дні ~ " days") }}.
Умови
| Функція | Що робить |
|---|---|
printByCondition(a, оператор, b, якщо_так, якщо_ні) |
Порівнює a і b та виводить один із варіантів. Оператори: =, !=, >, >=, <, <=. Якщо a або b порожні — виводить якщо_ні |
printByExistsCondition(значення, якщо_так, якщо_ні) |
якщо_так, якщо значення не порожнє, інакше якщо_ні |
{{ printByCondition($бали, ">=", 100, "Подарунок ваш!", "Накопичуйте далі") }}
{{ printByExistsCondition($телефон, "Телефон збережено", "Залиште телефон") }}
Обидві функції — прості. У виразах зручніше умовний оператор: {{ $бали >= 100 ? "Подарунок ваш!" : "Накопичуйте далі" }}.
Дані контакту та бота
| Функція | Що робить | Проста |
|---|---|---|
var("назва") |
Значення змінної контакту; зручно для назв із пробілами | так |
global("назва") |
Значення глобальної змінної | так |
printContactTags() |
Теги контакту через кому | так |
printContactVariables() |
Усі текстові змінні контакту списком «- назва: значення» | так |
printGlobalVariables() |
Усі глобальні змінні бота списком «- назва: значення» | так |
getBalance("валюта", "підпис") |
Баланс рахунку контакту у валюті, з її знаком: getBalance("UAH"). З другим аргументом — число й ваш підпис: getBalance("PTS", "балів") → 150 балів |
ні |
getCartAmount() |
Сума кошика старого блоку «Кошик» | ні |
Увага
printGlobalVariables()виводить усі глобальні змінні. Не використовуйте її в повідомленнях контактам, якщо в глобальних змінних зберігаються ключі чи паролі.
Змінні
Функції записують результат у змінну контакту й самі нічого не виводять.
| Функція | Що робить |
|---|---|
setSumVariablesIntoVariable("підсумок", a, b, ...) |
Зберігає суму в змінну підсумок |
setMultiplicationVariablesIntoVariable("підсумок", a, b, ...) |
Зберігає добуток у змінну підсумок |
Доданки — числа або назви змінних у лапках, потрібно щонайменше два: {{ setSumVariablesIntoVariable("підсумок", "ціна", "доставка", 100) }}.
Для обчислень зручніший блок «Операція зі змінною» — там теж можна використовувати вирази.
Списки
| Функція | Що робить |
|---|---|
getListRow("id запису", "шаблон") |
Виводить один запис списку за шаблоном |
getListRows("id списку", "шаблон", скільки, "поле сортування", "asc" або "desc", "роздільник") |
Виводить записи списку за шаблоном, типово 10, не більше 50, кожен із нового рядка |
У шаблоні поле запису пишуть в одинарних фігурних дужках: {Назва}, {Ціна}. У getListRows у шаблон можна вставити змінну контакту: {$місто}.
{{ getListRows("6523f0c2a1b2c3d4e5f60718", "{Назва} — {Ціна} грн", 5, "Ціна", "asc") }}
Бот читає лише списки свого власника.
Реферальна програма
| Функція | Що виводить |
|---|---|
getInviteLink() |
Особисте реферальне посилання контакту (Telegram, MAX) |
getDirectInviteLink(id_сценарію) |
Пряме посилання на бота з реферальним параметром; зі сценарієм — запуск цього сценарію |
getInviteLinkWithSchema(id_сценарію) |
Реферальне посилання на запуск сценарію |
getLinkBySchema(id_сценарію) |
Посилання на запуск сценарію, без реферального параметра |
getReferrals(скільки, "тег") |
Список запрошених контактом (перша лінія): «1. Ім'я - username», типово 10, не більше 100. З тегом — лише з цим тегом |
getReferralsByDepth(лінія, скільки, "тег") |
Те саме для вказаної лінії |
getReferralsCount("тег") |
Кількість запрошених на всіх лініях |
getReferralsCountByDepth(лінія, "тег") |
Кількість запрошених на вказаній лінії; 0 — на всіх |
getReferrer(лінія) |
Того, хто запросив контакт; 2 — того, хто запросив запрошувача, і т. д. |
getReferrers(скільки_ліній, з_лінії, "тег") |
Список запрошувачів угору ланцюжком |
Функції розділу — не прості. Застарілі варіанти з Telegram у назві (getTelegramInviteLink та інші) працюють так само.
Різні тексти для месенджерів
Текст усередині функції побачать лише контакти з указаного месенджера, решті підставиться порожнє місце:
| Функція | Месенджер |
|---|---|
messageToTelegram("текст") |
Telegram |
messageToViber("текст") |
Viber |
messageToVK("текст") |
ВКонтакте |
messageToWeb("текст") |
Вебчат на сайті |
Напишіть нам{{ messageToTelegram(" у Telegram: @example_support") }}{{ messageToWeb(" просто в цьому чаті") }}
Функції розділу — не прості. У виразі така функція має бути єдиною — її не можна ставити всередину умови чи іншої функції.