Проблема
Тимлидер не знает в реальном времени — кто из агентов буксует, у кого горит сделка, кто на грани выгорания. Это становится известно когда уже поздно.
Решение
Telegram-бот который каждый вечер задаёт агентам 3 коротких вопроса (кнопками, 20 секунд), а утром присылает тимлидеру сводку по всей команде.
Никаких новых приложений. Никакой регистрации. Всё происходит в Telegram где агенты уже сидят.
Главная ценность: тимлидер каждое утро знает куда направить внимание — ещё до первого созвона.
Telegram Bot API
Python / Node.js
PostgreSQL / SQLite
Cron-задачи
MVP за 1–2 недели
Этап 1 — Подготовка (День 1)
Шаг 1.1
Создать бота через @BotFather в Telegram. Получить API токен.
Шаг 1.2
Создать проект: папка, виртуальное окружение Python, установить зависимости:
pip install python-telegram-bot apscheduler python-dotenv
Шаг 1.3
Создать файл .env с токеном. Создать структуру папок: /bot, /db, /scheduler.
Этап 2 — База данных (День 1–2)
Шаг 2.1
Написать db.py — инициализация SQLite, создание таблиц users, responses, reminders.
Шаг 2.2
Написать функции: add_user(), get_all_agents(), save_response(), get_responses_for_date().
Этап 3 — Команды бота (День 2–4)
Шаг 3.1
/start — регистрация пользователя. Бот спрашивает имя и роль (агент / тимлидер).
Шаг 3.2
Реализовать ConversationHandler — цепочку из трёх вопросов с inline-кнопками.
Шаг 3.3
Сохранять ответы в БД после завершения опроса.
Шаг 3.4
/report — команда для тимлидера: показать сводку за вчера вручную (для теста).
Этап 4 — Планировщик (День 4–6)
Шаг 4.1
Настроить APScheduler: задача в 18:00 — разослать опрос всем активным агентам.
Шаг 4.2
Задача в 19:00 — проверить кто не ответил, отправить первое напоминание.
Шаг 4.3
Задача в 20:00 — второе и последнее напоминание для не ответивших.
Шаг 4.4
Задача в 9:00 — сформировать и отправить сводку тимлидеру.
Этап 5 — Тест и деплой (День 7–10)
Шаг 5.1
Протестировать полный флоу самому — зарегистрироваться как агент и как тимлидер с двух аккаунтов.
Шаг 5.2
Задеплоить на Railway.app — бесплатно, деплой через GitHub в несколько кликов.
Шаг 5.3
Добавить имена реальной команды. Показать тимлидеру живой прототип.
Копируй эти промпты по порядку когда будешь реализовывать. Каждый промпт — один этап работы.
ПРОМПТ 1 — Структура проекта и база данных
Я разрабатываю Telegram-бота на Python для риелторского агентства.
Бот называется "Пульс команды".
Логика: каждый вечер бот опрашивает агентов (3 вопроса с кнопками),
утром присылает тимлидеру сводку по команде.
Создай структуру проекта и файл db.py с SQLite.
Нужны три таблицы:
1. users (id, telegram_id, name, role, is_active, created_at)
2. responses (id, user_id, date, energy, help_needed, note, answered_at)
3. reminders (id, user_id, date, reminder_num, sent_at)
Напиши функции:
- init_db() — создание таблиц
- add_user(telegram_id, name, role)
- get_all_agents() — все активные агенты
- save_response(user_id, date, energy, help_needed, note)
- has_responded(user_id, date) — ответил ли агент сегодня
- get_responses_for_date(date) — все ответы за дату
- get_leader_ids() — telegram_id всех тимлидеров
ПРОМПТ 1 / 6
ПРОМПТ 2 — Команда /start и регистрация
Продолжаем разработку Telegram-бота "Пульс команды" на Python
с библиотекой python-telegram-bot v20.
Напиши обработчик команды /start.
Логика:
1. Бот приветствует пользователя
2. Спрашивает имя (текстовый ввод)
3. Спрашивает роль — две кнопки: "Я агент" / "Я тимлидер"
4. Сохраняет пользователя в БД через add_user()
5. Подтверждает регистрацию разным текстом для агента и тимлидера
Используй ConversationHandler с состояниями ASK_NAME и ASK_ROLE.
Импорты и структуру файла handlers/start.py напиши полностью.
ПРОМПТ 2 / 6
ПРОМПТ 3 — Опрос агента (3 вопроса с кнопками)
Продолжаем бот "Пульс команды". Напиши handlers/survey.py.
Нужна функция start_survey(context, telegram_id) которую будет
вызывать планировщик вечером для каждого агента.
Опрос — ConversationHandler с тремя шагами:
Шаг 1 — сообщение: "Как прошёл день?"
Inline-кнопки:
"🔥 Продуктивно" (callback: energy_good)
"😐 Средне" (callback: energy_ok)
"😮💨 Тяжело" (callback: energy_bad)
Шаг 2 — сообщение: "Нужна помощь или есть вопросы?"
Inline-кнопки:
"✅ Всё ок" (callback: help_ok)
"⚠️ Есть вопрос" (callback: help_question)
"🚨 Нужна помощь" (callback: help_urgent)
Шаг 3 — сообщение: "Одна фраза о дне — или пропусти"
Inline-кнопка: "Пропустить" (callback: note_skip)
Или текстовый ввод.
После завершения: сохранить ответы в БД, поблагодарить агента.
ПРОМПТ 3 / 6
ПРОМПТ 4 — Планировщик рассылки и напоминаний
Продолжаем бот "Пульс команды". Напиши scheduler/jobs.py
с использованием APScheduler.
Нужны 4 задачи по расписанию (временная зона Europe/Kiev):
18:00 — send_surveys()
Получить всех активных агентов из БД.
Для каждого кто ещё не ответил сегодня — запустить start_survey().
19:00 — send_reminder_1()
Агентам которые не ответили — отправить:
"Не забудь отметить день, пока не забылось 🙂"
Записать в таблицу reminders (reminder_num=1).
20:00 — send_reminder_2()
Агентам которые всё ещё не ответили:
"Последний шанс на сегодня — завтра уже не спрошу про этот день"
Записать reminder_num=2.
09:00 (следующий день) — send_morning_report()
Сформировать сводку за вчера и отправить всем тимлидерам.
Покажи как подключить scheduler к основному файлу bot.py.
ПРОМПТ 4 / 6
ПРОМПТ 5 — Утренняя сводка для тимлидера
Продолжаем бот "Пульс команды". Напиши функцию
format_morning_report(date) в файле reports/morning.py.
Функция должна:
1. Получить все ответы за указанную дату из БД
2. Получить список всех агентов
3. Сформировать текст сообщения в таком формате:
📊 Команда [дата]
✅ Ответили: X из Y
❌ Не ответили: [имена через запятую или "все ответили"]
🔥 Продуктивный день: N чел.
😐 Средне: N чел.
😮💨 Тяжёлый день: N чел.
⚠️ Требуют внимания:
→ [Имя] — [заметка или "отметил ⚠️ без комментария"]
💬 Заметки дня:
→ [Имя]: "[текст заметки]"
Если никто не отметил проблем — вместо блока "Требуют внимания"
написать "✨ Все в порядке"
Если никто не оставил заметок — блок "Заметки" не показывать.
ПРОМПТ 5 / 6
ПРОМПТ 6 — Финальная сборка и деплой
Собери финальный файл bot.py для бота "Пульс команды".
Структура проекта:
/pulse_bot
bot.py — точка входа
.env — TELEGRAM_TOKEN=...
db/db.py — база данных
handlers/
start.py — регистрация
survey.py — опрос агента
scheduler/
jobs.py — задачи по расписанию
reports/
morning.py — утренняя сводка
В bot.py нужно:
1. Загрузить токен из .env
2. Создать Application
3. Зарегистрировать все handlers (start, survey)
4. Запустить APScheduler
5. Запустить polling
Также напиши:
- requirements.txt со всеми зависимостями
- Procfile для деплоя на Railway.app
- README.md с инструкцией как добавить агента в систему
ПРОМПТ 6 / 6