Спросить ИИ
Русский RU
Перейти в Watbot

Ошибки и ограничения

Что видит контакт

Если выражение посчитать не удалось — например, в переменной текст вместо числа или такой функции нет, — контакт увидит на этом месте пустоту. Если в записи опечатка (не закрыта скобка), вставка останется в тексте как написана. В обоих случаях причина появится в превью бота и журнале блока, а остальной текст сообщения отправится как обычно.

Выражением бот считает текст, в котором есть переменная через $ или вызов функции, например 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) и обращение к внутренним данным платформы.