Неделя 142. От платформы к экосистеме

Неделя 142. От платформы к экосистеме

Разбор этой статьи

AI-подкаст BotsellerФраншиза без роялти и SEO под AI-поиск: два разворота недели
0:00 / 0:00

Эту тему разобрали в подкасте. Слушай параллельно с чтением.

Это сто сорок вторая неделя с момента, как мы запустили Botseller в августе 2023 года. Каждый понедельник я сажусь и пишу, что мы сделали. Не для SEO, не для красивых метрик в презентациях, а чтобы самому себе и команде не давать расслабиться. Бортовой журнал - это наш публичный log-файл: что смержили в main, что сломали и починили, какие гипотезы проверили, какие закрыли. За прошедшую неделю в основных репозиториях прошло около 60 merged веток. Это первая запись еженедельной серии, и я буду вести её дальше - чтобы через год можно было пролистать и увидеть траекторию движения.

Меня зовут Дмитрий Дьяконов, я основатель и CEO Botseller AI - SaaS-платформы с ИИ-продавцом, CRM и рассылками в 15 мессенджерах. У нас сейчас в работе несколько продуктовых направлений одновременно: ядро платформы, партнёрская программа, клиентские интеграции, контент-маркетинг и блог , и отдельно - обучающий продукт Botseller Academy. Ниже - честный разбор, на что ушло внимание команды в эту неделю и почему.

Схема перехода Botseller от единой SaaS-платформы к экосистеме из трёх независимых продуктов: Ядро, Academy и Clubator

Пульс недели: что в цифрах

Распределение 60 feature-веток 142-й недели по направлениям: Academy, блог и подкаст, Clubator, партнёрка, интеграции, CRM-ядро

Цифры для тех, кто любит цифры. Я свёл активность по ключевым репозиториям к одной таблице - она отражает не столько производительность, сколько фокус команды. Чем выше число смерженных фич, тем больше ресурса ушло в это направление.

НаправлениеMerged ветокОсновной фокус недели
Botseller Academy (clubator)20+Запуск обучающей воронки, JWT SSO, free-уроки
Блог и подкаст (sitebs)15+12 эпизодов подкаста, аудиоплеер, SEO docs
Партнёрская программа6Калькулятор дохода, IT-франшиза, мобильная адаптация
CRM-ядро4Инициация диалога, EAV upsert, флаги
Клиентские интеграции5Платежи через CRM, дожим в коробочных системах
Публичный веб Clubator8Landing, legal, tariffs, swarm-deploy

Суммарно это около 60 уникальных feature-веток, прошедших через merge request в main за семь дней. Темп для меня - это вопрос ритма, а не отчётности: продуктовое окно в нише ИИ-агентов закрывается каждый квартал, и отстать сейчас - значит не догнать через год. Главный вывод недели: мы впервые вышли за пределы одной кодовой базы. Работа шла параллельно в CRM, платформенном API, Clubator, блоге и документации, и ни одно направление не заблокировало другое.

Botseller Academy: запустили обучающую воронку

Воронка Botseller Academy с автономным циклом масштабирования: модель оплатил-учишься без демо и кастдевов

Главная фича недели - мы запустили Botseller Academy внутри экосистемы. Academy - это клуб по подписке  с пошаговыми уроками по настройке ИИ-продавца, промпт-инжинирингу и сборке партнёрского бизнеса. Технически он живёт внутри Clubator (нашего движка клубов), но визуально отделён как самостоятельный продукт. Подробный разбор программы курса и формата - в отдельной статье про обучение нейросетям для бизнеса , здесь же я рассказываю только про техническую сторону запуска.

За эту неделю мы закрыли полный цикл от оплаты до первого урока. Когда пользователь оплачивает подписку, Clubator генерирует JWT-ссылку и передаёт её в Academy через внутренний endpoint с HMAC-подписью. Пользователь попадает сразу в нужный модуль, не логинясь вручную. Это классический SSO-паттерн, но в нашем случае он склеивает три разных приложения: оплату, клуб и обучающую платформу.

Техническая архитектура бесшовного опыта Academy: Prodamus оплата, JWT-ссылка в Clubator, HMAC-проверка, auto-login в Academy

