Документация › Для разработчиков › Язык выражений
Язык выражений (expressions)
Подставляй в тексты бота живые данные:Привет, {{client_name}}!. Выражения работают в промпте, дожимах и шаблонах: на основе Handlebars, безопасно.
⏱ 8 мин · 👤 для владельца и разработчика · 🟢 live
За 30 секунд:
- Синтаксис это двойные фигурные скобки:
{{client_name}},{{phone}},{{stage}}.- Работает в системном промпте, дожимах, шаблонах уведомлений, тест-чате.
- Есть помощники: даты/время, текст (
{{upper …}}), условия ({{#if …}}), математика.- Это безопасный шаблонизатор (Handlebars): произвольный код не выполняется.
Что это и где работает
Выражения это «вставки» в тексты бота, которые на лету заменяются на реальные данные диалога. Например, Здравствуйте, {{client_name}}! превратится в Здравствуйте, Алмас!.
Работают в: системном промпте, сообщениях дожимов, шаблонах уведомлений, тест-чате.
В документах базы знаний выражения не подставляются: фигурные скобки в прайсе или договоре остаются обычным текстом, бот видит их как есть.
Переменные и помощники: живой справочник
Полный список переменных ({{client_name}}, {{phone}}, {{stage}}, {{data.поле}}…) и помощников (даты, текст, условия {{#if}}, математика, {{digits}}): в живом справочнике выражений. Он строится прямо из кода движка, поэтому всегда совпадает с тем, что реально умеет бот: здесь копию не держим, чтобы она не устаревала.
💡{{client_name}}и{{name}}: одно и то же, оба работают. Аналогично{{client_phone}}и{{phone}}.
Пример:
{{#if client_name}}Здравствуйте, {{client_name}}!{{else}}Здравствуйте!{{/if}}
Сегодня {{day_of_week}}, {{date}}. Ваш статус: {{default lead_status "новый"}}.🕐 Дата и время ({{date}},{{time}},{{now}},{{day_of_week}},{{format_date}}) считаются по часовому поясу проекта из настроек бота. Если пояс не задан, по Алматы. Другой пояс можно указать первым параметром:{{time "Europe/Moscow"}}.
💡 Числа из анкеты сравниваются как числа:{{#if (eq data.amount 100)}}сработает и тогда, когда клиент написал «100» текстом, а{{#if (gt data.amount 1000)}}понимает «5 000» с пробелом.
Безопасность
Это безопасный шаблонизатор, а не выполнение кода. Нельзя запустить произвольный JS, обратиться к файлам или сети. Встроены защиты от перегрузки: ограничения на длину шаблона, число и глубину условных блоков, размер данных и времени выполнения. Если шаблон «слишком тяжёлый», условные блоки останутся текстом, а простые вставки всё равно подставятся, бот не зависнет.
📌 Невалидное выражение (опечатка в скобках) не ломает сообщение: оно останется текстом, а остальные вставки в том же тексте подставятся как обычно.
Простыми словами
Выражения это способ вставлять в тексты бота «живые» кусочки. Пишешь в промпте Привет, {{client_name}}!, и каждому клиенту бот подставит его имя. Можно вставлять телефон, текущую дату, стадию разговора и собранные данные. Есть и помощники посложнее: написать дату в нужном формате, сделать текст заглавными буквами, показать разный текст в зависимости от условия («если имя известно, поздоровайся по имени, иначе просто привет»).
Звучит как программирование, но бояться нечего: это безопасные «шаблоны», а не настоящий код, сломать или взломать через них ничего нельзя, и даже если ошибёшься в скобках, сообщение не развалится. Работают они в промпте, дожимах: везде, где бот пишет текст.
Дальше: → Формат данных и интеграция фронта
Связано: Системный промпт · Дожимы · Кастомные вебхуки
Не получилось? → напиши в саппорт