ActiveLab - IT-решения для бизнеса
← Все статьи
Интеграции

Интеграция сайта с CRM: этапы и проверка заявок

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

Обновлено 14 сентября 2026 18 мин чтения ActiveLab
CRM Заявки Интеграции Приёмка
Иллюстрация связи сайта с CRM и передачи обращений

1. Опишите путь обращения до действия менеджера

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

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

Ниже — учебный маршрут поставщика оборудования. Принятое правило: запрос на обслуживание создаёт сделку в воронке «Сервис», стадии «Новый запрос»; совпавший контакт связывается со сделкой, неоднозначное совпадение передаётся на разбор. Все обозначения и данные вымышлены. Это образец требований, а не описание уже установленной на вашем сайте интеграции.

Заполненный маршрут обращения DEMO-CRM-001
ПереходРезультатОтветственный и подтверждение
Посетитель → форма на странице /services/maintenance/Выбрана услуга «Обслуживание оборудования», указан test@example.com; серверная проверка пройденаОбработчик сайта; невалидные поля возвращают понятную ошибку до подтверждения приёма
Форма → хранилище обращенийСохранены ID DEMO-CRM-001, услуга, контакт, контекст и время; состояние «ожидает»Разработчик сайта; запись находится по ID. Только после её сохранения посетитель видит подтверждение
Хранилище → интеграцияЗадача передачи с этим ID взята в обработку; повторная параллельная обработка того же ID исключена механизмом интеграцииРазработчик интеграции; видны попытка и её результат, а не только факт запуска отправки
Интеграция → CRMНайден единственный контакт DEMO-CONTACT-01; создана сделка DEMO-DEAL-01 в «Сервис / Новый запрос» с внешним ID DEMO-CRM-001Администратор CRM принимает поля и маршрут; сохранена связь ID обращения с ID сделки
CRM → действие менеджераНазначена роль «Менеджер сервиса» и задача связаться с заявителем; при недоступности сотрудника назначается дежурная роль, определённая в настройкахРуководитель продаж проверяет доступ к карточке и задаче под обеими ролями. В рабочей схеме роли заменяют конкретными назначениями

Если таблица не помещается на экране, прокрутите её по горизонтали.

Готовый маршрут отвечает на вопрос «где сейчас заявка и кто должен действовать». Если создание сделки удалось, а задача менеджеру не создалась, это отдельный незавершённый шаг: повторяют назначение задачи с проверкой существующей, не создают сделку заново.

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

2. Подготовьте карту полей и правила проверки

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

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

Подготовьте карту полей и правила проверки
Поле и типУчебное значениеНазначение в CRMПравило проверки
request_id — строкаDEMO-CRM-001Внешний ID обращения в сделкеНазначается системой до приёма логической отправки; двойной клик, повтор после тайм-аута и повтор доставки используют тот же ID, новое обращение получает новый
email — строкаtest@example.comE-mail контактаОбязательное поле; пробелы по краям удаляются, формат проверяется на сервере; ошибка возвращается до приёма
service — значение спискаmaintenanceУслуга: «Обслуживание оборудования»Принимается только согласованное значение из списка; неизвестное отклоняется
comment — текстНужна консультация по обслуживаниюСодержание запроса в сделкеНеобязательно; в учебной форме предел 2 000 символов, превышение даёт ошибку; текст выводится безопасно
page_path и form_id — строки/services/maintenance/; service-requestСтраница и форма обращенияИзвестная форма и путь без секретных параметров; не сохранять полный адрес с произвольными данными
utm_source / medium / campaign — строкиexample-ads / cpc / service-demoИсточник текущего обращенияНеобязательные метки сохраняются раздельно; отсутствие не заменять вымышленным рекламным каналом
submitted_at — дата и время10.09.2026 11:00, время МинскаВремя исходного обращенияУстанавливает сервер; время доставки хранится отдельно, исходное время при повторе не меняется

Если таблица не помещается на экране, прокрутите её по горизонтали.

