Сонник-бот без мистики: как мы собрали продукт, который реально удобен
Сделал бота для толкования снов @SonnikProBot. Не “магический шар”, не “предсказатель судьбы”, а инструмент, который помогает понятно и бережно интерпретировать сон в нужной подаче — без запугивания, диагнозов и “фатальных пророчеств”.
Главная цель была простая: чтобы работало стабильно.
Без артефактов, без “сломанных” сообщений в Telegram, без ситуаций, когда вместо сна улетает ссылка на файл или ответ превращается в нечитаемый лог.
Вход: текст или голос
✍️ Текстовый сон
Обычный сценарий: пользователь пишет сон — получает толкование.
Один из самых любимых сценариев: человек диктует сон голосом, бот:
Критичный момент: чтобы везде уходил именно текст сна
Когда сон записан голосом, в системах часто хранится file_id (или ссылка на файл), а не сам текст.
И вот тут появляется типичный баг: пользователь меняет стиль или просит расширенное толкование — а туда уходит не сон, а идентификатор аудио.
Закрыл это просто и надежно: после транскрибации бот перезаписывает переменную сна текстом.
Дальше любые флоу (смена стиля, расширенный разбор, повторный разбор) работают с нормальным текстом, а не с “AwACAgIAAx…”.
Смена стиля: зачем вообще это нужно
Один и тот же сон можно трактовать по-разному — и это не “игра в слова”, а реально разные задачи.
🎭 Смена стиля — это повторный разбор того же сна в другой подаче, без сравнения с прошлым ответом.
- 🧠 Психологический — про эмоции, потребности, внутренние конфликты, триггеры.
- 📜 Классический сонник — символика “как в сонниках”, но без фатализма.
- 🧩 Практичный — выводы и действия: что сделать/заметить/изменить.
- ⚡ Коротко — 3–5 тезисов, без воды.
Пользователь выбирает под задачу: “понять чувства”, “увидеть символы”, “получить шаги”, “быстро прочитать”.
💡 Как это устроено по доступу
Для пользователей без подписки стиль толкования по умолчанию — 📜 Классический, и менять стиль по умолчанию в профиле нельзя. При этом сменить стиль всё равно можно — в расширенном толковании или как отдельной дополнительной услугой.
Пользователи с подпиской могут менять стиль толкования по умолчанию прямо в профиле — и получать ответы сразу в выбранной подаче.
Расширенное толкование: когда нужно глубже
Иногда базового ответа мало — хочется:
Для этого есть режим “Сделать точнее” (расширенное толкование).
Он не превращает ответ в “простыню ради простыни” — он делает разбор более насыщенным и полезным.
Про скорости
Обычно первичное толкование приходит очень быстро: даже если сон надиктован голосом (до ~5 минут), полный цикл “получили аудио → расшифровали → сделали разбор” занимает примерно 30–60 секунд.
Расширенное толкование чуть тяжелее по вычислениям — обычно 60–90 секунд. Иногда может быть дольше, если много запросов одновременно, но в целом ответы приходят почти сразу.
Подписки и покупки: чтобы подходило всем
Я не стал делать “только подписка”. У людей разный стиль использования.
🧩 Разовые/пакетные покупки — для тех, кто приходит редко или не хочет подписку.
💎 Подписка PRO — для тех, кто хочет “без ограничений”.
Отдельно: PRO 199 даёт то, что реально меняет опыт — голос и голосовые черновики.
“Честная подписка”: отключил — но доступ не режется
Частая раздражающая практика: человек отключает автопродление — и ему тут же режут доступ.
Я сделал нормально: если подписка оплачена на период — она работает до конца срока, даже если автопродление отключили на следующий день.
Триал максимального тарифа за подписку на каналы
Добавил пробный доступ к максимальному тарифу за подписку на 2 своих каналы.
Но важно было защититься от “подписался на 10 секунд — получил триал”.
✅ подписка на каналы даёт триал
⛔ выход из канала — триал блокируется
Это честно: триал как бонус за поддержку, а не как лазейка.
Большой FAQ: закрываем вопросы до того, как их зададут
Сделал расширенный FAQ, который закрывает типовые “почему / как / что будет если”:
- как работает стиль и чем они отличаются
- что делать, если сон короткий или “непонятный”
- как работает голос и почему иногда нужно говорить чуть ближе к микрофону
- как работает подписка и продление
- что будет при отключении автоплатежа
- что делать при ошибке списания
- как получить триал и почему он блокируется при выходе из каналов
- и т.д.
Это уменьшает поддержку и делает продукт “самообъясняющимся”, в планах подключить Ai ассистента, как только соберется база вопросов от реальных пользователей, на которой его можно будет обучить.
Аналитика для админа: не “чувства”, а цифры
Я заложил большой аналитический слой:
- сколько толкований сделано (по типам/планам),
- сколько голосовых черновиков,
- сколько смен стиля,
- сколько расширенных толкований,
- конверсии в подписку и удержание,
- причины отвалов (где ломается сценарий),
- и другие метрики.
Это помогает улучшать продукт не “на глаз”, а по факту.
В основе бота — связка PuzzleBot + n8n + OpenAI + Telegram + ЮKassa.
PuzzleBot отвечает за сценарии и переменные, n8n — за логику, ветвления и интеграции, OpenAI — за разбор и транскрибацию голоса, Telegram — за доставку и UX, а ЮKassa — за подписки и платежи. За счёт этого бот быстро реагирует, аккуратно форматирует ответы и стабильно отрабатывает сценарии (текст, голос, смена стиля, расширение).
@SonnikProBot — не про “вас ждёт судьбоносная встреча”.
@SonnikProBot про нормальный пользовательский опыт: написал или наговорил сон → получил разбор → при желании переключил стиль → при желании сделал глубже → всё работает стабильно.