Отдельно мы добавили free-уровень - бесплатные уроки с квизами. Идея простая: пользователь получает первые 2-3 урока бесплатно, при прохождении квиза ему автоматически отправляется следующий урок в Telegram, а его ответы пишутся как теги в профиль пользователя. По этим тегам мы потом ведём сегментированные рассылки. Паттерн подсмотрели у Tally, адаптировали под наш движок рассылок.

Самое сложное было не собрать воронку, а сделать её устойчивой. За неделю мы словили и починили три разных бага: cancelled FollowupSend блокировал мгновенный push следующего урока, инстант-отправка первого шага не раскрывала плейсхолдер academy-ссылки, и у нас разошёлся флоу «ручной активации админом» и «webhook оплаты» - второй отправлял уведомление об оплате, первый нет. Теперь это один shared-сервис, как и должно быть.

Academy - первый продукт в нашей линейке, который масштабируется без участия моего времени. Продажа основной платформы  требует демо, кастдевов, сопровождения внедрения. Academy работает по модели «оплатил - учишься». Это открытая дверь для двух сегментов сразу: малого бизнеса, которому нужно научиться пользоваться нашей же платформой, и партнёров, которые хотят собрать свою команду интеграторов.

Партнёрская программа 2.0: IT-франшиза с калькулятором

Эволюция партнёрской модели Botseller от двух уровней к трём с добавлением IT-Франшизы в стиле Shopify Plus и HubSpot Partner Tier

Второй крупный блок - мы переписали партнёрскую программу  под новую модель. Раньше у нас было два уровня: реферал и интегратор. Теперь - три: реферал, интегратор и IT-франшиза . Последний - самый амбициозный: партнёр получает наш продукт под своим брендом, полный White Label, собственные цены и свою команду внедрения. Детально эта трёхуровневая схема разобрана в отдельной статье про партнёрскую экосистему Botseller  - здесь я её только упоминаю в контексте недельных изменений. Мы в итоге становимся инфраструктурным слоем, а партнёр - лицом бизнеса.

Чтобы показать экономику, мы запустили калькулятор дохода партнёра  - интерактивная страница, где можно выбрать модель (реферал / интегратор / IT-франшиза), уровень внутри модели, отрасль и горизонт. На выходе - прогноз по месячному доходу с разложением на источники. Это был отдельный подвиг для команды фронтенда: три независимые ветки, три этапа мобильной адаптации (у мобильных пользователей не влезали длинные названия ниш), финальная полировка niche grid.

Инструментарий партнёра Botseller: интерактивный калькулятор дохода и аудит llms.txt для корректной выдачи в AI-поиске Perplexity

Параллельно мы полностью переписали партнёрские материалы под новую модель. Старые тексты упоминали прежнюю двухуровневую схему, и если оставить их в llms.txt и FAQ - агенты LLM будут выдавать клиентам устаревшую информацию. Отдельным коммитом мы сделали финальный аудит - вычистили остатки старой модели в llms-full.txt и одной застрявшей FAQ-фразе. Это мелочь, но в эпоху AI-поиска такие мелочи становятся критичными: один неправильный ответ бота Perplexity - и клиент пошёл не туда.

IT-франшиза - это модель, которую мы видим у Shopify Plus и HubSpot Partner Tier. Партнёр платит за инфраструктуру, а маркетинг, продажи и внедрение делает сам. Для нас этот формат впервые становится реалистичным именно сейчас - после того как ядро платформы стабилизировалось и появились клиентские истории, которые можно упаковать в методичку.

Контент: 2 статьи, 12 подкастов и SEO-ремонт документации

На этой неделе в блог уехали две новые большие статьи. Первая - мультиязычный ИИ-бот: точность vs стоимость , технический разбор того, почему 100% точности в 30+ языках не бывает и как мы это решаем. Вторая - настройка и тестирование ИИ-бота , инструкция по калибровке промпта за пять шагов. Обе - пятитысячники по словам и по семантическому охвату покрывают несколько long-tail кластеров.

