
01
Задача
Проект рассчитан на студию или специалиста, которому пишут с разными задачами: создать сайт, изменить существующий или запустить продвижение. Для каждой услуги нужны свои уточнения. Вопрос о каталоге важен для магазина, а список рекламных каналов — для продвижения.
За основу был предоставлен сценарий в PDF. Его нужно было превратить в связный диалог: с вариантами ответа, несколькими ответами сразу, возвратами и собственным запросом клиента. Владелец должен менять сообщения и переходы сам, а перед публикацией — проходить новую версию как пользователь.
02
Решение
Разделил разговор по задаче. У нового сайта, доработок и продвижения — отдельные ветки. Выбор человека определяет следующие вопросы. Для ответа «Иное» предусмотрено описание своей задачи, после которого разговор продолжается по подходящей ветке.
Добавил возможность проверить заявку. Перед отправкой человек видит сводку ответов. Можно вернуться к нужному вопросу и исправить выбор. Если изменение влияет на дальнейший разговор, бот повторно задаёт связанные вопросы, чтобы в заявке не осталось противоречащих друг другу ответов.
Сделал редактор сценария. Владелец видит ветки на схеме, открывает конкретный шаг и меняет сообщение, подписи кнопок и переходы. Обзор помогает ориентироваться в большом диалоге, а подробный режим — разбирать связи внутри выбранной ветки. Редактор меняет тексты и связи в готовом наборе шагов.
Разделил черновик и опубликованную версию. Изменения сначала сохраняются в черновик. Их можно пройти в симуляторе, не обращаясь к Telegram и не отправляя заявку менеджеру. После публикации новые разговоры используют обновлённый сценарий, а уже начатые продолжаются на своей версии.
Собрал рабочее место для заявок. В панели доступны ответы клиента, приложенное задание и статусы обработки. Уведомления в Telegram предусмотрены после подключения получателя. Система различает сохранение заявки и фактическую доставку уведомления.
03
Результат
Получился собственный бот с редактором, проверкой сценария и списком заявок. В демонстрации можно пройти разные ветки и увидеть, как выбор меняет следующие вопросы. Сценарий хранится вместе с версиями; его тексты редактируются через панель.
Демонстрация работает на вымышленных данных. Перед приёмом реальных заявок нужно согласовать материалы и подключить получателя уведомлений.
Технологии: Python, aiogram, FastAPI, React, React Flow, SQLite.
Проект в деталях


