Clew

← Блог

Гайд

Обратная связь на сайте: как перестать терять заявки

Четыре места, где теряются заявки: до формы, внутри формы, между отправкой и подтверждением, после письма. Поля, валидация, мобильная клавиатура, согласие на обработку данных и измерения.

Заявки с сайта теряются не в одном месте, а в четырёх. Человек не дошёл до формы. Начал заполнять и бросил. Отправил, но данные не ушли. Данные ушли, но письмо утонуло в почте. Оптимизировать при этом обычно берутся только второе — и получают прирост, который съедается на четвёртом шаге.

Форма, мессенджер или почта

Обратная связь на сайте — это не обязательно форма, и часто форма не лучший канал. У каждого варианта своя цена для посетителя.

  • Форма на странице. Ничего не нужно открывать, работает у всех, данные приходят структурированно. Минус: человек не видит, что было дальше, и не может дописать вдогонку.
  • Кнопка мессенджера (WhatsApp, Telegram, MAX). Переписка остаётся у человека, он видит, прочитали ли его. Минус: надо выйти с сайта в приложение, и часть людей на этом теряется.
  • Живой чат. Хорош, когда за ним правда кто-то сидит в рабочее время. Чат, который отвечает «мы получили сообщение» и молчит два дня, хуже формы: он пообещал разговор, который не состоялся.
  • Адрес почты текстом. Самый недооценённый вариант: ничего не ломается, работает без JavaScript, у человека остаётся копия письма. Минус: адрес собирают спам-боты.

Разумный набор для сайта малого бизнеса — форма плюс явные почта и телефон рядом с ней. Форма закрывает большинство, а почта и телефон дают выход тем, кто формам не доверяет; таких заметно больше, чем кажется.

Сколько полей оставить

Каждое поле стоит части заявок, но универсального «чем меньше, тем лучше» не существует. Короткая форма даёт больше обращений и хуже их качество; длинная отсекает случайных и оставляет тех, кто действительно готов разговаривать.

Выбор зависит от того, что дороже: пропущенный клиент или час работы менеджера. В массовых услугах со средним чеком в несколько тысяч рублей выигрывает короткая форма. В сложных продажах, где после заявки идёт часовая встреча, три дополнительных вопроса окупаются — они отсеивают тех, кому продукт не подходит.

Отдельно стоит вопрос обязательности. Поле «Комментарий», помеченное звёздочкой, гарантированно получит «...» или «надо». Спрашивать стоит только то, без чего первый ответ невозможен.

Поля и мобильная клавиатура

Значительная часть заявок, а на многих сайтах и большая часть, приходит с телефона. Там цена неверного типа поля выше: вместо цифровой клавиатуры человек получает буквенную и вводит номер через раз. Чинится это атрибутами разметки, а не JavaScript.

<input type="email" name="email" autocomplete="email" inputmode="email">
<input type="tel"   name="phone" autocomplete="tel"   inputmode="tel">
<input type="text"  name="name"  autocomplete="name">

Атрибут autocomplete разрешает браузеру подставить сохранённые данные: человек экономит полминуты и не делает опечаток. Маску телефона делайте мягкой. Если она не даёт ввести номер без +7 или вставить его из буфера, она вредит больше, чем помогает.

Размер элементов важен по той же причине. Поле высотой меньше 44 пикселей и чекбокс согласия размером со спичечную головку на телефоне промахиваются, и человек нажимает трижды.

Валидация

Почти все жалобы закрывают три правила. Показывайте ошибку после того, как человек ушёл из поля, а не на каждом символе: иначе форма ругается, пока он дописывает адрес. Никогда не стирайте введённое. И пишите, что именно не так.

«Проверьте правильность заполнения» не помогает ничем. «Похоже, в адресе пропущен символ @» — помогает. Текст ошибки располагается у поля, а не общим блоком наверху, иначе на длинной форме его просто не увидят.

Красный текст ошибки на светлом фоне часто не проходит по контрасту, и на солнце его не видно. Быстрая проверка пары цветов — в проверке контрастности по WCAG.

После нажатия «Отправить» кнопку стоит блокировать и менять подпись: иначе при медленном соединении человек нажмёт её четыре раза, и менеджер получит четыре одинаковые заявки.

Согласие на обработку персональных данных

Имя, телефон и почта — персональные данные, и отправка формы должна сопровождаться согласием. Практическая часть сводится к нескольким вещам, которые проверяются за пять минут.

  • Чекбокс не отмечен заранее — согласие должно быть действием человека, а не состоянием по умолчанию.
  • Рядом ссылка на политику обработки персональных данных, которая открывается и действительно существует.
  • Согласие на обработку и согласие на рекламную рассылку — разные вещи. Смешивать их в одном чекбоксе не следует.
  • Факт согласия фиксируется вместе с заявкой: дата, время, версия текста политики.
  • Отказ объясняется у самого чекбокса. Если человек нажал «Отправить» без галочки, сообщение появляется рядом с ней, а не под кнопкой.

Формулировка «Нажимая кнопку, вы соглашаетесь» встречается часто, но отдельный чекбокс надёжнее: он даёт проверяемый след, который можно показать при проверке.

Минимальная рабочая форма

Вот из чего форма состоит, если убрать всё необязательное. Обратите внимание на label for, на абзац для ошибки, связанный с полем через aria-describedby, и на область с role="status" для результата отправки: это не украшения, а то, из-за чего форма работает с клавиатурой и со скринридером.

