# «Навигатор»: Telegram-бот, который превращает офлайн‑выступление в воронку продаж

> Кейс Telegram-бота, работающего синхронно с живым выступлением спикера: участники в реальном времени отвечают боту, он собирает персональную PDF-«карту стратегии» через модель, на экране в зале крутится live word-cloud, а после мероприятия бот сам догоняет аудиторию до платной диагностики. Мини-CRM на форум‑топиках, 8 модулей, персистентный планировщик.

Источник: https://blog.uspeshnyy.ru/blog/keys-event-bot-navigator/
Автор: Александр Успешный · blog.uspeshnyy.ru
Опубликовано: 2026-02-11
Теги: кейс, Telegram, воронка

---

> Бот работает синхронно с живым офлайн‑выступлением: пока спикер ведёт мастермайнд для предпринимателей, участники в реальном времени отвечают боту, а он собирает из ответов персональную PDF-«карту стратегии». Параллельно на экране в зале крутится живое облако слов из ответов. После мероприятия бот сам догоняет людей серией сообщений и приводит их на платную диагностику.

![Капитан на борту яхты — метафора «Навигатора»](/images/cases/keys-event-bot-navigator/01-cover.webp)

Проект вырос из простого квиз‑бота (ТЗ на один экран) в полноценную маркетинговую систему из 8 модулей с планировщиком, сегментацией и ежедневной аналитикой. На каждого лида бот заводит отдельный «досье‑топик» в супергруппе — получается мини-CRM прямо внутри Telegram.

**Стек:** Python · aiogram 3 · aiosqlite · OpenAI · FastAPI · APScheduler · fpdf2.

---

## Контекст и задача

Ко мне пришёл Роман Дусенко — психолог и стратег, который проводит офлайн‑мастермайнды для предпринимателей под метафорой «Яхтенная стратегия». Формат живой: спикер на сцене, зал с телефонами.

Проблема таких мероприятий классическая: **энергия в зале есть, а конверсии в следующий продукт — нет.** Люди уходят вдохновлённые, но контакт теряется, и никто не доходит до платной диагностики.

Задача формулировалась так:

1. Дать участникам **интерактивный опыт прямо во время выступления** — чтобы бот был «бортовым журналом», а не раздаткой.
2. На выходе выдать каждому **персональный артефакт** (PDF), который хочется сохранить.
3. Не потерять аудиторию после мероприятия и **привести её на платную диагностику**.
4. Дать спикеру **инструмент вовлечения зала** — визуализацию коллективного состояния на большом экране.

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

---

## Что получилось: два интерфейса

### 1. Диалог в Telegram — «бортовой журнал»

Сердце проекта — сценарий‑разговор. Бот ведёт человека по 7 шагам: от социальной роли к внутреннему ощущению, через мини‑тест «Шторм», паузу‑медитацию на 60 секунд и финальный вопрос, который человек «забирает с собой».

![Диалог с ботом в Telegram: приветствие, вопросы о роли, тест «Шторм», якорная стоянка](/images/cases/keys-event-bot-navigator/02-dialog.webp)

Ключевые UX-решения:
- **Гейткипер на входе.** Доступ к боту только после подписки на канал спикера — проверка через `get_chat_member`. Это конвертирует зал в подписчиков ещё до первого вопроса.
- **Ответы одним словом.** Осознанное ограничение: короткие ответы легче давать в зале с телефона, и они же идеально ложатся в облако слов и в PDF.
- **Пауза-«якорь» на 60 секунд.** Единственное место, где бот просит *ничего не писать*. Это часть режиссуры выступления — синхронизация с моментом тишины на сцене.

### 2. Живое облако слов на экране в зале

Пока зал отвечает на вопрос «кем ты ощущаешь себя изнутри?», ответы стекаются в веб‑дашборд на FastAPI, который выводит облако слов и **обновляется каждые 5 секунд**. Спикер выводит его на проектор — зал видит своё коллективное «внутреннее состояние» в реальном времени.

