Спам в заявках: как отличить бота от клиента и не терять лиды
Форма ловит десятки заявок в день, но менеджер тонет в мусоре. Разбираем признаки бот-заявок и как отсеять их серверными фильтрами, не задев живых клиентов.
Форма собирает по тридцать заявок в день, а продаж как не было. Менеджер открывает CRM и видит «John», «asdf», ссылки на казино и одинаковые шаблонные тексты. Это спам-боты. Задача не «поставить капчу», а отличить бота от клиента и не выкинуть живого человека вместе с мусором.
Как выглядит бот-заявка
У автоматических отправок есть повторяющиеся признаки. По отдельности каждый слабый, вместе — говорят громко.
- Мгновенное заполнение. Человек тратит на форму 15-40 секунд, бот — доли секунды. Заявка, отправленная через 2 секунды после загрузки страницы, почти всегда машина.
- Мусор в полях. Имя «qwerty», город «test», сообщение из случайных букв или, наоборот, идеально шаблонный рекламный текст.
- Ссылки в сообщении. Живой клиент редко вставляет URL. Бот-спамер — почти всегда: он и пришёл ради ссылки.
- Повторы с одного IP. Пять одинаковых заявок за минуту с одного адреса — не пять клиентов.
- Странный User-Agent. Пустой UA, устаревший браузер, известные библиотеки (python-requests, curl, Go-http-client) в заголовке.
Серверные фильтры, которые не бьют по людям
Главный принцип: фильтруем на сервере и по совокупности сигналов. Один слабый флаг — не повод отклонять: живой человек тоже пишет коротко и быстро.
- Проверяйте время между загрузкой страницы и отправкой — храните метку в скрытом токене, а не в поле, которое видно боту.
- Считайте частоту с IP за окно времени. Больше N заявок за минуту — на модерацию.
- Ищите ссылки и спам-слова в тексте сообщения, но не в имени и телефоне.
- Проверяйте User-Agent: пустой или библиотечный — сильный минус.
Порог подозрительности вместо чёрно-белого
Не делите заявки на «спам» и «не спам». Начисляйте баллы: быстрая отправка +2, ссылка в тексте +3, повтор с IP +2, библиотечный UA +3. Дальше два порога:
- Ниже нижнего — пропускаем в CRM без вопросов.
- Между порогами — принимаем, но помечаем флагом «проверить».
- Выше верхнего — не отклоняем молча, а кладём в отдельную очередь модерации.
Так вы почти не теряете реального клиента: сомнительная заявка не пропадает, а ждёт человека.
Логируйте всё и смотрите раз в неделю
Каждую отправку пишите в лог с баллами и сигналами. Через неделю видно, какие правила ловят спам, а какие цепляют живых. Настройка фильтра — это цикл, а не разовая установка.
Ручная модерация спорных
Заявки из «серой зоны» — не в корзину, а в очередь на 30 секунд менеджеру. Живой клиент с необычным поведением попадёт в продажу, а не в мусор — это дешевле, чем потерять один настоящий лид на сотню ботов.
Чеклист
- Считаю сигналы по совокупности, а не по одному флагу.
- Фильтрую на сервере, а не только на фронте.
- Три зоны: пропуск / флаг / модерация — без тихого удаления.
- Логирую баллы и раз в неделю пересматриваю пороги.
- Спорное уходит человеку, а не в корзину.
Вывод
Спам в заявках лечится не одной капчей, а системой сигналов и разумным порогом, за которым живой клиент всегда получает шанс. Если менеджер тонет в мусоре и вы не уверены, что не теряете настоящих лидов, мы соберём умную форму заявки с защитой от спама — с логами, баллами и модерацией, чтобы в CRM попадали люди, а не боты.