Форма на сайте выглядит самой простой частью продаж: три поля и кнопка. Но между нажатием кнопки и звонком менеджера есть участок, который никто не видит. Письмо с заявкой попало в спам. Хостинг перестал отправлять почту. Клиент отправил форму дважды, и два менеджера позвонили ему с разницей в пять минут. Рекламная метка потерялась, и непонятно, какое объявление сработало.
Разберём, как передавать заявки с сайта в CRM напрямую и что при этом не забыть.
Почему «заявки на почту» ненадёжны
Классическая схема: форма отправляет письмо на адрес отдела продаж. У неё три системные проблемы.
- Письмо может не дойти, и вы не узнаете. Письма, которые сайт отправляет сам, почтовые сервисы часто считают подозрительными. Часть уходит в спам, часть отбрасывается молча. Посетитель при этом видит «Спасибо, мы свяжемся с вами».
- У письма нет статуса. Непонятно, кто взял заявку, перезвонили ли клиенту, чем всё закончилось.
- Данные нельзя посчитать. Чтобы узнать число заявок за месяц по источникам, придётся разбирать письма руками.
Прямая передача в CRM снимает все три: сайт получает подтверждение, что заявка принята, у заявки сразу есть статус и ответственный, а источники записаны в отдельные поля.
Как работает передача по API
API это адрес в CRM, на который ваш сайт отправляет данные формы обычным HTTP-запросом. Схема из четырёх шагов:
- Посетитель заполняет форму, данные уходят на сервер вашего сайта.
- Обработчик формы на сервере проверяет поля и отправляет запрос в CRM, подписав его ключом.
- CRM создаёт заявку и возвращает ответ: номер заявки или описание ошибки.
- Сайт показывает посетителю «Заявка принята», а если CRM не ответила, сохраняет заявку у себя и повторяет попытку: повторяйте с тем же заголовком
Idempotency-Key, тогда повтор не создаст вторую заявку.
Если сайт собран на конструкторе и своего обработчика нет, ищите в настройках формы отправку данных на внешний адрес (обычно это называется «вебхук»). Запрос при этом уходит с серверов конструктора, и ключ остаётся скрытым. Проверьте две вещи. Первая: вебхук должен уметь передавать ключ в заголовке запроса (в Linkodium CRM это X-API-Key или Authorization: Bearer); ключ в адресе или в полях формы CRM не примет и ответит ошибкой 401. Вторая: поля формы должны называться так, как ждёт API (name, phone, email и другие), иначе заявка без контактов будет отклонена. Если конструктор этого не умеет, поставьте чат-виджет или небольшой обработчик на своём сервере. Подробнее: аутентификация API.
Что передавать вместе с заявкой
Имя и телефон это минимум. Чем больше контекста получит менеджер, тем меньше он будет переспрашивать, а вы сможете оценить рекламу.
| Что | Зачем |
|---|---|
| Имя, телефон, email | Связаться с клиентом. Хотя бы одно из трёх обязательно. |
| Текст обращения | Менеджер звонит подготовленным. |
| Название формы или услуга | Понять, что именно интересует: «Расчёт стоимости», «Обратный звонок». |
| Источник | Отличить заявки разных сайтов и лендингов. |
| Страница формы | Увидеть, с какого товара или услуги пришёл человек. |
| Метки UTM | Связать заявку с рекламной кампанией и объявлением. |
| Страница первого захода и реферер | Узнать, откуда посетитель попал на сайт. |
Как не потерять рекламные метки
Метки UTM живут в адресе страницы, на которую человек пришёл из рекламы: ?utm_source=yandex&utm_campaign=okna. Проблема в том, что форму он отправляет не с этой страницы. Он походил по сайту, открыл цены, контакты, и в адресе меток уже нет. Если брать метки из адреса в момент отправки, большая часть заявок придёт без них.
Правильный порядок:
- Сохраните метки при первом заходе. Когда посетитель открывает сайт по ссылке с метками, запишите их в cookie или в хранилище браузера вместе с адресом первой страницы и реферером.
- Добавьте сохранённое к форме. При отправке подставьте метки в скрытые поля формы или прочитайте cookie на сервере.
- Передайте метки в CRM отдельными полями. Не склеивайте их в текст сообщения: по отдельным полям можно фильтровать и считать.
- Проверьте на себе. Откройте сайт по ссылке с тестовой меткой, пройдите по трём страницам, отправьте форму и посмотрите, что пришло в заявку.
Повторные обращения и дубли
Один человек легко создаёт несколько заявок: дважды нажал кнопку, заполнил форму на главной, а потом на странице услуги, через день оставил заявку с другого устройства. Если каждая становится отдельной карточкой, менеджеры звонят клиенту по очереди, а отчёт показывает больше обращений, чем было людей.
Дубли ловят по контактам: тот же телефон или тот же email. Две тонкости:
- Телефон нужно приводить к одному виду. «+7 (912) 000-12-34» и «89120001234» это один номер. Надёжный способ: сравнивать только цифры, причём последние десять.
- Повтор не всегда дубль. Клиент, чья прошлая заявка закрыта полгода назад, вернулся с новой задачей. Это новая заявка. А вот вторая форма, пока первая ещё в работе, это дополнение к ней.
Информацию из повторного обращения терять нельзя: человек мог уточнить вопрос или прийти уже с другой рекламы. Её стоит записать в историю существующей заявки.
Как это сделано в Linkodium CRM
Заявка создаётся одним запросом POST /api/v1/leads. Ключ выпускает администратор в «Настройках компании», на вкладке «API-ключи», и передаёт его в заголовке запроса. Ключ работает с правами выбранного сотрудника: если сотрудник видит только свои заявки, заявки с формы достаются ему самому, а у сотрудника, который видит все заявки компании, их получает менеджер по умолчанию (если он не назначен, владелец). Поэтому ключ для формы удобнее выпускать владельцу или администратору. Тело запроса может быть JSON или обычной формой. Кроме контактов и сообщения принимаются источник, услуга, страница формы, страница первого захода, реферер, пять меток UTM, идентификатор посетителя Яндекс Метрики и метка визита сквозной аналитики. Для форм Contact Form 7 и веб-форм 1С-Битрикс программировать ничего не нужно: есть готовые плагин для WordPress и модуль для 1С-Битрикс.
Защита от дублей работает так. Если в компании есть активная заявка (в статусе «Новая заявка» или «В работе», не в архиве), созданная за последние 30 дней, с тем же телефоном или email, новая не создаётся. В существующую добавляется событие «Повторное обращение» с текстом, страницей и метками, а в ответе API приходит её номер и признак повтора. Телефоны сравниваются по последним десяти цифрам. Номер короче 10 цифр не сверяется. Если прежняя заявка закрыта или создана больше 30 дней назад, создаётся новая.
Ещё одна полезная мелочь: заявку можно передать сразу со статусом «Спам». Она сохранится, но уведомление сотрудникам не уйдёт. Так удобно поступать с тем, что отметил антиспам формы: если он ошибся, заявку всё равно можно найти. Для этого у сотрудника ключа должно быть право менять статус, иначе CRM ответит ошибкой 403 и заявку не сохранит.
Свой антиспам есть и у CRM: общий код сквозной аналитики на сайте помогает ему отличить человека от программы, а в боевом режиме явный спам сразу уходит в этап «Спам» без уведомлений. Если сайт сам отправляет письмо с заявкой, передайте заявку в CRM до письма и попросите в ответе решение антиспама: тогда письмо со спамом можно не отправлять. Подробнее в разделе «Антиспам».
Примеры запросов есть в документации API, общий обзор на странице «Формы сайта и API».
Типичные ошибки
- Ключ в коде страницы. Про это сказано выше, но ошибка настолько частая, что повторим: только на сервере.
- «Спасибо» при любой ошибке. Обработчик не проверяет ответ CRM. Если запрос не прошёл, заявка пропала, а посетитель уверен, что его ждут. Сохраняйте заявку у себя и повторяйте отправку с паузой: повторяйте с тем же заголовком
Idempotency-Key. - Один ключ на всё. Сайт, лендинг и телефония работают с одним ключом. При утечке придётся перенастраивать всё сразу. Заведите отдельный ключ на каждую интеграцию.
- Одинаковый источник у всех форм. «Сайт» вместо «Сайт, форма расчёта» и «Лендинг, акция». Через месяц не понять, какая форма работает.
- Метки из адреса в момент отправки. Большая часть заявок придёт без них.
- Нет защиты формы от ботов. Спам заполнит список заявок и почту. Включите антиспам CRM или поставьте проверку на стороне сайта.
Коротко
Передавайте заявки в CRM напрямую, с сервера и с проверкой ответа. Сохраняйте рекламные метки при первом заходе и отправляйте их отдельными полями. Повторное обращение клиента, с которым уже работают, должно дополнять существующую заявку, а не создавать новую. Тогда каждая отправленная форма доходит до менеджера, а вы видите, откуда приходят клиенты.