Интеграция 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 сервисов.