Как сохранить значение в переменную - нода «Сохранить в переменную»
Нода «Сохранить в переменную» записывает любое значение в переменную текущей сессии. Потом это значение можно подставить в сообщения, проверить в условиях или передать в другие ноды. Еще называют: записать в переменную, создать переменную, задать переменную, set variable.
Пошагово
- В левой панели редактора сценария, группа «Контакт», найдите блок «Сохранить в переменную» и перетащите на холст.
- Соедините с предыдущей нодой.
- Кликните по ноде - откроется панель «Сохранить в переменную».
- В поле «Имя переменной» введите название латиницей без пробелов, например
cityилиchosen_plan. Под этим именем значение будет доступно дальше в сценарии. - В поле «Значение» введите текст. Чтобы вставить другую переменную - нажмите
@, появится список доступных переменных. Можно смешивать текст и подстановки:Привет, {{first_name}}! Ваш заказ {{order_id}}. - Соедините выход ноды со следующим шагом.
- Сохраните сценарий. Готово. При прохождении этой ноды значение запишется в переменную и сохранится до конца воронки - переживет паузы и ожидания ответа.
Как потом использовать сохраненное значение?
В любом поле с поддержкой переменных - нажмите @ или введите {{имя_переменной}}. Например, в «Отправить сообщение» напишите Доставка в {{city}} доступна! - и получите персонализированный ответ.
Переменная сессии vs. поле контакта: что выбрать?
- Переменная сессии (эта нода) - живет только в рамках текущего прохождения сценария. После завершения воронки исчезает. Удобно для промежуточных расчетов, выбора пользователя в конкретном квизе.
- Поле контакта (нода «Установить поле») - сохраняется в карточке контакта навсегда. Видно в CRM, доступно в следующих сценариях. Удобно для имени, города, статуса клиента. Частый паттерн: «Сохранить в переменную» собирает и склеивает данные внутри воронки, а в конце «Установить поле» переносит нужное в карточку контакта.
Можно ли перезаписать переменную?
Да. Если в сценарии ниже стоит еще одна нода «Сохранить в переменную» с тем же именем - она перезапишет значение. Это работает как замена.
Если не получается
- Вместо значения осталось
{{имя}}. Переменная не была заполнена к моменту прохождения ноды: опечатка в имени, лишний пробел внутри скобок или нода-источник стоит ниже по сценарию. Проверьте: имя в подстановке совпадает один в один, и нода, которая задает нужную переменную, стоит выше по сценарию. - Нода ничего не сохранила. Поле «Имя переменной» оставлено пустым - нода пропускает шаг. Заполните имя.
{{user_answer}}подставляется пустым. Перед нодой нет шага «Ожидание ответа», или пользователь еще не ответил. Поставьте «Ожидание ответа» выше по сценарию.- Переменная не видна в списке
@в другой ноде. Поле «Имя переменной» пустое - добавьте имя, и переменная появится в каталоге. - Значение «потерялось» после паузы. Переменные сессии специально переживают паузы и ожидания. Скорее всего, переменная перезаписывается другой нодой с тем же именем ниже по сценарию. Проверьте все ноды «Сохранить в переменную» с одинаковыми именами.
- Кириллица или пробел в имени переменной. Используйте латиницу без пробелов (
my_var), иначе подстановка не сработает. Регистр важен:Cityиcity- разные переменные.
Лимиты и тариф
Нода доступна на всех тарифах, включая Free. Числовых лимитов на количество переменных или длину значения нет. Если сохраненное значение потом вставляется в сообщение - действуют обычные лимиты Telegram на длину сообщений.
Не нашли ответ?
Спросите ИИ-ассистента или напишите живой поддержке - поможем разобраться.