Запуск подкаст-серии Botseller: 12 эпизодов за неделю, нулевой продакшн-бюджет, дистрибуция в Apple Podcasts и Яндекс.Музыке

Самое интересное - мы запустили подкаст. Технически это аудиоверсия каждой статьи блога с встроенным плеером. Подкаст живёт как iTunes RSS, индексируется Apple Podcasts и Яндекс.Музыкой, а на странице статьи есть компактный плеер с drag-to-seek. За неделю мы выложили 12 эпизодов - это фактически аудио-версия лучших статей блога, включая кейсы клиентов и большую статью про архитектуру нашего бота . Для SEO мы добавили PodcastSeries schema в JSON-LD - это помогает Google и Яндексу правильно идентифицировать страницы как аудиоконтент.

Зачем это делать? Потому что формат потребления контента у нашей аудитории смещается. Владельцы бизнеса не читают 5000 слов за компьютером - они слушают подкасты в машине, в спортзале, на прогулке. Подкаст - это второй канал доставки того же контента, который у нас уже есть. Расход на производство - почти нулевой: автоматическая генерация озвучки по тексту статьи.

Переход документации Botseller от хаотичной сети страниц с каннибализацией к иерархической структуре hub-страниц с Structured Data

Третья большая тема в контенте - SEO-оптимизация документации. За один день мы прошлись по 64 страницам документации , развели ключевые слова между блогом и docs (антиканнибализация), переименовали «Рой Агентов» в «Нейрочатинг» (потому что мы перестали позиционировать операционные функции через агентов - это часть ребрендинга), и добавили StructuredData, FAQ и описание разделов на 5 hub-страниц. После этого документация стала цитируемой не только внутри продукта, но и как внешний SEO-актив.

CRM-ядро: инициация диалога, EAV и фильтрация расписания

Анатомия стабильности ядра CRM Botseller: четыре критичных бага недели от гонки данных до фильтрации расписания и их фиксы

Теперь про ядро платформы. CRM - это сердце Botseller, и любое изменение в нём я смотрю лично. На этой неделе мы закрыли четыре важные правки, каждая из которых - следствие реальных инцидентов у клиентов.

Первая правка - нода инициации диалога. Раньше при создании нового лида у нас был race condition: customer_id инициализировался позже, чем вызывался метод комбинации нод пайплайна. В редких случаях это приводило к тому, что бот отправлял сообщение не в тот аккаунт. Поменяли порядок инициализации - теперь customer_id проброшен до первого метода, никаких гонок. Звучит скучно, но именно такие невидимые баги съедают 80% времени senior-разработчика в зрелом SaaS - и именно они отличают платформу, которой можно пользоваться, от платформы, которая иногда работает.

Вторая правка - флаг-переменные. У нас есть специальный тип переменных-флагов (stop, boolean), которые контролируют перехват диалога ботом и оператором. Обнаружили двойную валидацию и неправильную сериализацию для булевских значений - исправили. Это часть механики перехвата диалога , которой мы гордимся: бот не просто замолкает, когда подключается оператор - он делает это плавно, с мягким и жёстким перехватом.

Третья правка - EAV-переменные и optimistic upsert. EAV (entity-attribute-value) - это наш способ хранить кастомные поля для любых сущностей CRM: лидов, контактов, чатов. Раньше при обновлении значения переменной мы делали тихий POST без проверки, существует ли запись. Это приводило к «молчаливым» ошибкам - пользователь нажимал «сохранить», ничего не происходило, и он терял данные. Сделали optimistic upsert: сначала пытаемся UPDATE, если ничего не обновилось - делаем INSERT. Плюс динамический entityOrder в CRM-переменных: порядок сущностей теперь определяется по контексту, а не фиксирован в константе.

Четвёртая правка - фильтрация расписания по branch_id. У одного из клиентов (сеть фитнес-студий с филиалами) в расписании отображались записи всех филиалов, даже если пользователь выбрал конкретный. Добавили серверную фильтрацию service_signs по branch_id на двух уровнях - в CRM и на платформенном API. Один фильтр - большая разница для клиента.

Интеграции: платежи через CRM и дожим в коробочных системах