Перед запуском менеджер открывает карточку DEMO-DEAL-01 и сверяет её с каждой строкой, включая пустой комментарий и отсутствие меток в отдельных тестах. Если поле обязательное в CRM, но его неоткуда взять в форме, исправляют требования до публикации. Изменения обязательных полей CRM после запуска включают в сопровождение и повторную проверку.

3. Различайте повтор клиента и повтор доставки

Существующий клиент может оставить новый запрос на другую услугу. Это новое обращение, даже если телефон уже есть в базе. Двойное нажатие кнопки или повторная отправка того же события — другой случай. Если объединять всё по номеру телефона, можно потерять новый интерес; если всегда создавать контакт, база быстро наполнится дублями.

В Битрикс24 метод crm.duplicate.findbycomm позволяет найти лиды, контакты и компании с совпадающими телефонами или e-mail. Он помогает найти кандидатов, но не определяет бизнес-правило дальнейшего действия. Совпавший контакт можно связать с новой сделкой; неоднозначные совпадения направить на проверку менеджеру.

Ниже — конкретные правила для учебного маршрута. Здесь обращение определяется по постоянному внешнему ID, а контакт — по согласованным правилам сопоставления. Ключ одной логической отправки назначается до её приёма и сохраняется при двойном клике и повторе после тайм-аута. На сервере этот ключ должен соответствовать одной сохранённой заявке; новый ключ получают только для нового обращения. Иначе два клика создадут разные ID, и защита на этапе CRM уже не распознает повтор. Существующие сведения контакта не перезаписываются автоматически данными новой формы.

Правила повторов: одинаковый контакт не означает одинаковый запрос
СитуацияДействиеЧто должно остаться в CRM
Повтор доставки DEMO-CRM-001 после подтверждённого успехаВернуть сохранённый результат обработки и ID сделки; не создавать её сноваОдна сделка DEMO-DEAL-01 для DEMO-CRM-001
Два одновременных запроса с одним IDОдну обработку выполняет механизм интеграции; второй запрос получает её состояние или результатОдна сделка и одна задача для этого обращения; параллельный тест обязателен
Тот же e-mail, но новый запрос DEMO-CRM-002Найти единственный подходящий контакт и связать с новой сделкой по принятому правилуОдин контакт и две сделки с разными внешними ID; старый запрос не затёрт
По контакту найдены несколько кандидатовСохранить обращение в состоянии «нужна проверка» и назначить разбор; не выбирать случайную записьДо решения менеджера нет новой автоматически связанной сделки; обращение доступно по ID
После отправки ответ оборвался, исход неизвестенСверить внешний ID; найденную сделку связать с обращением. При неоднозначном результате остановить автоматическое созданиеЛибо подтверждённая связь с одной сделкой, либо открытая задача ручного разбора; повтор вслепую не выполняется

Если таблица не помещается на экране, прокрутите её по горизонтали.

Блокировка кнопки в браузере сама по себе не обеспечивает эти правила. Защита должна охватывать сохранение обращения и обработку на сервере, в том числе одновременные попытки. Схема «проверить, затем создать» без защиты от гонки может создать две записи. Если коннектор не позволяет реализовать выбранное правило, это ограничение фиксируют при выборе решения и проверяют на приёмке.

Документация: Битрикс24: поиск совпадающих контактов и лидов по телефону или e-mail;

4. Сохраняйте источник так, чтобы отчёт можно было объяснить

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

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

Учебный пример: источник первого визита и источник обращения
СобытиеПервый известный источникИсточник обращенияРезультат в данных
Первый визит из поиска на /services/; формы нетПоиск, если он определён по доступным даннымОбращение ещё не созданоВ контексте посетителя сохранены первый источник и страница входа
Позднее рекламный визит и отправка DEMO-CRM-001Поискexample-ads / cpc / service-demoВ карточке контакта — первый источник; у DEMO-CRM-001 — рекламные метки и /services/maintenance/
DEMO-CRM-002 в новом визите: нет меток, данных о переходе и доступного контекста источника текущего визитаПоиск, если сохранённые сведения о первом источнике всё ещё доступныНе определёнПоля DEMO-CRM-001 не изменены; DEMO-CRM-002 не приписан прежней рекламе