<form id="cf" novalidate>
  <p>
    <label for="cf-name">Имя</label>
    <input id="cf-name" name="name" type="text" autocomplete="name"
           required aria-describedby="cf-name-err">
    <span class="err" id="cf-name-err"></span>
  </p>
  <p>
    <label for="cf-email">E-mail</label>
    <input id="cf-email" name="email" type="email" inputmode="email"
           autocomplete="email" required aria-describedby="cf-email-err">
    <span class="err" id="cf-email-err"></span>
  </p>
  <p>
    <label for="cf-msg">Сообщение</label>
    <textarea id="cf-msg" name="message" rows="5"
              required aria-describedby="cf-msg-err"></textarea>
    <span class="err" id="cf-msg-err"></span>
  </p>

  <!-- Ловушка для ботов: люди этого поля не видят -->
  <p class="hp" aria-hidden="true">
    <label for="cf-hp">Не заполняйте это поле</label>
    <input id="cf-hp" name="cf_hp" type="text" tabindex="-1" autocomplete="off">
  </p>

  <p>
    <label for="cf-consent">
      <input id="cf-consent" name="consent" type="checkbox" required>
      <span>Я даю согласие ООО «Ромашка» на обработку моих персональных
      данных, указанных в этой форме, для ответа на обращение.
      <a href="/privacy">Политика обработки персональных данных</a></span>
    </label>
  </p>

  <button type="submit">Отправить</button>
  <p id="cf-status" role="status" aria-live="polite"></p>
</form>

Ловушку для ботов прячут через position: absolute; left: -9999px, а не display: none: часть ботов пропускает поля со display: none. Обработчику остаётся правило в одну строку — поле не пустое, значит, молча выбросить. Этого хватает для обычного трафика, и капча до этого момента только снижает число обращений.

Скрипт проверки, стили и вариант отправки к этому прилагаются, и переписывать их руками не обязательно: генератор формы обратной связи собирает всё под выбранные поля и способ отправки, показывает форму живьём и отдаёт готовые HTML, CSS и JS без зависимостей — вместе с текстом согласия по 152-ФЗ. Если форму нужно показать не на странице, а поверх неё, тот же набор для модального окна даёт генератор всплывающего окна: там же настраиваются триггер и ограничение частоты показа.

Что показать после отправки

«Спасибо, ваша заявка отправлена» — самый частый и самый пустой экран после отправки. Он не отвечает ни на один вопрос, который в этот момент есть у человека: когда ответят, кто ответит и что делать, если не ответят.

Рабочий вариант отвечает на четыре вопроса. Заявка принята. Ответим в рабочие часы, обычно в течение двух. Позвоним на указанный номер. Не дождались — напишите на адрес или в мессенджер. Номер обращения полезен, только если он правда помогает найти заявку в вашей системе.

Письмо-подтверждение решает ту же задачу и заодно проверяет адрес. Если через минуту письма нет, человек ещё на сайте и может исправить опечатку — а вы не узнаете о проблеме через три дня.

Доставка: где заявки пропадают физически

Самая обидная потеря — когда форма показала «Спасибо», а данные никуда не дошли. Причины повторяются из раза в раз. Почта уходит с домена без настроенных записей и попадает в спам. Получатель уволился, а адрес остался в настройках. Интеграция с CRM отвалилась после смены токена и молча возвращает ошибку.

Дешёвая страховка — дублирование в два независимых канала: запись в базу или таблицу плюс уведомление в рабочий чат. И ежемесячная тестовая заявка от себя, которая проверяет весь путь целиком, до строчки в CRM.

Как измерять доходимость

Одной конверсии «визит → заявка» мало: она показывает результат, но не место потери. Минимальный набор событий — четыре.

  • Форма показана в области экрана (а не просто есть на странице).
  • Начато заполнение — первое изменение любого поля.
  • Ошибка валидации, с указанием поля. Это самое полезное событие из всех.
  • Успешная отправка, подтверждённая ответом сервера, а не фактом нажатия.

Разница между вторым и четвёртым событием и есть доходимость формы. Событие с ошибкой по полям сразу показывает виновника: если 30 % ошибок приходится на телефон, проблема в маске, а не в людях. Посчитать потери по шагам и найти главную утечку помогает калькулятор воронки конверсии, а связать заявки с источниками — генератор UTM-меток.

Оценивать изменения формы на глаз не стоит: недельные колебания конверсии на небольшом трафике легко принять за эффект. Если форма приносит десяток заявок в день, надёжного вывода по двум дням не будет.

Где короткая форма проигрывает

В двух случаях сокращение полей ухудшает бизнес-результат. Первый — когда без квалификации заявка бесполезна: подрядчику по ремонту нужен хотя бы город и объём, иначе звонок ничего не даст. Второй — когда поток заявок уже превышает возможности обработки; тогда задача не собрать больше, а собрать лучше.

И отдельный случай: форма обратной связи не всегда нужна как форма. Если нужна оценка услуги или один короткий отзыв, точнее работает всплывающий вопрос в один клик. Его можно поставить на страницу без разработчика, а длинную форму оставить для настоящих заявок.

И отдельная проверка, которая занимает минуту: прочитайте пять последних обращений. Если три из них — вопросы, ответ на которые должен был быть на сайте, форма не сломана, сломан сайт, и улучшать надо не её.

Готовый код формы под свои поля — в генераторе формы обратной связи, модальное окно с той же формой — в генераторе всплывающего окна. А Clew показывает форму или короткий вопрос в нужный момент, не трогая вёрстку сайта: после прокрутки до цен, при попытке уйти, на третьем визите. Формулировки при этом стоит держать человеческими: типичные ошибки собраны в статье про канцелярит.

Туры, попапы и онбординг в эпоху ИИ

7 паттернов с числом шагов, правилами текста и метриками, что меняет ИИ, чек-лист перед публикацией. PDF, 2 страницы. Что внутри гайда →