Кастомные интеграции Botseller как модули расширения экосистемы: входящие платежи и идемпотентный retry-механизм для коробочных CRM

Параллельно с ядром мы делали работу на стороне клиентских интеграций. Это специфика нашей модели: часть клиентов требует доработки под свои бизнес-процессы, и мы относимся к этому как к отдельной продуктовой линейке.

Для одного из наших клиентов - сети детских спортивных центров - мы сделали обработку входящего платежа и создание платежа через внутреннюю систему Botseller CRM. Теперь их администраторы не заводят оплату руками: платёж автоматически создаётся в CRM, привязывается к сделке с конкретным родителем, и пайплайн переходит к следующему шагу - подтверждение записи ребёнка на занятие, выдача абонемента, напоминание о следующем визите. Платёжная интеграция в SaaS - это всегда боль: банки, API, сверка. Но если её собрать один раз как модульный блок - она становится шаблоном для следующих клиентов с похожей моделью.

Вторая интеграционная тема - дожим сообщений в клиентских коробочных CRM. У нас есть клиенты, которые работают внутри собственных CRM-систем (не botseller_crm, а корпоративная коробка), и мы интегрируемся в их поток. В этих интеграциях мы сделали повторную отправку ключевого сообщения и повторное прокидывание его в лида. Проблема была в том, что коробка не всегда отдавала ответ на первый запрос - таймауты, сетевые глюки. Теперь у нас есть механизм retry с идемпотентным ключом: второй запрос не создаёт дубль, а корректно обновляет существующий лид.

Ещё мелочь: изменили адрес к базе 1С у одного клиента (они переехали на новый сервер), и добавили эндпоинт для выгрузки списка всех ботов для нод платформы - это нужно партнёрам, которые строят свои сценарии внутри наших платформенных нод.

Публичный Clubator из внутреннего тула в SaaS: три независимых Next.js приложения в Docker Swarm стеке с эмеральд-палитрой и tariffs

Последний крупный блок недели - мы сделали Clubator (наш движок клубов по подписке) публичным продуктом. Раньше это был инструмент для внутренних клиентов, теперь - отдельный SaaS с собственным сайтом, блогом, документацией и страницей тарифов.

За неделю мы подняли три Next.js-приложения в одном swarm-stack: публичный landing, блог и docs. Перенесли внутреннюю техническую документацию с /docs на /internal-docs (чтобы не смешивать публичную docs с внутренней), добавили эмеральд-палитру для блога (визуально отделяет Clubator от Botseller), и заполнили всю обязательную обвязку: 4 правовые страницы (Оферта, Политика конфиденциальности, Согласие на обработку ПДн, Правила пользования), реквизиты компании в shared constants, прозрачную шкалу тарифов с привязкой к Prodamus (наш эквайер), CTA «Создать клуб» с переходом на логин, и cookie-banner.

Это не просто маркетинговый сайт. Это свидетельство того, что мы расширяем продуктовую линейку: Botseller (ИИ-продавец для бизнеса) + Clubator (клубы по подписке) + Academy (обучающая платформа). Три продукта из одной инфраструктуры, а не три отдельные команды с собственными стеками - именно так платформа превращается в экосистему.

В чём главный итог 142-й недели?

Маховик новой экосистемы Botseller: Ядро, Clubator и Academy как три независимых потока ценности на одной кодовой базе

Если сжать итог недели в одно предложение: платформа превратилась в экосистему. Раньше у нас был один маховик - SaaS-платформа для автоматизации продаж. Сейчас их три, и каждый усиливает два других. Ядро даёт технологию, ИИ-агентов и CRM-инфраструктуру. Clubator даёт движок для создания комьюнити и управления подписками. Academy обучает рынок и партнёров работать с нашей технологией.

Важна здесь не каждая из трёх составляющих по отдельности. Важно то, что они питают друг друга. Партнёр обучается в Academy, становится клиентом Clubator для своего бизнеса, использует Botseller как ИИ-инфраструктуру. Клиент CRM приходит за автоматизацией продаж, находит в документации обучающую траекторию Academy, подключает Clubator, когда его бизнесу понадобится клуб по подписке. Три независимых потока ценности, три кодовые базы, три команды - на одном техническом фундаменте.