![Живое облако слов «Внутреннее состояние группы»: тёмная тема, крупные слова — усталость, тревога, одиночество](/images/cases/keys-event-bot-navigator/03-wordcloud.webp)

Это самый сильный «вау‑эффект» мероприятия: человек пишет «пустота», и через 5 секунд видит на большом экране, что он не один.

---

## Как это работает: путь пользователя

Каждый шаг — это отдельное состояние **конечного автомата (FSM)** на aiogram. Ответы пишутся в SQLite сразу, чтобы ничей прогресс не терялся, даже если человек закроет Telegram посреди сценария.

---

## Архитектура системы

Проект осознанно разбит на изолированные модули — так его легче поддерживать и расширять. Здесь нет «одного файла на 3000 строк»: у планировщика, генерации PDF, работы с моделью и аналитики — свои зоны ответственности.

### Технический стек

| Слой | Технология | Почему так |
|:--- |:--- |:--- |
| Бот | **aiogram 3.x** (async) | Быстрый отклик при одновременной работе всего зала |
| Хранилище | **SQLite + aiosqlite** | Ноль инфраструктуры, персистентность из коробки |
| Модель | **GPT-4o-mini** | Дёшево и быстро для генерации разбора и валидации |
| PDF | **fpdf2 + Roboto TTF** | Полная поддержка кириллицы, кастомная вёрстка |
| Планировщик | **APScheduler** + SQLite job store | Отложенные задачи переживают рестарт |
| Дашборд | **FastAPI + wordcloud2.js** | Лёгкий live-экран без сборки фронта |

---

## Самое интересное: система, которая продаёт после мероприятия

Изначальное ТЗ заканчивалось на выдаче PDF. Но выдать PDF — это ещё не продажа. Поэтому вторая, большая, часть проекта — **автоматическая воронка дожима**, которая запускается в момент, когда человек получает свою «карту стратегии».

Как это устроено:
- **Персистентный планировщик.** APScheduler с job store в SQLite. Даже если бот перезапустят, все запланированные «касания» останутся в силе.
- **Сегментация на лету.** Результат теста «Шторм» делит аудиторию на сегменты «Переход» и «Курс устойчив». Тексты дожима и промпты для этих сегментов **разные**.
- **Персонализация каждого сообщения.** Провокационный вопрос на день 1 генерируется под конкретные ответы человека (его роль, его главный вопрос), а не берётся из шаблона.
- **Реактивация брошенных.** Отдельная задача раз в час находит тех, кто начал, но не закончил сценарий, и мягко возвращает их — один раз, без спама.
- **Ежедневный отчёт спикеру.** Каждое утро в 10:00 по Москве в админ‑группу падает сводка по воронке за сутки.

### Что видит спикер каждое утро

Пример суточной сводки (цифры иллюстративные):

```
📊 Отчёт по воронке за 24 часа:

• Новых запусков: 128
• С рекламы: 74
• Дошли до PDF: 91 (конверсия: 71,1%)

Сегментация:
• Сегмент «Переход»: 63
• Сегмент «Курс устойчив»: 28

• Ответили на «Зеркало»: 34
• 🎯 Записались на диагностику: 11
```

Плюс команды `/leads` (горячие лиды с сегментацией) и `/export` (выгрузка базы в CSV) — чтобы спикер и его команда работали с аудиторией руками, когда это нужно.

---

## CRM внутри Telegram: отдельный «досье‑топик» на каждого лида

Отдельная фича, которую особенно оценила команда спикера, — **автоматическая мини-CRM прямо в Telegram, без единой внешней системы.** Как только новый человек запускает бота, тот создаёт под него **персональный топик в супергруппе‑форуме** и складывает туда всю воронку по мере прохождения: откуда пришёл, каждый ответ на каждый вопрос и, в финале, сгенерированный PDF.

Менеджеру не нужно никуда заходить и ничего выгружать — он открывает Telegram, видит список тем с именами лидов и внутри каждой полное досье: контекст человека, его роль, страхи, главный вопрос и готовую стратегию. Можно писать заметки прямо в топике.

