Интеграции и развитие

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

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

Редакция polegaeff.ru3 мин чтения
Рабочая панель с заявками сайта и журналом обновлений CRM
Редакционная иллюстрация к материалу.

Сначала нарисуйте маршрут данных

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

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

Пример устойчивой передачи заявки
  1. Форма сайта
  2. Сохранение заявки
  3. Обработка обмена
  4. Запись в CRM

Согласуйте поля и идентификаторы

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

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

Минимальная карта обмена
ДанныеИсточникПроверка
Идентификатор заявкиСайтНе меняется при повторе
КонтактПосетительФормат и обязательность
Статус сделкиCRMДопустимые переходы
Время событияОтправительЕдиный формат и часовой пояс
Ошибка доставкиОбработчикДоступна ответственному

Повторы и нарушение порядка событий

Сетевой тайм-аут не доказывает, что CRM не создала запись. Если сайт повторяет запрос, обработчик должен распознать уже выполненную операцию. Такой подход называют идемпотентной обработкой: повтор не приводит к повторному бизнес-действию.

Внешние сервисы могут присылать уведомления повторно или не в ожидаемом порядке. Например, документация Stripe прямо описывает эти ситуации для webhooks. Это пример поведения конкретного сервиса, а не обещание всех API: правила вашей CRM нужно проверить отдельно.

Для статусов полезно хранить версию или время изменения и определять допустимые переходы. Иначе поздно пришедшее старое событие может вернуть заказ в предыдущий этап.

Что проверить при приёмке

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

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

Сценарии приёмки интеграции
СитуацияОжидаемое поведение
Обычная заявкаОдна запись с правильными полями
Повторная доставкаНет повторной сделки
CRM недоступнаПонятное состояние и согласованный повтор
Неверное полеОшибка видна ответственному
Старое событиеАктуальный статус не теряется

Что подготовить для оценки интеграции

Нужны название и версия системы, документация API, тестовая среда, примеры данных и контакт специалиста на стороне CRM. Отдельно перечислите объём обмена, требования к задержке и существующие ограничения доступа.

Согласуйте поддержку после запуска: кто отслеживает изменения API, обновляет доступы и разбирает очередь ошибок. В результате интеграция должна стать наблюдаемым процессом, а не невидимой связью, о поломке которой узнают от клиента.

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