Короткий ответ
Форма отправилась, посетитель увидел «спасибо» — и на этом гарантии заканчиваются. Разбираем три адресата заявки: CRM, платёжного провайдера и аналитику. Что каждый просит у вас до начала работ, чем отказывает и какие проверки на приёмке ловят тихий отказ.
Короткий ответ: форма — это только первое звено
Интеграция — это цепочка передач. Браузер отправляет данные на сервер, сервер записывает их у себя и только после этого передаёт дальше: в CRM, платёжному провайдеру, в систему аналитики. Каждое звено отказывает отдельно и по своим причинам.
Надпись «спасибо, заявка отправлена» описывает первое звено и больше ничего. Она означает, что запрос дошёл до сервера и сервер ответил кодом успеха. О том, что произошло дальше, эта надпись не обещает ровным счётом ничего.
В этом зазоре и живёт ситуация из заголовка. Форма работает, клиент уверен, что написал вам, а в CRM пусто, уведомление лежит в спаме, и в отчёте по каналам эта заявка не числится ни одной строкой.
Дальше разбираем по адресатам: что каждая интеграция просит у вас ещё до того, как кто-то напишет код, чем именно она отказывает и какие проверки на приёмке ловят тихий отказ раньше, чем о нём расскажет потерянный клиент.
Что на деле доказывает «форма отправилась»
Успешный ответ сервера доказывает три вещи: адрес существует, отправленные поля прошли проверку, запись создана на вашей стороне. Это меньше, чем в него обычно вкладывают, и всё же необходимо — без этого звена дальше пересылать нечего.
Он не доказывает, что письмо доставлено, что карточка появилась в CRM, что платёж подтверждён и что событие ушло в аналитику. Всё перечисленное происходит уже после ответа и вне поля зрения посетителя.
Разработчик может показать успешный ответ и добросовестно закрыть задачу. Поэтому в приёмку стоит вносить не отправку формы, а каждый адресат поимённо: открыли CRM — увидели карточку, открыли почту — увидели уведомление, открыли панель — увидели событие.
Инженерная развязка проста. Подтверждение пользователю выдаётся за сохранение на вашей стороне, а доставка адресатам считается отдельной операцией: со своим журналом, своими повторами и своим уведомлением конкретному человеку, когда доставка не удалась.
Три адресата и зачем нужен каждый
CRM владеет обращением. Она хранит контакт, историю и стадию сделки, назначает ответственного и позволяет через полтора месяца спросить, чем закончилась конкретная заявка. Общий почтовый ящик так не умеет: письмо просто опускается вниз списка.
Платёжный провайдер отвечает за деньги и юридическую сторону: карта, валюта, чек, возврат. Расхождение между «оплачено» и «записано» видят покупатель и его банк, поэтому этот адресат проверяют настоящей операцией, а не скриншотом из тестового режима.
Аналитика отвечает за атрибуцию: откуда пришёл человек, какие страницы читал, на каком шаге ушёл. Без неё рекламный бюджет назначается по впечатлению, а не по тому, что ваш собственный сайт способен рассказать о пути до обращения.
Три системы, три задачи, три способа сломаться. Поэтому строка сметы «настроить интеграции» не сообщает ничего полезного. Каждой нужен свой доступ, своё сопоставление полей и своя проверка при передаче работы.
Что интеграция с CRM просит у вас
Аккаунт и права на него. Рабочий тариф CRM, в котором разрешено создавать записи через API, и ключ или подключение, выданные от имени компании, а не с личного профиля сотрудника, который может уйти в марте.
Сопоставление полей. Список полей формы и то, в какое поле CRM ложится каждое из них: имя, телефон, почта, сообщение, источник, кампания. Без этого списка разработчик угадывает, и расхождение вскрывается уже на живых заявках, а не на тестовых.
Правила воронки. В какую стадию попадает новая запись, кто назначается ответственным и что должно происходить, когда один и тот же человек пишет дважды: заводится вторая карточка или дополняется та, что уже есть.
Ответ на вопрос, кто это открывает. Интеграция доводит заявку до системы; остаток пути проходит человек с уведомлением и согласованным временем ответа. Без него аккуратная CRM только копит непрочитанные строки.
Где ломаются интеграции с CRM
Обязательные поля. CRM отклоняет запись, в которой пусто поле, помеченное администратором как обязательное. Форма на сайте об этом правиле не знает, поэтому отказ приходит уже после того, как посетителю показали экран благодарности.
Типы и форматы. Телефон, отправленный произвольной строкой, номер с пробелами и скобками, дата в другом порядке — принимающая сторона либо отвергает значение, либо молча кладёт его туда, где вы его искать не станете.
Истёкший доступ. У токенов и подключений есть срок жизни, а смена пароля или отозванные администратором права обрывают их немедленно. Интеграция, работавшая полгода, останавливается в день, когда в коде никто ничего не трогал.
Дедупликация. Правило слияния по телефону или почте способно подшить новое обращение к старой карточке и убрать его из списка новых. Запись формально есть; нет только того, кто смотрит в место, куда она легла.
Что платёжная интеграция просит у вас
Собственный торговый аккаунт. Договор с провайдером подписывает ваше юридическое лицо, оно же проходит проверку и указывает счёт для выплат. Подрядчик подключает уже открытый аккаунт; открыть его вместо вас он не может.
Юридический слой. Условия продажи, политика возврата, реквизиты, налоговая сторона чека и то, что ваш провайдер требует в описании товара. Этот материал предоставляете вы, а в пакете «Разработка продукта» прямо сказано, что лицензирование платежей не входит.
Валюты и суммы. В какой валюте указана цена, как работает округление, показывается ли налог отдельно. Провайдеры принимают сумму в наименьшей единице — центы, а не доллары — и путаница между ними даёт цифру, отличающуюся в сто раз.
Адрес для уведомлений. Провайдеру нужен доступный извне адрес на вашем сайте, куда он сообщит о состоявшейся оплате, и проверяемая подпись этого сообщения, чтобы посторонний запрос не мог отметить заказ оплаченным.
Где ломаются платежи
Неподтверждённый вебхук. Покупатель заплатил, банк списал деньги, провайдер отправил уведомление, а адрес ответил ошибкой. Средства ушли, заказ в вашей системе висит неоплаченным, и узнаёте вы об этом из письма покупателя.
Тестовые ключи на боевом сайте. Оплата проходит в песочнице провайдера и выглядит на экране успешной, хотя деньги не двигались. Доверия заслуживает одна проверка: провести настоящий платёж небольшой суммой и найти его в кабинете провайдера.
Обратный путь. После оплаты провайдер возвращает покупателя по заранее заданному адресу. Укажите страницу, которой нет, или ту, что падает без параметров платежа, — и человек остаётся в неизвестности и может заплатить второй раз.
Повторы и идемпотентность. Провайдеры повторяют уведомление, пока не получат подтверждение. Без ключа идемпотентности такой повтор создаёт второй заказ или вторую строку в учёте, и сверка в конце месяца перестаёт сходиться.
Что аналитика просит у вас
Список вопросов. Не «поставьте счётчик», а перечень решений: какой канал окупается, на каком шаге форма теряет людей, какие страницы читают перед обращением. События выводятся из вопросов, а не наоборот.
Правила согласия. Какие скрипты вы вправе запускать до согласия посетителя, какие — только после, и что предлагает баннер. Это определяет и юридическую позицию, и то, какая доля трафика вообще попадёт в отчёт.
Схема именования событий. Одно имя на одно действие, зафиксированное письменно: форма отправлена, оплата начата, оплата подтверждена. Имена, придуманные по ходу выпуска функций, превращают панель в столбец почти одинаковых строк.
Читатель отчёта. Кто открывает панель, как часто и что делает с числом. Аналитика без читателя — это данные, которые собираются годами и не меняют ни одного решения о расходах.
Где ломается аналитика
Согласие и блокировка. Часть посетителей не соглашается, часть пользуется расширениями, отдельные браузеры сами ограничивают сторонние скрипты. Цифра на панели оказывается ниже реального числа визитов, поэтому её сравнивают с собой во времени, а не с банковской выпиской.
Переходы без перезагрузки. На современном сайте смена страницы часто обходится без нового запроса документа. Счётчик, написанный под загрузку документа, видит вход и заключает, что дальше посетитель не пошёл, — внутренние шаги исчезают из воронки.
Дубли. Две копии одного тега — вставленная в шаблон и добавленная позже через менеджер тегов — удваивают просмотры и занижают отказы. Отчёт выглядит здоровее, чем сайт.
Учёт клика вместо результата. Событие «форма отправлена», привязанное к нажатию кнопки, считает и те попытки, которые до сервера не дошли. Привязывайте его к подтверждённому ответу, иначе конверсия, которую вы себе показываете, больше настоящей.
Тихий отказ и как его лечить
Тихий отказ — это состояние, в котором посетитель видит подтверждение, адресат не получил ничего, и никто об этом не узнаёт, потому что ошибка случилась в фоне и не была адресована человеку. В интерфейсе всё исправно; просто результата не произошло.
Первое лекарство — журнал. Каждая попытка доставки записывается: адресат, время, результат и что ответила принимающая сторона. Вопрос «была ли во вторник заявка» решается за минуту вместо того, чтобы превращаться в спор между сторонами.
Второе — повтор. Сетевой сбой или короткая недоступность CRM снимается несколькими повторами с нарастающей паузой, и доставка, не удавшаяся в девять, проходит в девять ноль пять без того, чтобы кто-то открывал ноутбук.
Третье — уведомление человеку. Когда повторы исчерпаны, кто-то должен получить сообщение об этом. Тишина не работает как способ наблюдения: она выглядит ровно так же, как спокойная неделя, в которой обращений и не было.
Чем интеграции обходятся странице: скорость и доступность
Каждый сторонний скрипт — это лишние байты, лишние соединения и лишняя работа основного потока браузера. Документация MDN по производительности описывает, как измерять этот вклад и почему код, который вы не контролируете, ставят после содержимого, ради которого пришёл посетитель.
Практическое следствие — правило очерёдности. Виджет чата, рекламный пиксель и менеджер тегов не должны стоять между посетителем и работающей формой. Форма — причина визита; сопровождающие её скрипты подождут своей очереди.
Доступность формы описана в кратком справочнике W3C по WCAG 2.2. Ошибку нужно называть текстом, а не только цветом, а сообщения о статусе должны доходить до программы чтения с экрана, не забирая фокус оттуда, где человек печатал.
WCAG 2.2 добавляет и критерий о повторном вводе: не заставляйте человека вводить одни и те же данные дважды внутри одного процесса. Для оплаты это ровно шаг подтверждения, где адрес с предыдущего экрана уже должен быть подставлен.
Как заказать работу и что не входит в пакеты
Site Fix Pack стоит $70 и занимает 1-2 рабочих дня: до пяти согласованных правок, проверка на мобильном и десктопе, список «было/стало» при передаче и один раунд правок. Новые страницы, редизайн и миграции в него не входят, поэтому первое подключение платежей — не задача этого пакета.
«Сайт для запуска» стоит $380 и занимает 3-5 рабочих дней: адаптивная вёрстка, подключение CMS или данных, настройка развёртывания и два раунда правок до запуска; контент и переводы предоставляет клиент. Версия Express стоит $520 и занимает 2 рабочих дня — тот же объём в приоритетной очереди, с ежедневными сборками, чек-листом запуска, созвоном при передаче и одним раундом правок после первой полной сборки.
«Разработка продукта» стоит $880 и занимает 2-3 недели: реализация функций, логика состояний и маршрутов, тестирование и укрепление, два раунда правок на каждую переданную функцию. Нативные мобильные приложения и лицензирование платежей не входят — эту строку стоит прочитать до того, как решить, что подрядчик оформит вам торговый аккаунт.
«Постоянная техническая поддержка» стоит $290 в месяц: приоритетные обновления, недельный ритм релизов и техническое обслуживание. Цикл месячный, прекращение — с уведомлением за 30 дней, объём работ согласуется в начале каждого цикла. Новая сборка или редизайн выносятся в отдельный проект и в абонент не заходят.
Практический чеклист
- Выпишите все адресаты одной заявки: запись на сайте, почта, CRM, платёжный провайдер, аналитика.
- Составьте таблицу соответствия полей формы полям CRM до начала работ.
- Выдайте доступы от имени компании, а не с личного профиля сотрудника.
- Проведите настоящий платёж небольшой суммой и найдите его в кабинете провайдера.
- Привяжите событие отправки формы к подтверждённому ответу сервера, а не к нажатию кнопки.
- Назначьте человека, который получает уведомление о неудачной доставке, и согласуйте время ответа.
Вопросы и ответы
Форма отправляется, но заявок нет. Где искать причину?
Проверяйте по порядку и по адресатам. Есть ли запись на вашей стороне; что говорит журнал доставки о последней попытке; не лежит ли уведомление в спаме; что ответила CRM на последний запрос; не истёк ли ключ доступа. Пока журнала попыток нет, любой из этих ответов приходится добывать вручную, и разбор занимает часы вместо минуты.
Сколько стоит починить интеграцию, которая перестала работать?
Для точечных поломок есть Site Fix Pack за $70 и 1-2 рабочих дня: до пяти согласованных правок, проверка на мобильном и десктопе, список «было/стало» при передаче и один раунд правок. Новые страницы, редизайн и миграции в пакет не входят, поэтому первое подключение платёжного провайдера в него не укладывается.
Вы можете открыть за нас торговый аккаунт у платёжного провайдера?
Нет. Договор подписывает ваше юридическое лицо, оно же проходит проверку провайдера и указывает счёт для выплат. В пакете «Разработка продукта» лицензирование платежей прямо указано как не входящее. Подрядчик подключает уже открытый аккаунт к сайту, настраивает приём уведомлений и проверку подписи.
Что подготовить до старта работ по интеграциям?
Доступ к CRM от имени компании, таблицу соответствия полей формы полям CRM, правила воронки и ответственного, реквизиты и политику возврата для платежей, список вопросов, на которые должна отвечать аналитика. Контент и переводы вы предоставляете сами — их написание в пакеты разработки не входит.
Почему числа в аналитике не сходятся с числом реальных заявок?
Часть посетителей не даёт согласия, часть пользуется блокировщиками, отдельные браузеры ограничивают сторонние скрипты. К этому добавляются переходы без перезагрузки страницы, которые счётчик не видит, и дубли тега, которые удваивают просмотры. Сверяйте конверсию по подтверждённому ответу сервера, а панель сравнивайте с собой во времени.

