01Что такое переменная
Переменная — это коробка с названием. Бот кладёт в неё значение и позже читает его обратно.
Бот спрашивает «В каком городе вы находитесь?», человек отвечает «Берлин», и ответ попадает в переменную city. Через десять сообщений бот всё ещё может сказать «Берлин»: значение хранится у конкретного человека, а не у одного сообщения.
Само значение вы руками не трогаете. В сообщении переменная выглядит как небольшая цветная плашка с её названием — это и есть плашка переменной. Считайте её заполнителем — {{city}}, — который FlowCastle подменяет настоящим значением в момент отправки.

02Какие бывают переменные
Переменные контакта хранят своё значение для каждого человека. У одного подписчика city — Берлин, у другого — Лиссабон. Все собранные ответы живут здесь.
Переменные приложения хранят одно значение на всех. support_email одинаков для всех подписчиков. Берите их для настроек, которые иначе пришлось бы менять в двадцати сообщениях. В окне выбора переменных эта категория называется Приложение.
Переменные бота работают как переменные приложения, но принадлежат одному боту. Категория Бот появляется, только когда к приложению подключено больше одного бота, — поэтому большинство её никогда не видит.
Системные переменные заполняются за вас: их берут из мессенджера и из часов. Их можно только читать. В окне выбора это категория Системные (названия полей внутри неё пока на английском, как и названия системных полей).
Есть и пятая категория — Действия. Она появляется только в блоке, где действие возвращает результат: это значения, которые действие только что посчитало.
03Как вставить переменную в сообщение
Откройте блок «Сообщение» и найдите поле Текст сообщения. Под полем есть небольшая панель, и первая кнопка на ней — {}.
- Поставьте курсор туда, где должно появиться значение.
- Нажмите
{}. Откроется окно выбора переменных: слева категории, сверху поиск. - Нажмите Контакт, затем
city.
Переменная вставится плашкой. Другого рабочего способа нет: если просто напечатать слово city, пользователю уйдёт слово «city».
Способ быстрее — наберите {{ прямо в поле. Окно откроется у курсора и будет фильтровать список по мере ввода.
Нужно вставить несколько переменных подряд? Держите Ctrl, Cmd или Alt при нажатии — окно останется открытым и не закроется после первого выбора.

04Системные переменные, которые уже есть
Откройте категорию Системные — внутри две группы.
User Fields — данные о человеке: First Name (имя), Last Name (фамилия), Email, Phone (телефон), Platform ID (ID в мессенджере), Subscribed At (когда подписался), Created At (когда создан контакт), Status (статус), Tags (теги), ID (Internal) (внутренний ID), Username, Language Code (код языка из Telegram) и Language (язык, который выбрал бот).
Expressions — то, что вычисляется в момент отправки: Current Date (дата), Current Time (время), Current Day of Week (день недели), Current Chat ID (ID текущего чата), Last 100 messages (последние 100 сообщений), Bot URL (ссылка на бота), Referral Link (реферальная ссылка) и Identity Token (токен для отслеживания на сайте).
Чаще всего боты берут First Name. Значение приходит из мессенджера, и у части аккаунтов имени просто нет — поэтому стройте фразу так, чтобы она читалась и без имени.

05Как создать новую переменную
Создать её можно, не выходя из сообщения, которое вы пишете.
- В окне выбора переменных нажмите категорию, к которой относится переменная, — Приложение или Контакт.
- Нажмите Создать.
- Заполните Название: и выберите Тип: — Text, List, Number, Date, Date & Time, Boolean или Secret (названия типов в интерфейсе пока на английском).
- Нажмите Создать и использовать.
У переменных приложения есть ещё поле Значение: — общая переменная может получить значение сразу. У переменных контакта такого поля нет: их значение своё у каждого человека и записывается уже во время работы бота.
Держите названия короткими, строчными буквами и через нижнее подчёркивание — city, order_number, support_email. Вам с ними ещё долго жить.
Полный список лежит в боковой панели редактора на вкладке Переменные, разделённой на Приложение и Контакт. Там же переименование, удаление и наведение порядка.

06Где видно сохранённые значения
Откройте Контакты и нажмите на человека. Откроется окно Детали контакта. На его вкладке Переменные контакта — каждая переменная контакта и её значение для этого человека. Значение можно поправить руками, это удобно при тестировании.
Эта страница честно отвечает на вопрос «бот правда сохранил ответ?». Если поле пустое, значит, никто в него ничего не записал, и переписывание текста сообщения не поможет.

07Условия и действия работают с теми же переменными
Переменные нужны не только для подстановки в текст. Условие может сравнить переменную и увести разговор в другую ветку: если city — Берлин, предложите берлинскую встречу. Действия работают в обратную сторону и записывают значения: задать, увеличить счётчик, сохранить ответ интеграции. Начните со статьи Блок «Условие»: основы; действиям, которые читают и меняют переменные, будет посвящён отдельный материал этой серии.
08Если переменная выводится пустой
На месте плашки в сообщении ничего нет. Для этого человека в переменную ещё ничего не записали. Проверьте, что вопрос, который её заполняет, действительно срабатывает раньше — об этом статья Как задать вопрос и сохранить ответ.
Пользователь видит название переменной обычным текстом. Его напечатали, а не вставили. Удалите и вставьте из окна выбора.
У вас работает, а у подписчика — нет. Скорее всего, вы взяли переменную приложения там, где нужна переменная контакта. Переменная приложения одинакова для всех — так и задумано.
После правки ничего не изменилось. Сохранение — это не публикация. Нажмите Опубликовать.
09Что дальше
Бот научился запоминать — теперь научите его реагировать на запомненное.
