Разработка · 7 мин чтения

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

Интеграция CRM и сайта - это не разовая настройка вебхука для передачи заявки, а постоянный обмен данными: клиент меняет телефон в личном кабинете, менеджер двигает сделку по воронке в amoCRM, кассир пробивает возврат в Т‑Банк - и всё это должно попадать в одну систему без ручного переноса. За несколько лет работы с Tilda, WordPress и кастомными веб-сервисами я собирал такие связки десятки раз, и почти каждый раз камень преткновения не в API, а в вопросе - какие данные тащить в CRM, а что оставить только на сайте.

Какие данные передавать между сайтом и CRM

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

  • Контактные данные клиента - имя, телефон, email, источник обращения (utm-метки передаю отдельными полями, а не склеиваю в одну строку)
  • Данные заказа или заявки - состав, сумма, статус оплаты, комментарий клиента
  • Статус сделки - синхронизируется в обе стороны: сайт отдаёт «новый заказ», CRM возвращает «оплачен», «в доставке», «отменён»
  • История взаимодействий - звонки, письма, сообщения из чат-бота, если он подключён к той же воронке

Всё остальное (аналитика поведения на сайте, история просмотров товаров) обычно живёт в счётчиках вроде Яндекс.Метрики и в CRM не нужно - это лишняя нагрузка на API и лишний повод для рассинхрона. И отдельный момент по 152-ФЗ: если синхронизируете контакты клиентов, база должна лежать на сервере в России - я для клиентов разворачиваю такие интеграции либо на сервере CRM-провайдера с российской юрисдикцией, либо на своём VPS в РФ, зарубежные облачные таблицы для хранения телефонов и email использовать нельзя.

Способы синхронизации: вебхуки, API-опрос и готовые модули

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

Способ Скорость Сложность поддержки Когда использую
Вебхуки Секунды Средняя - нужна обработка повторов и ошибок Заказы, оплаты, смена статуса сделки
API-опрос по расписанию От минуты до часа Низкая, но растёт нагрузка на API CRM Синхронизация каталога, остатков, справочников
Готовый модуль/плагин Секунды-минуты Низкая, но ограничены возможности кастомизации Стандартные связки WooCommerce + amoCRM без нестандартной логики

Вебхуки - основной инструмент для всего, что требует мгновенной реакции: клиент оплатил заказ через Т‑Банк - вебхук ушёл в CRM и на почту менеджеру одновременно. API-опрос оставляю для медленно меняющихся данных, где задержка в 15-30 минут не критична - остатки на складе, обновление цен. Готовые модули для WooCommerce и Tilda закрывают базовый сценарий «форма → сделка в CRM», но как только нужна нестандартная логика (например, разная воронка для розницы и опта), проще написать свой обработчик, чем городить костыли поверх чужого плагина.

Бесплатный материал

🎁 Полезный скрипт в подарок

Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.

Без спама. Отписка в 1 клик.

Интеграция Tilda и WordPress с amoCRM и Bitrix24

На Tilda штатной интеграции с CRM хватает для простых случаев - передать заявку из формы в воронку. Но как только нужно поднять статус сделки на сайт (например, показать клиенту «Ваш заказ в обработке» в личном кабинете) или синхронизировать возвраты, штатных настроек не хватает, и я пишу кастомный скрипт, принимающий вебхук от Tilda и переупаковывающий поля под формат amoCRM или Bitrix24.

Простой пример - обработчик, который получает данные заявки и приводит их к виду, который ждёт CRM:

// Function node в n8n: нормализация вебхука с Tilda перед отправкой в amoCRM
const payload = items[0].json;

return [{
 json: {
 name: payload.name || 'Без имени',
 phone: payload.phone.replace(/D/g, ''),
 source: payload.formname || 'tilda_form',
 utm_source: payload.utm_source || 'direct',
 order_sum: Number(payload.payment?.amount) || 0,
 }
}];

В WordPress с WooCommerce ситуация проще - есть хуки woocommerce_order_status_changed и woocommerce_new_order, на которые можно повесить свой обработчик и без плагинов отправить заказ в нужную CRM. Для Bitrix24 я обычно использую входящий вебхук (REST-метод crm.lead.add или crm.deal.add), для amoCRM - их API v4 с OAuth-токеном, который придётся периодически обновлять по refresh-токену - это тот момент, где чужие интеграции чаще всего ломаются через полгода, когда токен протухает, а автообновление не настроено.

Синхронизация оплат и доставки: Т‑Банк и СДЭК

Оплата и доставка - два блока, где рассинхрон дороже всего обходится бизнесу: клиент оплатил, а в CRM заказ висит «ожидает оплаты», менеджер звонит и портит впечатление. С Т‑Банк (бывший Тинькофф Эквайринг) синхронизация строится на вебхуке Notification URL, который присылает статус платежа сразу после списания - я всегда добавляю проверку подписи запроса (поле Token) на сервере, иначе в обработчик может прийти что угодно, а не только легитимное уведомление от банка.

