01«Сохранить изменения» и «Опубликовать» — это разное
Две кнопки, две разные задачи. Их путают чаще всего.
Сохранить изменения внизу редактора блока (он открывается слева) записывает правку в черновик на холсте. Для пользователей не меняется ничего.
Опубликовать на панели над холстом выкладывает этот черновик в канал, где работает бот. Пока вы не нажали эту кнопку, живой бот отвечает по прежней версии.

Поэтому цикл всегда один и тот же: правка, Сохранить изменения, Тест, Опубликовать.
Полезная деталь: кнопка Опубликовать гаснет, когда публиковать нечего. Бледная кнопка значит, что живой бот уже совпадает с холстом.
02Проверьте бота раньше, чем это сделают люди
Нажмите Тест. Справа откроется панель, и вы говорите с ботом ровно так, как это будет делать пользователь, — ещё до подключения канала и не заходя в Telegram.

В панели есть несколько важных переключателей:
- Личный / Группа / Канал имитирует, откуда приходит сообщение. Триггеры, которые срабатывают только в группах или каналах, в режиме Личный не сработают.
- В режиме Группа появляются флажок Упоминание бота (@) и кнопка Участник вступил: она отправляет событие «человек вошёл в группу», чтобы вы проверили приветственный сценарий.
- Тест от имени запускает сессию от существующего контакта. Его профиль и сохранённые значения переменных копируются в тест, поэтому можно проверить сценарии, которые зависят от того, что бот уже знает о человеке. Смена контакта перезапускает чат.
- Обновить подтягивает свежие изменения холста и переменных в уже запущенный тест, не теряя переписку. Сессия стартует с черновика на момент нажатия Тест, поэтому после правки нажмите Сохранить изменения, а затем Обновить.
Пройдите бота так, как это сделает незнакомый человек. Нажмите каждую кнопку, напишите что-нибудь неожиданное и поправьте то, что читается плохо, — пока этого никто не видит.
03Вкладка «Логи»: что именно сделал сценарий
Рядом с вкладкой Чат есть вкладка Логи. В ней видно, что сценарий сделал в этой тестовой сессии, свежее сверху: шаг, время и запись, которую оставил движок. Нажмите на строку, и она раскроется: сценарий, блок, длительность шага, а для обращения к внешнему сервису — запрос и ответ.

Красное число на вкладке — количество шагов, которые завершились ошибкой. Такие строки обведены красным, а под ними стоит текст ошибки; обычно этого хватает, чтобы отличить неверный адрес от неверного ключа.
Сообщения в логах приходят от движка и всегда на английском, даже если интерфейс русский.
04Первая публикация: окно «Запуск»
Если канал ещё не подключён, кнопка Опубликовать ничего не публикует. Вместо этого открывается окно Запуск: выберите, где люди будут общаться с ботом.

- Telegram спросит токен, который выдал BotFather. Вставьте его в поле Токен бота и нажмите Подключить и опубликовать — одно нажатие подключает канал и публикует сценарии.
- Веб-чат обходится без токена: вы получаете виджет для сайта и ссылку, которой можно поделиться.
- Email подключает ваш почтовый ящик: бот читает входящие письма и отвечает на них с этого адреса.
Первое развёртывание может занять несколько минут. Дальше это окно больше не появится.
05Все следующие публикации
Одно нажатие на Опубликовать — и версия с холста уходит в работу.
Исключение одно: если в пространстве несколько ботов, например тестовый рядом с рабочим. Тогда сначала откроется окно Развернуть на ботов, где вы отмечаете, кому достанется эта версия. По умолчанию отмечены все, и в каждой строке видно, работает ли бот уже на этой версии.
06Что на самом деле меняет публикация
Боты, на которые вы опубликовали, начинают работать по сценариям из этой версии. Ради этого всё и затевалось — и именно поэтому просто сохранённая правка ни на кого не влияет. У бота в Telegram заодно обновляется меню команд — об этом в конце статьи.
07Если бот не отвечает
Откройте Настройки → Логи. Выберите бота — и вы увидите все выполненные шаги, с фильтрами по полям Сценарий, Уровень, Действие и Контакт и поиском по тексту сообщения. Сначала поставьте Уровень на ERROR: часто ответ находится в одну строку.

Если логи ничего не объясняют, причина почти всегда одна из трёх:
- Изменения не опубликованы. Сохранить — не значит опубликовать. Вернитесь на холст и посмотрите, активна ли кнопка Опубликовать.
- Вы пишете не тому боту. Поиск в Telegram охотно показывает ботов с почти одинаковыми именами. Открывайте своего по точному username от BotFather.
- Ничего не совпало. Если за тот момент, когда вы написали боту, логов нет вообще, сообщение просто не попало ни в один сценарий. Откройте стартовый шаг и проверьте триггер: командный триггер срабатывает только на точную команду, а групповые — только в группах.
Когда ни одно из этого не подходит, быстрее вернуться в панель Тест: там работают те же сценарии, логи лежат в соседней вкладке, а повторять ошибку можно сколько угодно, не беспокоя живых людей.
08Для продвинутых: меню команд Telegram
При публикации бота в Telegram обновляется его меню команд — список /команд, который люди видят в Telegram: оно собирается из командных триггеров в опубликованных сценариях, так что запускать /setcommands у BotFather не нужно. Подпись рядом с командой берётся из названия сценария, который она открывает, — хороший повод называть сценарии так, как называют пункты меню.
Про эту синхронизацию стоит знать три вещи:
- Она дополняет, а не заменяет. Команды, которые вы завели в BotFather руками, остаются; при совпадении имён побеждает наша.
- Она только добавляет и обновляет. Если удалить сценарий, его команда из меню не исчезнет — уберите её в BotFather.
- Она необязательная. Если Telegram отказал, публикация всё равно проходит и бот на команду отвечает; устаревает только меню.
Триггер, который не является допустимой командой Telegram (всё, кроме строчных латинских букв, цифр и подчёркиваний, до 32 символов), продолжает работать как триггер, но в меню не попадает.
09Что дальше
В Telegram бот работает — теперь поставьте те же сценарии на сайт.
