Своими руками
6 октября 2026 · 10 мин
Форма обратной связи держится на четырёх частях: разметка полей, обработчик на PHP, канал доставки и подтверждение для человека. Отказ любой из них выглядит одинаково — тишиной. Ниже проверка приёма заявок своими руками, арифметика потерь в рублях и порядок настройки отправки в Telegram и на почту без капчи.
Сцена: заявка отправлена, а клиента никто не ждёт
Химчистка включила Директ на 60 000 ₽ в месяц. Метрика показывает 84 отправленные формы, в ящике и в чате Telegram — 11 сообщений. Остальные 73 человека увидели на экране «Спасибо, мы свяжемся» и ушли ждать звонка, а менеджер считал, что реклама не работает.
Сбой не выглядит поломкой: страница открывается, поля заполняются, кнопка нажимается. Поэтому он живёт месяцами и находится случайно — когда владелец отправляет себе тестовое сообщение и не получает его.
Что стоит проверить до обращения к студии
Начинайте не с кода, а с пути клиента: возьмите телефон, выключите Wi-Fi и заполните форму как новый посетитель.
- Отправьте заявку и дождитесь её в двух каналах: в чате Telegram и на рабочей почте. Пришло только в один — половина проблемы найдена.
- Откройте вкладку «Сеть» и посмотрите ответ обработчика. Код 200 — скрипт ответил, 500 — упал, пустой ответ — форма не дождалась сервера.
- Заполните поля заведомо кривыми данными: пустой телефон, буквы вместо цифр. Понятная подсказка — валидация работает, молчаливая отправка — её нет.
- Проверьте журнал писем на хостинге: запись «отправлено» без отметки о доставке значит, что сервер не отдал письмо адресату.
Четыре узла, в которых пропадают заявки
Причины сбоя живут там же, где проходит заявка.
- Адрес доставки. Вебхук собран с токеном тестового бота или старым chat_id, и сообщение уходит в чужой чат. Письма без SPF и DKIM оседают в спаме.
- Разметка и запрос. Кнопка без type submit, поле за пределами тега form, пустой атрибут name — обработчик получает пустое тело и отвечает успехом.
- Домен обработчика. Адрес без www или http вместо https браузер блокирует как смешанный контент, а в отчёте это выглядит как ноль отправок.
- Почтовый сервер. Хостинг держит лимит 200–500 писем в час: всплеск рекламы упирается в потолок, и часть заявок отбрасывается.
Потери в цифрах и рублях
Считаем на том же примере. Бюджет 60 000 ₽ при цене клика 40 ₽ даёт 1 500 визитов. Из 84 отправок до CRM доходит 11: 84 − 11 = 73 потерянных обращения в месяц.
Выручка с одной заявки при среднем чеке 9 000 ₽ и конверсии в сделку 20 процентов — это 20% от 9 000 = 1 800 ₽. Умножаем на потерянные обращения: 73 × 1 800 = 131 400 ₽ в месяц, то есть 788 400 ₽ за полгода.
Формула для своих чисел: потерянные обращения × выручка с заявки.
Что дальше без изменений
Первый месяц сбой прячется за статистикой: 84 отправки в отчёте выглядят как живой поток обращений.
К третьему месяцу видно другое: бюджет растёт, а записей в CRM столько же. Кабинет покупает переходы вместо обращений, поэтому цена заявки растёт вместе с конкуренцией.
Вместе с заявками сгорает база: потерянное обращение — это и повторный визит, и отзыв, и рекомендация. Хуже другое: без записи о доставке сбой не доказать, поэтому меняются подрядчик, бюджет и оффер, а причина остаётся в одной строке кода.
Порядок настройки на один вечер
Работы идут по порядку: сначала канал доставки, потом форма, затем защита. Всё делается правкой HTML и одного файла PHP.
- 01Получите токен бота у BotFather, отправьте боту /start и заберите chat_id через getUpdates — без него Telegram не примет сообщение.
- 02Соберите обработчик send.php: проверка метода, чтение полей, очистка значений и две отправки — через sendMessage в Telegram и письмом на почту.
- 03Свяжите форму с обработчиком: перехватите submit, отправьте данные запросом и разблокируйте кнопку после ответа сервера.
- 04Сделайте результат честным: при успехе — экран благодарности со ссылкой на мессенджер, при ошибке — телефон, чтобы клиент не остался без связи.
- 05Оставьте пять полей: имя, телефон, город, комментарий и согласие на обработку данных.
- 06Закройте защиту без капчи: поле-приманка, минимальное время заполнения две секунды и лимит пять отправок с одного адреса в час.
Где заканчивается зона контроля
Шесть шагов закрывают типовой сбой. Дальше начинаются задачи, которые растягивают вечер на неделю.
- Доставляемость. Скрипт на mail() пишет письмо от имени хостинга: без обратной зоны, DKIM и DMARC часть ящиков молча отбрасывает почту.
- Аналитика. Пока заявки падают в один чат, непонятно, какая кампания их принесла. Для utm и сквозной аналитики нужна схема с CRM.
- Стабильность. После обновления темы обработчик может исчезнуть вместе с папкой, а без журнала ошибок это выяснится по потерянным заявкам.
- Ответственность. Разовый ремонт не гарантирует, что сбой не вернётся после следующей правки, а проверить его бывает некому.
Что входит в работы и сколько это стоит
Работа начинается с разбора: аудит приёма заявок стоит 0 ₽, ведёт его Максим Холмов. На выходе — список дефектов и план правок на 2–3 рабочих дня.
- Настройка отправки в Telegram и на почту, валидация полей и защита от ботов входят в работы по сайту: одностраничник — от 10 000 ₽, сайт из разделов — от 30 000 ₽, каталог с оплатой — от 80 000 ₽.
- Если заявки нужно вести дальше формы, подключаются системы: кастомная CRM — от 150 000 ₽, бот в Telegram — от 100 000 ₽, приложение — от 150 000 ₽.
- Поддержка — 3 месяца бесплатно, далее от 5 000 ₽ в месяц. Исходный код и документация оформляются на заказчика.
Вывод: сначала тестовая заявка, потом бюджет
Форма обратной связи — это не картинка, а маршрут между человеком и менеджером. Проверить маршрут можно сегодня: отправьте себе заявку с телефона и дождитесь её в обоих каналах.
Если сообщение не пришло, порядок такой: почините доставку, сократите форму до пяти полей, поставьте защиту и сделайте честный экран после отправки. Дальше можно поднимать бюджет, не оплачивая тишину.
Коротко
11 из 84
Заявки, которые дошли до CRM при сломанном вебхуке
131 400 ₽
Потери на 73 обращениях в месяц
0 ₽
Разбор приёма заявок со стороны студии
2–3 рабочих дня
Срок правок по итогам аудита
Частые вопросы
Почему заявка с сайта не приходит в Telegram, хотя человек видит благодарность?
Почти всегда вебхук отправляет данные с токеном тестового бота или устаревшим chat_id, а страница при этом показывает успех независимо от ответа сервера. Проверьте адрес вебхука и chat_id, отправьте тестовое сообщение и убедитесь, что оно пришло в нужный чат. Пока приём не подтверждён, трафик лучше не увеличивать.
Нужна ли капча на форме обратной связи?
Для обычной формы достаточно трёх мер без капчи: скрытое поле-приманка, минимальное время заполнения и лимит отправок с одного адреса за час. Капча добавляет лишний шаг и снижает число отправок на 5–10 процентов, поэтому её ставят только там, где спам идёт потоком и предыдущие меры не помогают.
Письма с сайта попадают в спам. Что проверить в первую очередь?
Сначала домен отправителя: письма через mail() уходят от имени хостинга и часто не проходят проверки. Настройте SPF и DKIM для своего домена, добавьте DMARC и отправляйте через SMTP с авторизацией. Заодно проверьте лимит писем в час — при всплеске рекламы он обрезает часть заявок.