Если таблица не помещается на экране, прокрутите её по горизонтали.

Для проверки отправьте эти два обращения в описанных условиях и сравните карточки: рекламные метки должны остаться только у первого из них. Второй тест — именно новый визит с неопределённым текущим источником. В том же рекламном визите переход на внутреннюю страницу без UTM не должен стирать уже известный источник. Отсутствие UTM само по себе не доказывает прямой заход. Не помещайте телефон или e-mail в адрес страницы ради передачи в аналитику. Ограничения браузеров и настройки приватности не позволяют определить все источники без исключений.

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

5. Предусмотрите временные сбои и повторную доставку

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

Временные ошибки обрабатывают повтором с увеличивающимися интервалами и ограничением числа попыток. Ошибки доступа или неверных полей требуют исправления причины. У Битрикс24 есть ограничения интенсивности REST-запросов и потребления ресурсов; обработчик должен учитывать актуальные правила конкретного сервиса.

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

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

Какое действие назначить для каждого результата передачи
СобытиеСостояние и действиеКак проверить завершение
CRM отклонила запрос из-за временного ограничения; создания записи не произошло«Ожидает»: повторить по расписанию с учётом указаний API и лимитовЕсть следующая запланированная попытка, затем сохранён успешный результат и ID карточки; лишних карточек нет
Сервис недоступен до отправки запроса«Ожидает»: повторить с увеличением интервала, не удаляя исходное обращениеПосле восстановления связи тот же ID переходит в «передано»; исходное время и поля не меняются
CRM явно отклонила доступ или значение обязательного поля«Нужна проверка»: уведомить владельца интеграции, остановить бесполезные повторы до исправленияПричина записана без секрета; после исправления выполнена контролируемая передача того же обращения
Ответ оборвался после отправки, результат неизвестен«Нужна проверка»: искать созданную запись по внешнему ID; при неоднозначности — ручной разборНайдена и привязана ровно одна сделка либо подтверждено отсутствие записи и разрешено новое создание
Лимит автоматических попыток исчерпан«Нужна проверка»: обращение остаётся в хранилище, ответственный получает задачуЗапись видна в списке проблем с причиной и ответственным; её нельзя молча считать доставленной
CRM подтвердила создание сделки«Передано»: сохранить ID сделки и время подтверждения; отдельно проконтролировать задачу менеджеруСделка находится по внешнему ID, назначение и задача доступны согласованному пользователю

Если таблица не помещается на экране, прокрутите её по горизонтали.

Пример настройки для испытания: после первой безопасно повторяемой ошибки сделать ещё три попытки через 1, 5 и 15 минут; после последней неудачи передать человеку. Это четыре попытки всего, а не обещание скорости доставки. В рабочем проекте интервалы, число попыток, уведомления и предельный возраст очереди согласуют с процессом продаж и правилами API.

Документация: Битрикс24: ограничения REST API; Stripe: повторы событий, асинхронная обработка и проверка вебхуков;

6. Защитите доступ и сделайте ошибки наблюдаемыми

Секрет вебхука или токен хранится на сервере, а не в коде страницы. Входящий вебхук Битрикс24 действует в пределах выбранных разрешений и прав создавшего его сотрудника. Выдавайте только нужные полномочия; заранее определите владельца интеграции и процедуру замены секрета. Входящие события от внешней системы проверяйте способом, предусмотренным её документацией.

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

Учебная строка журнала: «10.09.2026 11:05, время Минска; request_id=DEMO-CRM-001; попытка=2; результат=передано; crm_id=DEMO-DEAL-01». Если возникла ошибка доступа, вместо ID сделки фиксируют безопасный код причины и состояние «нужна проверка». Контактные данные и секрет в эту запись не входят.

