Урок 3 из 6

Сайт → Битрикс24

7–10 мин

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

Почему форма не обращается в Битрикс напрямую

Проще всего было бы отправить данные формы сразу на адрес вебхука. Но тогда этот адрес пришлось бы написать в коде страницы, а код страницы видит любой посетитель — об этом был первый урок.

Поэтому цепочка состоит из трёх шагов:

форма на странице → обработчик на вашем сервере → Битрикс.

Посетитель отправляет данные на ваш же сайт и никакого ключа не видит. В Битрикс обращается обработчик, и ключ лежит только у него.

Что нужно от хостинга

Обработчик — это небольшой файл на том же хостинге, где лежит сайт. Подойдёт любой хостинг, на котором выполняется серверный код: таких большинство.

Исключение — статический хостинг, где работают только HTML и JavaScript. Там обработчику нужен отдельный сервер, такой же, как в уроке Что спросить у агента до покупки сервера.

Сделайте приём заявок

Готовый запрос
Сделай приём заявок с сайта в Битрикс24 по схеме из integration.md. Форма отправляет данные на обработчик на моём сервере, обработчик создаёт лид через сохранённый вебхук. Сначала сохраняй заявку у себя, потом отправляй в CRM: если Битрикс не ответил, заявка не должна потеряться. Адрес вебхука в код страницы не вставляй. Готово, когда я отправляю тестовую заявку с сайта и вижу новый лид в CRM.

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

Условие готовности при этом описывает не код, а то, что вы увидите глазами: заявку в карточке.

Доведите форму до рабочего вида

Первая версия обычно принимает заявку и на этом останавливается. Попросите остальное одним запросом:

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

Блокировка кнопки убирает двойные заявки от нетерпеливого клика. Сообщение посетителю нужно, чтобы он не отправлял форму по второму разу, не понимая, сработала ли она.

Проверьте результат

  1. Отправьте тестовую заявку с сайта.
  2. Найдите её в CRM: имя, способ связи, комментарий и адрес страницы на месте.
  3. Отправьте вторую заявку с другим текстом — должен появиться новый лид, а не измениться прежний.
  4. Нажмите кнопку отправки дважды подряд — лид должен остаться один.
  5. Откройте исходный код страницы с формой. Адреса вебхука там быть не должно.

Пятый пункт — не формальность. Это единственный способ убедиться, что ключ остался на сервере, а не переехал на страницу вместе с формой.

Итог

  • Ключ не попадает на страницу, поэтому в цепочке всегда есть обработчик на вашем сервере.
  • Заявку сначала сохраняют у себя, потом отправляют в CRM.
  • Условие готовности описывают через лид в CRM, а не через код.
  • Первая рабочая версия — не финал: блокировка кнопки, сообщения и адрес страницы добавляются следом.
  • Отсутствие ключа в коде страницы проверяют глазами, а не на слово.