Стата «Заявки» из воронки: запись лидов при конверсии

Воронка перестала писать в leads после ребрендинга — блок «Заявки» был всегда 0.
Теперь при конверсии (нажал оплату/пробное или передан менеджеру) бот фиксирует
заявку в leads (source=bot, имя из VK, услуга = тариф/формат/игра), один раз на заход
(флаг lead_recorded сбрасывается при новом старте воронки/интенсива). Разбивка «по
тарифу/формату» снова показывает реальные цифры.

Статистика почищена: убраны «из бота» (все заявки теперь из бота) и строка «согласны
на рассылку» (воронка не собирает это согласие) — не вводят в заблуждение.

Тест: test_baza_records_lead_once. pytest 34 passed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Kenik
2026-07-23 20:27:21 +03:00
parent 72eeccdc3a
commit 7889a19744
2 changed files with 33 additions and 11 deletions
+12
View File
@@ -62,6 +62,18 @@ def test_baza_other_game_goes_to_manager(app):
assert "Valorant" in _prof(u)["game"]
def test_baza_records_lead_once(app):
"""Воронка пишет заявку в leads при конверсии; оплата+проблема = 1 заявка (без дублей)."""
u = 70030
for m in ["Подобрать тренировку 🎯", "Для себя", "16 лет и старше", "CS2",
"Играет для себя", "Групповые тренировки", "Купить 4 тренировки"]:
app.handle_message(u, m)
app.handle_message(u, "Проблема с оплатой") # тот же заход → не должно создать вторую
s = bot.db.get_lead_stats()
assert s["total"] == 1 and s["from_bot"] == 1
assert any("Групповой" in name for name, _ in s["by_service"])
def test_baza_smart_skip_known_fields(app):
"""§15: уже сохранённые ответы не переспрашиваются."""
u = 70020