Приходите в Telegram-канал

Присоединяйтесь к бортовому журналу Botseller: QR-код на Telegram-канал botseller_ai и ссылка на еженедельные логи в блоге

Бортовой журнал - это моя попытка выстроить публичный ритм и собрать вокруг Botseller живое сообщество людей, которым интересно, как изнутри устроен растущий SaaS. Я пока не знаю лучшего места для этого сообщества, чем Telegram. Там я выкладываю короткие заметки между понедельничными выпусками: фрагменты кода, мелкие решения, которые не попали в статью, вопросы, над которыми я думаю прямо сейчас. Подписка - @botseller_ai .

Если то, что я описываю, вам близко - заходите. Не нужно быть нашим клиентом или партнёром, чтобы читать канал. Достаточно того, что вам интересно наблюдать, как платформа превращается в экосистему, и при этом видеть честную картину, а не причесанный маркетинг.

FAQ

Почему вы публикуете еженедельный отчёт, а не стандартные release notes?

Release notes - это sales-material для существующих клиентов. Бортовой журнал - это другой жанр: нарратив движения. Я хочу, чтобы любой человек, которому интересен Botseller, мог открыть выпуск и за 10 минут понять, что мы делали, куда двигались и что нас в этом движении удивило. Плюс - это честность перед самими собой. Каждую неделю нужно ответить: а что мы вообще сделали?

Почему именно 142-я неделя, а не 1-я?

Потому что Botseller существует с 1 августа 2023 года. Я решил, что первым публичным выпуском бортового журнала не обязан быть №1 - гораздо честнее показать, что за плечами уже почти три года движения. Нумерация идёт от старта проекта и будет накапливаться дальше: №143, №144, №145. Через год будет №194, через два - №246. Эта серийность для меня - способ не дать проекту «размыться» в бесконечных итерациях.

Какой самый сложный инцидент был на этой неделе?

Dedup cancelled FollowupSend. Звучит непонятно, но суть такая: в Academy у нас есть мгновенная отправка следующего урока после прохождения квиза. У одного пользователя это не срабатывало. Оказалось - у него была «отменённая» запись в очереди FollowupSend, и наша логика дедупликации считала её за существующую отправку и блокировала новую. Отладка заняла несколько часов с чтением логов Loki и прогонами в staging. Урок: dedup должен смотреть только на активные записи, не cancelled.

Вы правда читаете коммиты каждую неделю?

Да. Я лично просматриваю merge requests в main по всем репозиториям, которые касаются продукта. Это занимает 2-3 часа в неделю, но это единственный способ держать в голове состояние системы. Если основатель не читает код - через год у него будет команда, которую он не понимает, и продукт, которым не может управлять.

Почему запустили подкаст именно сейчас?

Потому что появилась критическая масса статей, которые жалко оставлять только в текстовом виде. В блоге сейчас больше шестидесяти материалов, многие по 4-5 тысяч слов. Владельцы бизнеса не читают такие тексты за столом - они слушают в машине, в спортзале, на прогулке. Подкаст - это способ доставить тот же контент в том формате, в котором аудитория реально его потребляет. Производство почти ничего не стоит, а второй канал дистрибуции мы получаем фактически бесплатно.

Почему именно понедельник?

Потому что выходные - время осмысления. За субботу-воскресенье я успеваю прочитать, что мы смержили за неделю, структурировать в голове тематические блоки и подумать, что в этом движении главное для читателя. В понедельник утром - сажусь и пишу. К полудню текст уезжает в блог, и неделя начинается с общего контекста того, куда мы идём.


Если то, что я описываю, откликается - подпишитесь на Telegram-канал @botseller_ai . Там я выкладываю микро-заметки между понедельничными выпусками и отвечаю на вопросы читателей.

А если хотите посмотреть, как это применяется к вашему бизнесу - оставьте заявку , мы разберём вашу воронку за 30 минут. Если вы предприниматель или интегратор, который хочет строить бизнес на нашей инфраструктуре - страница для партнёров  и калькулятор дохода  ждут вас.

До 143-й недели.