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

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

Канвас сценариев
Сценарий — это граф: узлы-блоки и типизированные переходы между ними. Всего 25 типов блоков в шести семьях:
- Триггеры — команда, нажатие кнопки, текст от подписчика, комментарий в Instagram, сообщение в Direct, ответ на историю, упоминание в истории.
- Отправка — сообщение, картинка, медиа из библиотеки бота.
- Логика — условие, случайный выбор (A/B-ветки), AI-агент, внешний запрос, ссылка на оплату.
- Состояние — переменные, формулы, метки (добавить / удалить), пакет действий.
- Ожидание — задержка, расписание с датой и временем, вопрос с таймаутом.
- Завершение — явный выход из ветки.
Выходы блока зависят от его настроек: у вопроса это «Ответил» / «Не ответил» / «Нет ответа», у внешнего запроса — «Успех» / «Ошибка», у сообщения с кнопками — по порту на каждую кнопку. Граф проходит валидацию перед публикацией: неподключённые блоки и оборванные ветки подсвечиваются с переходом к проблемному узлу.

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

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

Три платформы, одно ядро
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.
Расскажите о своём проекте



