Набор Python-скриптов для обработки лидов, очереди и сопутствующего обогащения данных.
enqueue.py- кладёт лиды в очередь на обогащение и помечает их как обработанные в Bitrix24.lead_pipeline.py- запускает пайплайн очереди и поочерёдно вызывает следующие стадии.assigned_upd.py- обновляет ответственного у лида по найденным данным компании.find_contacts.py- обогащает лид данными из внешнего источника и Bitrix24.past_call.py- прикрепляет историю звонков к лиду по ИНН.
Секреты и параметры берутся из .env-файла. Для примера в репозитории есть /.env.example.
Минимальный набор переменных:
# Bitrix24
BITRIX_WEBHOOK=https://your-domain.bitrix24.ru/rest/<user_id>/<token>/
# External services
GOSBASE=...
CALL_LEAD=...
BITRIX_TELEPHONY_FOLDER_ID=your_folder_id
# Database
DB_HOST=localhost
DB_NAME=your_db_name
DB_USER=your_db_user
DB_PASS=your_db_passwordУстановите зависимости:
python -m pip install -r requirements.txtКаждый файл можно запускать напрямую как обычный Python-скрипт:
python enqueue.py
python lead_pipeline.py
python assigned_upd.py
python find_contacts.py
python past_call.pyУ enqueue.py, assigned_upd.py, find_contacts.py и past_call.py есть поддержка --dry-run.
Установите dev-зависимости и запустите unit-тесты:
python -m pip install -r requirements-dev.txt
python -m pytestПроверка покрытия:
python -m pytest --cov=. --cov-report=term-missingМинимальный порог покрытия рабочего кода настроен в .coveragerc на 80%.
log/- runtime-логи.cache/- временные кэши, например для истории звонков.test/- тесты.
- В коде используются плейсхолдеры путей вида
/var/www/<user>/data/<project>. - Значения в
configs/bitrix_fields.json,configs/bitrix_stages.jsonиconfigs/staff_roles.jsonобезличены. Перед запуском замените демонстрационные CRM-коды, стадии, ID сотрудников и отделов значениями вашего портала. BITRIX_TELEPHONY_FOLDER_IDдолжен содержать ID корневой папки с записями телефонии.