Studio
SaaS · Конструктор ботов · No-code

Zaytsv — конструктор ботов

Визуальный конструктор сценариев для Telegram, MAX и Instagram: канвас на 25 типов блоков, сборка воронки по текстовому описанию, совместное редактирование, рассылки, метки и управление ботами по MCP.

Zaytsv — конструктор ботов

Контекст

Бот-конструкторы обычно заставляют выбирать: либо no-code с потолком возможностей, либо свой код с сервером, вебхуками и поддержкой. Нужен был третий вариант — визуальный редактор, в котором можно собрать не «приветствие и кнопку», а живую воронку с расписанием, условиями, метками, оплатой и внешними запросами. И чтобы один и тот же сценарий работал в Telegram, MAX и Instagram.

Визуальный канвас сценария: блоки сообщений, расписания и вопросов соединены переходами «По расписанию» и «Дата и время прошли»

Канвас сценариев

Сценарий — это граф: узлы-блоки и типизированные переходы между ними. Всего 25 типов блоков в шести семьях:

  • Триггеры — команда, нажатие кнопки, текст от подписчика, комментарий в Instagram, сообщение в Direct, ответ на историю, упоминание в истории.
  • Отправка — сообщение, картинка, медиа из библиотеки бота.
  • Логика — условие, случайный выбор (A/B-ветки), AI-агент, внешний запрос, ссылка на оплату.
  • Состояние — переменные, формулы, метки (добавить / удалить), пакет действий.
  • Ожидание — задержка, расписание с датой и временем, вопрос с таймаутом.
  • Завершение — явный выход из ветки.

Выходы блока зависят от его настроек: у вопроса это «Ответил» / «Не ответил» / «Нет ответа», у внешнего запроса — «Успех» / «Ошибка», у сообщения с кнопками — по порту на каждую кнопку. Граф проходит валидацию перед публикацией: неподключённые блоки и оборванные ветки подсвечиваются с переходом к проблемному узлу.

Настройка блока «Расписание»: дата, время, часовой пояс и два перехода — «По расписанию» и «Дата и время прошли»

Всё, что нужно вокруг редактора, встроено: версии графа с автобэкапами, экспорт и импорт сценария в JSON, копирование блоков и целых веток, тестовый прогон без реальной отправки, deeplink на конкретный шаг воронки. Публикация — отдельное действие: пока сценарий не опубликован, бот работает на предыдущей версии.

Совместное редактирование. Канвас синхронизируется по WebSocket: видно курсоры соавторов, кто какой блок держит, и присутствие в графе. Блок, который редактирует коллега, блокируется от одновременных правок, а операции применяются поверх общего состояния, а не перезаписывают его целиком.

Воронку собирает ИИ

Классическая проблема no-code — «пустой канвас». Мы сделали ассистента: пользователь описывает воронку словами, ассистент раскладывает её на блоки и расставляет переходы, а построение показывается прогрессом прямо на канвасе. Тот же ассистент дорабатывает существующий сценарий («добавь после приветствия задержку 10 минут»), и любое применённое изменение откатывается через Ctrl+Z.

Панель «AI-воронка» в редакторе: описание воронки текстом и подсказка о подключении агента по MCP

MCP из коробки. Для тех, кто живёт в IDE, есть второй интерфейс к тому же API: MCP-токен подключает бота к Claude Code, Cursor или другому агенту, и сценарии можно создавать, править, прогонять и публиковать из кода. Токен даёт полный доступ к управлению ботами, поэтому отзыв мгновенно блокирует его.

Раздел MCP-токенов: выпуск и отзыв ключей для подключения AI-агента к конструктору

Три платформы, одно ядро

Telegram, MAX и Instagram подключены через общий контракт отправителя: ядро исполнения сценария не знает, в какой мессенджер оно пишет, а адаптер платформы переводит блоки в вызовы конкретного API и обратно — входящие события в события графа. Telegram и MAX подключаются токеном (у @BotFather и у MasterBot соответственно), Instagram — через OAuth. Вебхук настраивается автоматически, для MAX есть поллер как запасной транспорт.

Кабинет конструктора: подключение бота по токену, лимиты тарифа и список ботов на разных платформах

Подписчики, рассылки, аналитика

  • База подписчиков с метками, переменными и историей диалога; поиск по chatId, username и метке, импорт и экспорт в CSV/JSON, чистка неактивных.
  • Рассылки по сегментам подписчиков — с фоновым воркером, лимитами тарифа и учётом заблокировавших бота.
  • Трекинг ссылок — ссылки внутри сценария считают переходы, а стартовые ссылки размечают источник подписчика.
  • Метрики бота — сценарии, активные сессии, прогоны за сутки, ошибки, блокировки.

База подписчиков: метки, число переменных, статус и активность по каждому диалогу

Инженерная часть

  • Бэкенд: Spring Boot 3.4 на Java 17, MongoDB, Spring Security и сессии в Mongo. Токены ботов лежат в базе зашифрованными, с миграцией со старого формата хранения.
  • Исполнение сценария: отдельный исполнитель графа с вычислением выражений и формул, планировщиком задержек и расписаний, журналом входящих обновлений и воркером восстановления — если апдейт не обработался, он не теряется.
  • Защита: флуд-гард на входящие, санитайзер HTML для сообщений Telegram, guard приватных адресов для блока «Внешний запрос», чтобы вебхук нельзя было направить во внутреннюю сеть.
  • Фронтенд: Next.js 16 (App Router) и React 19, канвас на @xyflow/react с кастомными нодами и портами, графики на Recharts, i18n ru/en.
  • Биллинг: тарифы с лимитами по ботам, подписчикам, AI-ответам, рассылкам и хранилищу; бюджет AI считается в копейках и показывается в кабинете.

Роль и результат

Мы делали сервис целиком: модель графа и его исполнение, адаптеры трёх платформ, редактор с канвасом и совместной работой, ассистента сборки воронки, рассылки и базу подписчиков, MCP-слой, биллинг и лендинг. На проде живут реальные воронки — в самой большой 96 блоков, а счётчик версий графа перевалил за четыре сотни правок. Сервис работает на zaytsv.com/bots.

Расскажите о своём проекте

Шаг 1 из 3