<video class="media-embed" controls playsinline preload="none" poster="/media/keys-event-bot-navigator/lead-topics-poster.jpg">
 <source src="/media/keys-event-bot-navigator/lead-topics.mp4" type="video/mp4" />
</video>

Как это устроено технически:

Ключевые решения:
- **Идемпотентность.** `topic_id` кэшируется в памяти и дублируется в БД — на одного пользователя всегда ровно один топик, даже после рестарта бота.
- **Отказоустойчивость.** Если создать топик не удалось (например, бот потерял права админа), логирование мягко деградирует и не ломает основной сценарий пользователя.
- **Ноль внешней инфраструктуры.** Вся «CRM» живёт в том же Telegram, где работает команда — не нужно учить менеджеров новому интерфейсу и платить за отдельную систему.

---

## Модель внутри: три роли одной модели

`GPT-4o-mini` в проекте выполняет три разные функции, и под каждую — свой промпт и свои параметры:

1. **Генерация «Лоции»** для PDF. Системный промпт заставляет модель писать *голосом самого спикера* — спокойно, глубоко, без дешёвой мотивации, строго по 4 блокам (Диагноз → Штормовое предупреждение → Точка опоры → Ориентир). `temperature 0.8` — нужна литературность.
2. **Валидация ответов.** Модель на лету проверяет, осмысленный ли ответ дал человек. `temperature 0.3` — здесь важна строгость, а не креатив.
3. **Генерация follow-up вопросов** под конкретного пользователя в drip-цепочке.

Одна модель, три температуры, три промпта — дёшево и точно под задачу.

---

## Результат
- **Из квиза — в маркетинговую систему.** Стартовое ТЗ описывало квиз‑бота на один экран. Финальная система — **8 модулей:** ядро на FSM, слой данных с миграциями, генерация PDF, три роли модели, персистентный планировщик, модуль дожима, аналитика и веб‑дашборд.
- **Замкнутая воронка.** UTM-метки на входе (`/start` с deep-link из рекламы) → интерактив в зале → персональный PDF → 5-шаговый автодожим → запись на платную диагностику → ежедневный отчёт. Путь пользователя прослеживается от рекламного клика до продажи.
- **Двойная ценность мероприятия.** Для участника — личный артефакт и опыт. Для спикера — инструмент вовлечения зала (облако слов) и работающая после мероприятия машина конверсии.
- **Заявленная цель — рост конверсии в 2–2,5 раза** за счёт того, что контакт с аудиторией больше не обрывается на выходе из зала.

---

## Чему научил проект

Главный вывод — **техническая часть здесь вторична, первична режиссура.** Пауза на 60 секунд, ответы одним словом, морская метафора в каждой кнопке — это не «фичи», это сценарий переживания, который синхронизирован с живым выступлением человека на сцене. Хорошая автоматизация тут не заменяет спикера, а усиливает момент, который он создаёт в зале.

А с инженерной стороны — стоило заранее заложить модульность. Когда проект вырос в пять раз относительно ТЗ, именно чистое разделение на модули (`scheduler`, `conversion_messages`, `analytics`, `openai_assistant`) позволило наращивать функциональность без переписывания ядра.

![Роман Дусенко — психолог и стратег, для которого сделан проект](/images/cases/keys-event-bot-navigator/04-portrait.webp)

Для того же клиента я делал и веб‑присутствие — продающие лендинги [«Персональная стратегия»](/blog/keys-personalstrategy-lending/) и [«Семейная стратегия»](/blog/keys-familystrategy-lending/) с доставкой заявок в тот же Telegram.

Та же механика — бот как продолжение офлайн-события — разворачивается и на длинной дистанции: в [кейсе Telemore](/blog/keys-telemore-media-tury/) смена медиа-тура превращается в игру с заданиями и баллами.

## Посмотреть вживую

**Следующий шаг:** хотите превратить офлайн‑выступление в воронку продаж — с ботом, PDF и дожимом, [напишите мне в Telegram](https://t.me/uspeshnyy).

Прежде чем строить бота или что-то ещё, полезно понять, где именно в воронке теряются люди. Это короткий опрос — минут пять.