Со СДЭК схема на уровне логики похожа: сайт передаёт заказ в СДЭК через их API для расчёта доставки и создания заказа, а трек-номер и статус («принят на склад», «в пути», «доставлен») СДЭК возвращает вебхуком, который нужно записать обратно и в заказ на сайте, и в сделку CRM. На практике самая частая доработка - это как раз связка «эквайринг + CRM + СДЭК» в одном скрипте для Tilda, потому что три вебхука от трёх разных сервисов должны обновлять один и тот же заказ без конфликтов - если у вас похожая задача, у меня есть услуга по комплексной интеграции CRM, эквайринга и доставки на Tilda под такие сценарии.

Двусторонняя синхронизация: статусы, дубли и уведомления

Односторонняя выгрузка «сайт → CRM» решает половину задачи. Вторая половина - обратная связь: менеджер меняет статус в CRM, а клиент должен увидеть это на сайте или получить уведомление в мессенджере. Здесь я обычно ставлю вебхук на смену статуса сделки в CRM (в Bitrix24 это событие ONCRMDEALUPDATE, в amoCRM - вебхук на изменение статуса) и обрабатываю его отдельным скриптом, который обновляет заказ на сайте и одновременно триггерит уведомление через aiogram-бота в Telegram - клиент получает сообщение «Ваш заказ передан в доставку» без участия менеджера.

Отдельная головная боль - дубли. Если клиент оформил заявку дважды (например, случайно кликнул кнопку «Отправить» повторно), без дедупликации по телефону или email в CRM появляются две сделки, и менеджер тратит время на разбор. Решение простое - перед созданием сделки делать поиск по CRM API на совпадение контакта и, если находится, обновлять существующую сделку вместо создания новой. Для таких сквозных сценариев (сайт + CRM + мессенджер + уведомления) я обычно собираю оркестрацию в n8n - она даёт визуальный контроль над цепочкой вебхуков и не требует переписывать логику при каждом изменении воронки.

Частые ошибки при синхронизации CRM и сайта

  • Нет обработки повторных вебхуков - CRM или платёжный сервис могут прислать одно уведомление дважды, и без проверки на идемпотентность заказ задваивается
  • Токены API истекают без автообновления - интеграция с amoCRM работает месяц-два, потом тихо перестаёт передавать заявки
  • Синхронизация без логирования - когда что-то не долетело до CRM, разбираться приходится вслепую, поэтому я всегда пишу входящие и исходящие вебхуки в отдельную таблицу или лог-файл
  • Отсутствие таймаутов и ретраев - если CRM ответила с задержкой в 30 секунд, а скрипт ждёт синхронно, сайт может зависнуть для пользователя на форме заказа
  • Хранение контактов клиентов в зарубежных облачных таблицах ради «быстрой синхронизации» - нарушение 152-ФЗ, база должна быть на сервере в РФ

Большую часть этих проблем я закрываю очередью (например, через тот же n8n или отдельный воркер) - вебхук сразу принимается и подтверждается источнику, а обработка данных с ретраями идёт асинхронно, без риска потерять заказ из-за временной недоступности CRM.

Связка сервисов без программистов

Автоматизация / n8n

от 25 000 ₽

Подробнее →

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

Сколько стоит интеграция CRM и сайта

Простая доработка на Tilda (передача заявки с нужными полями в CRM) стоит от 3 000 ₽. Комплексная интеграция с CRM, эквайрингом и СДЭК - от 40 000 ₽. Автоматизация синхронизации через n8n с несколькими сервисами - от 25 000 ₽, конкретная сумма зависит от числа систем и логики обработки статусов.

Какую CRM проще интегрировать с сайтом на Tilda

amoCRM и Bitrix24 обе дают REST API и вебхуки, разница в основном в документации и стабильности токенов - у Bitrix24 входящие вебхуки проще настроить без OAuth, у amoCRM гибче настройка воронок и полей сделки. Выбор чаще определяется тем, какая CRM уже используется у отдела продаж, а не техническими ограничениями.

Можно ли синхронизировать CRM с сайтом без программиста

Базовую связку «форма → сделка в CRM» закрывают штатные интеграции Tilda и готовые плагины для WooCommerce. Но как только нужна обратная синхронизация статусов, обработка оплаты через Т‑Банк или трекинг СДЭК, штатных настроек не хватает и требуется кастомный скрипт или сценарий в n8n.

Как часто нужно проверять работу интеграции после запуска

Я рекомендую клиентам смотреть логи минимум раз в неделю первый месяц после запуска - именно тогда всплывают краевые случаи вроде дублей или необработанных статусов. Дальше для интеграций с несколькими внешними сервисами (эквайринг, доставка, CRM) имеет смысл техподдержка от 15 000 ₽/мес, чтобы кто-то отслеживал протухание токенов и изменения в API сервисов.

Есть задача?

Обсудим в мессенджере

Расскажите, что нужно сделать — отвечу в течение 4 часов в рабочее время. Первая консультация бесплатно.

Самозанятый Калинкин Н. А. · работаю с физлицами и юрлицами

Продолжая пользование настоящим сайтом Вы выражаете своё согласие на обработку Ваших персональных данных (файлов куки) с использованием Yandex.Metrika.
Понятно