Skip to content

About

Lead Generator for URNEFP

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

URNEFP Leadgen Telegram Bot

Бот для юридической компании URNEFP на Python (aiogram 3.x).

Возможности

  • Сбор лидов через FSM-форму
  • Выдача лид-магнита (PDF, генерируется автоматически)
  • Сохранение лидов в PostgreSQL
  • Передача данных юристу (админ-чат)
  • Ответ юриста клиенту через бота
  • Логирование действий в JSON

Структура проекта

  • main.py — запуск бота
  • handlers/form.py — FSM-форма для сбора данных
  • handlers/admin.py — админ-команды для юриста
  • states/form.py — состояния FSM
  • services/pdf_generator.py — генерация PDF-лидмагнита
  • utils/logger.py — логирование действий
  • config.py — конфиг, чтение .env

Запуск через Docker

  1. Скопируйте .env.example в .env и заполните переменные

  2. Соберите и запустите контейнеры:

    docker-compose up --build

Переменные окружения

  • BOT_TOKEN — токен Telegram-бота
  • ADMIN_CHAT_ID — ID чата для уведомлений юриста
  • POSTGRES_DB, POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_HOST, POSTGRES_PORT — настройки БД

Требования

  • Python 3.10+
  • aiogram 3.x
  • PostgreSQL

Особенности

  • PDF-лидмагнит генерируется индивидуально для каждого пользователя (fpdf)
  • Все лиды сохраняются в таблицу leads в PostgreSQL

Как работает бот

  1. Пользователь нажимает «Получить помощь» и подтверждает согласие на обработку персональных данных.

  2. Заполняет форму (имя, город, email, телефон, проблема). На каждом шаге можно нажать «Отмена» для выхода.

  3. После заполнения:

    • Получает PDF-лидмагнит
    • Данные сохраняются в БД и отправляются юристу
    • Юрист может ответить через /reply {user_id} {сообщение}

Команды для администратора

  • /reply {user_id} {сообщение} — ответить клиенту от имени бота
  • /leads — получить 5 последних лидов из БД

Обработка ошибок

  • Все действия логируются в JSON-файл
  • Ошибки при работе с БД и PDF отображаются пользователю и логируются

Безопасность

  • Перед началом формы пользователь подтверждает согласие на обработку данных
  • Все данные хранятся в PostgreSQL и не передаются третьим лицам

Тестирование

Для запуска unit-тестов используйте:

pytest tests/

Для проверки в Docker:

docker run --rm -it <имя_контейнера> pytest tests/

CI/CD

Пример workflow для GitHub Actions — см. .github/workflows/tests.yml

Проект масштабируемый, легко интегрируется с CRM и webhook-сервисами

. ├── main.py ├── config.py ├── requirements.txt ├── Dockerfile ├── docker-compose.yml ├── .dockerignore ├── .env.example ├── README.md ├── handlers/ │ ├── init.py │ ├── form.py │ └── admin.py ├── states/ │ ├── init.py │ └── form.py ├── services/ │ ├── init.py │ ├── db.py │ └── pdf_generator.py ├── utils/ │ ├── init.py │ └── logger.py ├── tests/ │ ├── test_db.py │ └── test_logger.py └── .github/ └── workflows/ └── tests.yml

About

Lead Generator for URNEFP

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages