Заявки с сайта приходят на почту, из бота — в рабочий чат, а менеджер переносит их в CRM руками и что-то теряет по дороге. Разбираем, как устроена интеграция с amoCRM и Битрикс24 для сайта, Telegram-бота и Mini App: какие данные передавать, как не плодить дубли, как получать статусы обратно и что делать, когда CRM не отвечает.
Что даёт связка сайта и бота с CRM
Без интеграции у каждого канала своя жизнь: форма на сайте шлёт письмо, бот пишет в чат, Mini App складывает заказы в свою базу. Менеджер собирает всё это в CRM вручную, а значит, часть обращений попадает туда с опозданием, часть — без источника, а часть не попадает вовсе.
Интеграция решает две задачи. Первая — прямой поток: каждая заявка сразу появляется в CRM как сделка или лид с контактом, источником и комментарием. Вторая — обратный поток: когда менеджер двигает сделку по воронке, клиент получает уведомление в боте, а в личном кабинете меняется статус. Про вторую часть часто забывают, хотя именно она избавляет от звонков «ну что там с моим заказом».
Если заявки у вас пока вообще не собираются в одно место, начните со статьи про бота для заявок, а про общую воронку из сайта и бота — с материала «Сайт и Telegram-бот в одной системе». Здесь — именно о стыке с CRM.
Какие данные передавать в CRM
Правило простое: передавать всё, что пригодится менеджеру и маркетологу, но не превращать карточку сделки в свалку. Мы обычно согласуем список полей до начала работ — по таблице вроде этой.
| Данные | Откуда берутся | Зачем нужны |
|---|---|---|
| Имя, телефон, email | Форма, бот, Mini App | Найти или создать контакт |
| Telegram ID или username | Бот, Mini App | Писать клиенту в бот и склеивать дубли |
| Источник и UTM-метки | Параметры ссылки, cookie, параметр запуска бота | Понять, какая реклама приводит клиентов |
| Комментарий, ответы квиза | Поля формы, шаги диалога в боте | Менеджер видит запрос без лишнего звонка |
| Товары, услуга, сумма | Корзина, калькулятор | Бюджет и состав сделки |
| Этап и ответственный | Правила распределения | Сделка сразу попадает к нужному человеку |
С UTM-метками есть тонкость. На сайте их сохраняют при первом заходе и передают вместе с формой, даже если человек оставил заявку через три страницы. В Telegram метки в привычном виде не доходят, поэтому источник кодируют в параметре запуска бота: ссылка из рекламы открывает бота с меткой вроде «vk_autumn», и бот записывает её в поле источника.
Дополнительные поля — нормальная практика. Например, для автосервиса это марка и год машины, для клиники — направление и желаемый врач. Их заводят в CRM заранее, а интеграция заполняет их по внутренним идентификаторам полей, а не по названиям: название кто-нибудь переименует, и передача молча сломается.
Дубли контактов: как не создать второго Ивана Петрова
Самая частая жалоба после запуска — дубли. Человек оставил заявку на сайте, через неделю написал в бот, и в CRM появилось два контакта с разной историей. Чтобы этого не было, перед созданием контакта интеграция ищет существующий.
- Нормализуем телефон. «8 (999) 123-45-67», «+7 999 1234567» и «79991234567» — один и тот же номер. Перед поиском приводим его к единому формату.
- Ищем по телефону, затем по email. Если контакт нашёлся, привязываем новую сделку к нему.
- Учитываем Telegram ID. Для заявок из бота это самый надёжный ключ: телефон человек может не оставить, а ID есть всегда. Храним его в отдельном поле контакта.
- Не перезаписываем данные молча. Если имя в заявке отличается от имени в CRM, лучше добавить примечание, чем затереть то, что вносил менеджер.
Отдельный вопрос — что делать, если у контакта уже есть открытая сделка. Вариантов два: создать новую или добавить заявку примечанием к текущей. Интернет-магазину обычно нужна новая сделка на каждый заказ, а студии ремонта повторное обращение по тому же объекту логичнее приложить к существующей. Это бизнес-правило, и решает его заказчик, а не программист.
Лид или сделка: куда попадает заявка в amoCRM и Битрикс24
У двух популярных CRM разная логика, и от неё зависит, что именно создаёт интеграция.
В amoCRM центральная сущность — сделка, к которой привязан контакт и при необходимости компания. Новые обращения обычно отправляют в первый этап воронки или в раздел неразобранных заявок, где менеджер решает, брать ли их в работу.
В Битрикс24 есть лиды и сделки. Лид — «сырое» обращение, которое потом превращают в сделку с контактом. Часть компаний работает без лидов и сразу создаёт сделки — это настраивается в самом портале. Типичная интеграция сайта с Битрикс24 — форма, которая создаёт лид или сделку с источником и UTM, плюс правило назначения ответственного. Важно, чтобы режим портала и логика интеграции совпадали, иначе заявки окажутся не там, где их ждут менеджеры.
Если вы ещё выбираете CRM, смотрите на число воронок и сложность квалификации заявок. Для разработки разница не принципиальная: обе системы дают API и вебхуки, и сайт, бот или Mini App подключаются к любой из них.
Обратная связь: статусы из CRM в бот и личный кабинет
CRM умеет отправлять вебхуки — HTTP-запросы на ваш сервер, когда в ней что-то произошло: сделка перешла на другой этап, сменился ответственный, заполнилось поле. Сервер принимает такой запрос и решает, что делать дальше. Сценарии, которые мы настраиваем чаще всего:
- сделка перешла в этап «Подтверждена» — клиент получает в боте сообщение с датой и адресом;
- заказ передан в доставку — бот присылает номер отправления;
- назначен менеджер — клиенту приходит имя специалиста и кнопка для связи;
- сделка успешно закрыта — через пару дней бот просит оценить работу;
- в личном кабинете меняется статус заявки и пополняется история.
Как устроен такой кабинет, подробно описано в статье «Mini App как личный кабинет клиента».
Здесь два технических момента. Входящие вебхуки нужно проверять: убедиться, что запрос пришёл от вашей CRM, а не от того, кто случайно узнал адрес. Способ проверки зависит от CRM — секретный ключ, подпись или данные аккаунта в запросе. И нужно быть готовым к повторам: одно событие может прийти дважды, а клиент не должен получить два одинаковых сообщения. Для этого сервер запоминает, какие события уже обработал.
Ошибки, повторы и логи
CRM — внешний сервис. Она может не ответить, вернуть ошибку из-за лимита запросов или отклонить запрос с просроченным токеном. Если сайт отправляет заявку напрямую и при ошибке всё равно показывает «спасибо», обращение пропадает без следа. Поэтому мы строим интеграцию по-другому:
- Заявка сначала сохраняется в нашей базе — так она точно не потеряется.
- Отправка в CRM идёт в фоне через очередь, пользователь не ждёт ответа CRM.
- При ошибке — повтор с нарастающей паузой: через минуту, через пять, через полчаса.
- Если попытки исчерпаны, заявка уходит в рабочий чат менеджеров с пометкой, что в CRM она не попала.
- Каждая попытка пишется в лог: что отправили, что ответила CRM, сколько это заняло.
Логи нужны не для галочки. Когда менеджер говорит «заявка от Марины не пришла», по ним за пару минут видно, где она: не дошла до сервера, застряла в очереди или CRM отклонила её из-за обязательного поля, которое вчера добавили в воронку. Без логов такой разбор превращается в гадание.
Ещё одна частая причина сбоев — токены доступа. У них есть срок жизни, и интеграция должна обновлять их сама, а не ждать, пока кто-то заметит, что заявки перестали приходить. Следить за такими вещами — часть технической поддержки проекта.
Что подготовить перед интеграцией
Чтобы работа заняла дни, а не недели, до старта стоит собрать:
- доступ администратора к CRM или возможность создать в ней интеграцию;
- схему воронки: этапы, ответственные, обязательные поля;
- список форм, ботов и других источников, которые нужно подключить;
- правила для дублей и повторных обращений;
- тексты уведомлений, которые клиент получит при смене статуса;
- тестовую воронку, чтобы не засорять рабочие данные во время отладки.
Простая связка «форма → сделка с контактом и UTM» делается быстро и часто входит в разработку сайта или бота. Двусторонний обмен со статусами, дополнительными полями и несколькими воронками — уже отдельная задача, и её объём лучше оценить по брифу. Предварительная оценка у нас бесплатная.
Частые вопросы
Сколько стоит интеграция с amoCRM или Битрикс24?
Зависит от числа источников, полей и того, нужен ли обратный поток статусов. Базовая передача заявок часто входит в проект сайта или бота, сложные сценарии оцениваем отдельно.
Можно ли подключить CRM к уже работающему сайту?
Да. Обычно это доработка серверной части форм и бота, дизайн и страницы не меняются. Сначала смотрим, как заявки уходят сейчас и что можно переиспользовать.
Что будет с заявками, если CRM недоступна?
Они сохраняются в базе на стороне сайта или бота и отправляются повторно, когда CRM снова отвечает. Если сбой затянулся, менеджеры получают заявки в рабочий чат.
Нужен ли определённый тариф CRM для интеграции?
Доступ к API и вебхукам зависит от тарифа и условий конкретной CRM. Это проверяем на старте, чтобы не упереться в ограничения после разработки.
Можно ли передавать в CRM заявки из MAX, а не только из Telegram?
Да. Бот в MAX передаёт данные на сервер так же, как Telegram-бот, а связка сервера с CRM общая для всех каналов.
Обсудим проект
Нужна похожая разработка?
Расскажите о задаче — уточним детали, предложим формат запуска и подготовим предварительную оценку. Это бесплатно.
Источники
Опубликовано · Обновлено