Учебная сверка за выбранный период: принято 10 обращений, семь подтверждённо переданы, два ожидают доставки, одно требует разбора. Сумма состояний равна десяти, но работа не завершена: три обращения ещё не переданы. Ответственный открывает их ID и возраст, проверяет причины, а после доставки повторяет сверку. Равенство счётчиков полезно, однако не заменяет сопоставление каждого ID с конкретной записью CRM.

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

Документация: Битрикс24: входящие и исходящие вебхуки, права и защита секрета; OWASP: безопасное журналирование ошибок и событий;

7. Условный пример: повторное обращение после сбоя CRM

Продолжим учебный пример поставщика оборудования. Клиент с контактом DEMO-CONTACT-01 оставляет запрос на обслуживание DEMO-CRM-001, хотя раньше покупал технику. Сайт сохраняет обращение с отдельным ID, услугой и рекламными метками. Соединение с CRM не устанавливается до отправки запроса, поэтому обращение остаётся в очереди, а новая сделка ещё не создана.

При следующей попытке связь восстановлена. Интеграция находит единственный подходящий контакт, создаёт DEMO-DEAL-01 в воронке «Сервис» и сохраняет её ID. После подтверждения передачи создаётся задача менеджеру. Повтор обработки DEMO-CRM-001 возвращает уже известный результат: второй сделки и второй задачи нет. Если бы ответ оборвался после создания, сначала потребовалась бы сверка внешнего ID по правилам раздела об ошибках.

Позднее тот же клиент отправляет новый запрос DEMO-CRM-002 в новом визите, источник которого не удалось определить: нет меток, сведений о переходе и сохранённого источника текущего визита. По принятому бизнес-правилу это отдельная сделка DEMO-DEAL-02, связанная с прежним контактом. Итог проверки: один контакт, два новых обращения, две соответствующие сделки; рекламные метки первого запроса сохранены, второй запрос не приписан прежней рекламе. Сценарий иллюстрирует проектирование и приёмку, а не подтверждённый кейс ActiveLab.

8. Примите интеграцию вместе с будущими пользователями

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

Ошибки и обрывы воспроизводят на изолированном контуре или через управляемую имитацию API, без отключения рабочей CRM. Тестовые контакты используют адреса example.com; реальные клиентские сообщения отключены, записи исключены из отчётов продаж. Колонку «Факт / доказательство» заполняют после выполнения: пример не выдаёт непроведённые тесты за успешные.

Карта приёмки: действие, ожидаемый результат и доказательство
Проверка и действиеОжидаемый результатФакт / доказательство
T01. Отправить корректную заявку на обслуживаниеОдна запись на сайте, одна сделка в «Сервис / Новый запрос», назначенная роль и одна задача; поля совпадаютЗаписать ID обращения, сделки и задачи; менеджер подтверждает доступ
T02. Отправить форму без e-mail и затем с некорректным форматомПонятная ошибка до подтверждения приёма; принятой заявки и сделки нетПриложить снимок ошибки и результат поиска записей для каждой попытки
T03. Воспроизвести двойную отправку самой формы, повтор после тайм-аута и после успеха для того же обращенияВсе попытки сохраняют один request_id; на сайте одна заявка, в CRM одна сделка и одна задача; возвращается состояние либо сохранённый результатЗафиксировать ID в параллельных попытках и повторах; сверить число записей на сайте, сделок и задач
T04. От существующего тестового контакта отправить новый запрос с новым IDНовая сделка связана с прежним контактом; старое обращение и его поля сохраненыЗаписать один ID контакта и два разных ID обращений/сделок
T05. Подготовить два подходящих контакта для одного нового обращенияАвтоматическое связывание не выполнено; есть состояние «нужна проверка» и назначенный разборПроверить очередь, задачу разбора и отсутствие случайно связанной сделки
T06. Отправить заявку после рекламного входа и перехода на внутреннюю страницу без UTM; затем новый запрос в новом визите без меток, данных о переходе и доступного контекста текущего источникаПервый запрос сохраняет рекламный источник визита, несмотря на отсутствие меток на странице формы; текущий источник второго не определён и не унаследован из прежней кампанииСравнить источники обоих обращений и первый известный источник контакта; зафиксировать условия двух визитов
T07. Имитировать недоступность до отправки, затем восстановить связьЗаявка сохраняется; безопасный повтор передаёт тот же ID; исходное время не меняетсяЗаписать переходы «ожидает → передано» и одну соответствующую сделку
T08. Дать CRM создать запись и имитировать потерю ответаСистема не создаёт новую сделку вслепую; сверяет внешний ID или назначает ручной разборПриложить найденный ID сделки и решение сверки; проверить отсутствие второй сделки
T09. Имитировать явную ошибку лимита, затем успешный ответПовтор соблюдает выбранные правила API; исходная заявка не потерянаЗаписать время попыток, безопасную причину ошибки и итоговый ID карточки
T10. Имитировать неверный доступ или обязательное поле CRMЕсть «нужна проверка», причина и уведомление; бесполезные автоматические повторы остановленыПосле исправления записать контролируемую передачу, ID карточки и отсутствие секрета в журнале
T11. Сделать основного тестового менеджера недоступным для назначенияСрабатывает согласованное запасное назначение; заявка не остаётся без владельцаПроверить карточку и задачу под резервной ролью, записать подтверждение доступа
T12. Имитировать неудачи до исчерпания настроенных попытокОбращение сохранено, находится в «нужна проверка», ответственный уведомлёнЗаписать число попыток, ID задачи разбора и наличие обращения в итоговой сверке

