Помилки та обмеження
Що бачить контакт
Якщо вираз не вдалося порахувати — наприклад, у змінній текст замість числа або такої функції немає, — контакт побачить на цьому місці порожнечу. Якщо в записі помилка (не закрита дужка), вставка залишиться в тексті як написано. В обох випадках причина з'явиться в попередньому перегляді бота та журналі блоку, а решта тексту повідомлення надішлеться як завжди.
Виразом бот вважає текст, у якому є змінна через $ або виклик функції, наприклад round(. Якщо немає ні того, ні іншого — скажімо, {{#each items}}, — бот залишить текст як написано й не вважатиме його помилкою. Так не ламаються тексти, де фігурні дужки потрібні для іншого.
Де знайти причину
- Редактор блоку. Поки ви друкуєте, частини автопідстановки підсвічуються кольором, а та, що не спрацює, підкреслюється червоним — під полем з'являється причина.
- Попередній перегляд бота. Натисніть «Перевірити бота» в конструкторі та пройдіть сценарій. Якщо вставка не спрацювала, під чатом з'явиться жовтий блок: назва блоку (посилання на нього в схемі), сама вставка та причина.
- Журнал блоку. У блоків із журналом (HTTP-запит та інші) помилки автопідстановок записуються в журнал проходження, у розділ «Template errors».
Поширені помилки
| Як написано | Що не так | Як виправити |
|---|---|---|
Назву змінної з пробілами записано через $ |
Бот читає назву після $ лише до пробілу |
{{ var("Ім'я клієнта") }}, див. назви з пробілами |
Глобальну змінну у виразі записано без global |
У виразах глобальні змінні читаються лише через функцію | {{ global("Курс (USD)") * 2 }} |
{{ round($ціна * 0.9 }} |
Не закрита дужка | {{ round($ціна * 0.9) }} |
{{ discount($ціна, 10) }} |
Такої функції немає | Перевірте назву в довіднику функцій |
{{ $місто * 2 }} |
У змінній текст, а не число | Перевірте, що в змінній число |
{{ phone + 1 }} за порожнього телефону |
Порожнє значення | Задайте запасне: {{ (phone ?? 0) + 1 }} |
{{ upper(getInviteLink()) }} у кнопці |
У кнопках доступні лише прості функції | Винесіть посилання в текст повідомлення |
{{ $a > 1 ? messageToTelegram("...") : "" }} |
Функції, що надсилають повідомлення або записують змінні, не можна ставити всередину виразу | Використовуйте функцію окремою вставкою |
Обмеження
| Що | Межа |
|---|---|
Довжина виразу всередині {{ ... }} |
1000 символів. Довший — текст залишається як написано |
| Результат однієї вставки | 10 000 символів понад довжину прочитаних змінних. Значення змінної виводиться повністю будь-якої довжини, зокрема через var(), з trim, upper, len над ним і з дописаним текстом: {{ $x ~ "!" }} |
| Виразів в одному тексті | 200 |
| Функцій в одному тексті | 100 простих і 10 решти. Понад межу функції не виконуються: окрема вставка на кшталт {{ getInviteLink() }} залишиться в тексті як написана, а всередині виразу на місці функції буде порожнеча й помилка в журналі. Читання змінної ($ім'я, var(), global()) функцією не вважається |
У виразах недоступні регулярні вирази (matches), діапазони (1..10) і звернення до внутрішніх даних платформи.