Стенд: одна заявка — три адресата
Заполните форму — увидите каждую посылку целиком
Это настоящий движок, а не картинка: то же ядро разбора полей и сборки лида, которое работает в нашем плагине для WordPress. Считается в вашем браузере, никуда не отправляется. Кнопки справа нарочно ломают сценарий — так честнее.
В адрес страницы подставлены метки рекламы
utm_source=yandex, utm_medium=cpc,
utm_campaign=okna_msk — их приёмник тоже переносит, иначе потом невозможно
понять, какая реклама привела сделку.
Что именно делает приёмник
Приводит поля к одному виду
Формы называют поля как попало: your-phone, «Телефон *», tel.
Приёмник знает псевдонимы, а телефон приводит к +7XXXXXXXXXX из любого
написания — иначе в CRM три карточки одного человека, а автодозвон не находит номер.
Неизвестные поля не выбрасываются: они уходят в комментарий к лиду.
Отсекает то, что не заявка
Скрытое поле-ловушка — почти весь спам попадается на нём. Нет ни телефона, ни почты — отвечать всё равно некому. Нет галочки согласия — по 152-ФЗ такие данные обрабатывать нельзя, и мы их не принимаем, а не «принимаем, но потом разберёмся».
Не плодит дубли
Человек нажимает «Отправить» дважды, реклама открывает форму в двух вкладках, бот повторяет вебхук. Отпечаток «контакт + тема» в окне суток — и вторая копия в CRM и в Telegram не уходит, но в журнале остаётся строка, что дубль был.
Переживает падение адресата
Нет связи, 5xx, 429, «QUERY_LIMIT_EXCEEDED» у портала — посылка становится в очередь и повторяется через 1, 5, 15, 60 и 180 минут. Каждый адресат в своей очереди: Telegram получил, а CRM ещё нет — менеджер уже звонит. 401 или 400 в очередь не ставятся: повторять бессмысленно, сразу письмо администратору.
Проверяет, что вебхук наш
Адрес приёмника рано или поздно попадёт в чужие руки. Тело подписывается общим секретом; не сошлось — заявка не принимается и в журнал уходит строка «отклонено на входе». На стенде это видно кнопкой в тестах ядра.
Ведёт журнал без персональных данных
Журнал нужен, чтобы отвечать на «а куда делась заявка в четверг». Имени в нём нет, телефон и почта замаскированы до последних четырёх знаков. Это отдельный тест: если персональные данные протекли в журнал, сборка не проходит.
Почему именно эта связка
Замер по ленте заказов, 13 дней, 781 заказ
Мы каждый день разбираем ленту бирж и складываем заказы в темы. «Интеграции и API» — 116 заказов и средний чек 45 256 ₽, второе место по деньгам после всего, что связано с ИИ. Внутри темы самая частая просьба — именно эта: 30 заказов про «заявки с сайта в CRM» со средним чеком 43 750 ₽ и 10 заказов про «заявку в мессенджер» со средним 47 200 ₽. Формулировки заказчиков почти дословно: «Необходимо подключить основные каналы коммуникации с клиентами: Telegram, заявки с сайта. Настроить корректное создание сделок»; «нужна интеграция с Битрикс24, форму написать на коде»; «полная автоматизация внесения данных из мобильного приложения в Гугл таблицу и AmoCRM».
Типовой срок у таких заказов — от одного дня (поправить приём заявок) до недели (собрать приём, распределение и отчёт). Отдельно видно, что заказчик почти всегда описывает не «интеграцию», а результат: «чтобы заявка не терялась», «чтобы менеджер видел сразу», «чтобы было видно, из какой рекламы клиент».
Честные оговорки
Что здесь настоящее и чего здесь нет
Настоящее — движок. Разбор полей, телефон, отказы, дубли, сборка
crm.lead.add, сборка сообщения Telegram и строки таблицы, разбор ответов и
расписание повторов считаются на этой странице тем же кодом, который идёт на объект.
Двенадцать наборов проверок гоняются в node, поверх них — восемь независимых проверок в
pytest, среди них «в журнале нет персональных данных» и «у всех трёх адресатов один и тот
же телефон».
Чего нет — подключения к чужому порталу. Интеграцию нельзя показать публично, не имея аккаунта заказчика: ни одного лида в чей-то Битрикс24 мы с этой страницы не создаём и доступов ни у кого не просим. Поэтому стенд показывает результат — точное тело запроса, которое уйдёт в портал, точное сообщение, которое придёт менеджеру, точную строку таблицы и журнал. На объекте к этому добавляется полчаса работы: входящий вебхук в портале, токен бота, лист таблицы.
Мост в Telegram у нас боевой. Заявки с наших собственных страниц ходят через такой же приёмник и приходят в Telegram — им мы пользуемся сами каждый день. На витрине он отключён специально: публичная страница с открытым адресом приёмника превращается в спам-пушку.
Персональные данные. Всё, что вы введёте в форму на этой странице, остаётся в браузере: страница ничего не отправляет и ничего не сохраняет. Обновите — и данных нет.
Собрать такой приём заявок у вас
Смотрим, какие формы и каналы уже есть, ставим приёмник, подключаем адресатов, проверяем с телефона и с компьютера каждую форму и отдаём журнал, по которому вы сами видите, дошла заявка или нет. Никаких «ну у вас что-то с почтой».