Если таблица не помещается на экране, прокрутите её по горизонтали.

По каждой строке ставят «пройдено», «не пройдено» или «не применимо» с объяснением. Учебный пример записи: «T08 — не пройдено: после потери ответа создана вторая сделка; приложены два ID; исправление назначено разработчику, повторная проверка обязательна». Нельзя закрывать приёмку только потому, что обычная заявка прошла T01. Критерии допуска к запуску заранее согласуют; потеря обращения, дубли одного события и отсутствие доступа менеджера требуют исправления затронутого сценария.

Сложность и стоимость зависят от числа форм, систем, направлений обмена, правил распределения, качества данных и требований к восстановлению. Эта карта помогает определить объём работ до оценки. Поддержку после запуска, владельца очереди и порядок повторной проверки после изменения CRM также согласуют отдельно.

Частые вопросы

Всегда ли нужна заказная интеграция?

Нет. Для стандартной формы может подойти штатная CRM-форма или готовый коннектор. Сначала проверьте поля, маршрутизацию, дубли и обработку сбоев. Собственная разработка оправдана, когда согласованные требования не покрываются готовым решением.

Можно ли отправлять заявки напрямую из браузера в вебхук?

Секретный входящий вебхук нельзя публиковать в клиентском коде. Для собственной формы используйте серверный обработчик. Встраиваемые формы CRM работают по предусмотренной поставщиком схеме и отличаются от размещения секретного URL на странице.

Нужно ли сохранять каждую заявку ещё и в письме?

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

Как проверить, что обращения не зависли в передаче?

Сопоставьте принятые обращения с успешными передачами по их идентификаторам и посмотрите возраст записей в очереди. Например, при десяти принятых и семи подтверждённых передачах найдите три оставшихся ID и их состояния. Порог задержки задают по процессу продаж. Расхождения разбирают отдельно от ручных изменений и удалений в CRM.

Источники и документация

Материал подготовлен для владельцев бизнеса на основе официальной документации. Примеры и планы работ в тексте — учебные: состав решений зависит от конкретного сайта.

  1. Битрикс24: входящие и исходящие вебхуки, права и защита секрета
  2. Битрикс24: поиск совпадающих контактов и лидов по телефону или e-mail
  3. Битрикс24: ограничения REST API
  4. Stripe: повторы событий, асинхронная обработка и проверка вебхуков
  5. OWASP: безопасное журналирование ошибок и событий

Что почитать дальше

Нужен план работ для вашего сайта?

Обсудим задачу, проверим текущую ситуацию и определим приоритеты: разработка, SEO, поддержка или интеграции.

Обсудить задачу