Главная · Блог · Лиды из чат-бота в CRM: воронка ЧБТ или webhook в amoCRM и Битрикс24
Лиды из чат-бота в CRM: воронка ЧБТ или webhook в amoCRM и Битрикс24
В ЧБТ у заявки из бота два маршрута до менеджера. Первый — действие «Сделка в CRM» в сценарии: карточка появляется во встроенном канбане сразу после того, как клиент назвал телефон, без единой настройки снаружи. Второй — действие «HTTP-запрос»: бот отправляет POST с JSON (переменные сценария, теги строкой, тип канала) на ваш URL, а Make, n8n, Albato или собственный скрипт заводят сделку в amoCRM или другой CRM. Для Битрикс24 есть и готовое подключение в разделе «Интеграции и API» — событие диалога создаёт лид. Ниже — как настроить каждый маршрут, какой именно JSON уходит наружу и почему ЧБТ ждёт ответа 15 секунд, что умеет и чего не умеет встроенный канбан, и как разметить заявку тегами, чтобы она не потерялась при любом маршруте.
Три способа завести сделку без участия менеджера
Сделка в ЧБТ появляется тремя путями, и только первый требует рук.
1. Вручную. Кнопка «Сделка» в разделе «CRM»: название, сумма, стадия, ответственный, контакт из списка. Нужна для заявок, пришедших мимо бота — по телефону или с почты.
2. Из виджета на сайте. В чате на сайте есть кнопка «Оставить контакты». Когда посетитель заполняет имя, e-mail или телефон, ЧБТ создаёт контакт, ставит ему служебный тег, заводит сделку «Лид с сайта — Имя» в стадии «Новый» и отправляет письмо владельцу. Повторное нажатие той же кнопки тем же посетителем вторую сделку не создаёт — дедупликация по тегу уже встроена.
3. Из сценария. В блоке «Действие» есть действие «Сделка в CRM» с тремя параметрами: название (с переменными — например, Заявка: {{service}} — {{name}}), сумма и стартовая стадия. Ставьте его сразу после блока «Сбор данных», где спрашиваете телефон: раньше — получите сделки без контактов, позже — потеряете тех, кто ушёл на благодарности. Рабочая схема для сценария заявки:
- «Сообщение» с кнопками выбора услуги.
- «Действие» → «Записать переменную»
service= выбранная услуга (по одному действию на каждую ветку кнопки). - «Сбор данных» → Имя.
- «Сбор данных» → Телефон с проверкой формата, «В переменную»
lead_phone. - «Действие» с тремя действиями подряд: «Добавить тег»
заявка, «Сделка в CRM» с названием{{service}} — {{name}}, «Уведомить оператора». - «Сообщение» с подтверждением и блок «Оператор», чтобы диалог ушёл в инбокс.
Готовый пример действия «Сделка в CRM» есть в шаблоне «Бот покупателя» — там сделка создаётся при первом сканировании QR. Откройте шаблон в «Сценариях» и посмотрите настройки блока «Захват в CRM». Если собираете сценарий с нуля, быстрее попросить ИИ-правку: «после сбора телефона добавь создание сделки в CRM с названием из переменной service».
Один нюанс: каждое прохождение сценария создаёт новую сделку. Если человек пройдёт заявку дважды, будет две карточки. Хотите одну — поставьте перед действием блок «Условие»: тег заявка «не задано» → создать сделку, иначе — пропустить.
Встроенная CRM ЧБТ: что внутри канбана
Раздел «CRM» в кабинете — доска из четырёх колонок. Карточка сделки содержит название, сумму в рублях, стадию, ответственного и ссылку на контакт. Ответственным можно назначить любого участника команды из раздела «Доступ» — владельца, админа или оператора. Карточки перетаскиваются между колонками мышью, над доской считается «Сумма воронки» по всем открытым сделкам.
Из карточки сделки один клик до контакта: там имя, телефон, e-mail, канал, теги, свои поля и последние сообщения диалога. Менеджеру не нужно искать переписку в «Диалогах» — контекст рядом.
Чего в этом канбане нет, и лучше знать заранее:
- Стадии не редактируются — только четыре штатных. Если ваш процесс длиннее («квалифицирован», «КП отправлено», «договор»), промежуточные шаги придётся отмечать тегами контакта.
- Нет задач и напоминаний «перезвонить в четверг». Дисциплина — в голове менеджера или во внешнем календаре.
- Нет автоматического перехода стадий по событиям — например, «Оплачено» после того, как клиент написал «оплатил». Стадию двигает человек.
- Нет отчётов по конверсии стадий. Есть только счётчик и сумма по колонкам плюс общая аналитика бота в «Аналитике».
Для небольшого бизнеса этого хватает: цель канбана — чтобы каждая заявка была карточкой с фамилией ответственного, а не строчкой в чате.
Внешняя CRM: что именно уходит по «HTTP-запросу»
Действие «HTTP-запрос» в блоке «Действие» — единственный мост из сценария наружу. Настроек три: URL, метод (по умолчанию POST; доступны GET, PUT, PATCH, DELETE) и необязательное поле «в переменную», куда сохранится текст ответа сервера. Тело запроса ЧБТ формирует сам, заголовок Content-Type: application/json. Структура тела:
{
"contact": { "id": 4821, "tags": "[\"заявка\",\"src-vk\"]" },
"vars": { "service": "Маникюр", "lead_phone": "+7 912 000-00-00", "name_var": "Анна" },
"text": "+7 912 000-00-00",
"channelType": "telegram"
}Что здесь важно понять.
- Уходят переменные, а не поля карточки. Имя, телефон и e-mail, которые блок «Сбор данных» записал в контакт, в запрос сами не попадут. Заполните в этих блоках поле «В переменную» — и данные окажутся в
vars. Подробности — в справке по переменным. - Теги приходят строкой JSON, а не массивом. На приёмной стороне её нужно распарсить — в Make это один шаг «Parse JSON».
text— последнее сообщение клиента на момент действия, обычно это только что введённый телефон. Не стройте на нём логику.channelType—telegram,max,vkилиweb. Это готовый источник для поля «Канал» в CRM.
Ограничения, о которых честно: ЧБТ ждёт ответа 15 секунд, повторных попыток при ошибке не делает, запрос не подписывает. Если ваш приёмник не ответил — заявка во внешнюю CRM не попала, но сценарий для клиента продолжится как ни в чём не бывало. Поэтому приёмник должен отвечать 200 сразу и обрабатывать данные потом, а критичные заявки страхуйте тегом и письмом владельцу. Формат входящих и исходящих запросов описан в справке по webhooks.
Маршрут через Make, n8n или Albato по шагам
Коннектор нужен, чтобы превратить универсальный JSON от ЧБТ в вызов API конкретной CRM. Порядок одинаковый для любого сервиса.
- Создайте сценарий в коннекторе с триггером «Webhook». Он выдаст URL вида
https://hook.eu1.make.com/…. Скопируйте его. - В ЧБТ вставьте URL в действие «HTTP-запрос», метод POST. Сохраните сценарий.
- Пройдите сценарий с телефона как клиент и оставьте тестовый номер. Коннектор поймает запрос и покажет структуру полей — по ней вы будете маппить.
- Добавьте шаг поиска дубля: найти контакт в CRM по
vars.lead_phone. Нашли — обновить, не нашли — создать. Без этого шага каждая повторная заявка породит второго клиента. - Создайте сделку: название из
vars.service, источник изchannelType, теги — из распарсенного списка. В amoCRM решите заранее, идёт ли заявка в «Неразобранное» или сразу сделкой в воронку; в Битрикс24 — лидом или сделкой, в зависимости от режима CRM. - Назначьте ответственного правилом коннектора: по очереди, по услуге из
vars.serviceили по каналу.
Если не хотите платить за коннектор — приёмник пишется за час на любом языке: принять JSON, вызвать API CRM, ответить 200. Это тот же «HTTP-запрос», только URL ведёт на ваш сервер. Для Битрикс24 коннектор не обязателен: готовое подключение и его ограничения описаны на странице интеграция с Битрикс24.
Про ИИ-квалификацию перед передачей: если в сценарии до сбора телефона стоит блок «ИИ-агент», его ответы в CRM не уходят — передаётся только то, что лежит в переменных. Хотите зафиксировать, что спрашивал клиент — сохраните ключевой ответ действием «Записать переменную» до «HTTP-запроса».
Обратный путь из CRM в бота: что возможно, а что нет
Частый запрос: «менеджер перевёл сделку в оплаченную — пусть бот напишет клиенту в Telegram». Готовой двусторонней синхронизации с CRM в ЧБТ нет, но написать клиенту в его диалог внешняя система может — через публичный API.
Как это собирается. Вебхук на событие «новое сообщение» передаёт id диалога, коннектор сохраняет его в сделке. Когда сделка меняет стадию, коннектор отправляет текст запросом POST /api/v1/conversations/:id/messages. Сообщение уходит клиенту в тот канал, откуда он писал, как ответ оператора, и диалог переходит к человеку. Закрытый диалог сначала переводят в работу запросом /handoff. Написать тому, кто боту не писал, API не может. Подробности — в справке по API.
Триггер «Входящий webhook» для этого не подходит: внешняя система отправляет POST на адрес сценария с секретом, и сценарий запускается как новый диалог в канале виджета, а не как сообщение конкретному человеку в Telegram или MAX. Он годится для служебных сценариев и уведомлений операторам.
Что можно сделать без разработки:
- Сообщения клиенту о статусе — из самого бота. Клиент пишет «статус заказа», сценарий отвечает: если заказы живут в вашей системе — действием «HTTP-запрос» к ней, иначе — ответ оператора из «Диалогов». Статус заказа с Ozon и Wildberries по номеру ЧБТ не получает.
- Массовые уведомления группе клиентов — через раздел «Рассылки» по тегу. Тег можно проставить вручную в карточке контакта или экспортировать список из CRM и найти людей в «Контактах» по телефону.
- Одиночные сообщения менеджера — из «Диалогов»: оператор пишет в тот же чат, где клиент общался с ботом.
Помните также правило мессенджеров: бот пишет только тем, кто ему уже писал. Контакт, заведённый в CRM вручную с номером телефона, ботом в Telegram не достижим — у него нет диалога.
Когда хватит встроенного канбана, а когда нужен webhook
Оба маршрута закрывают одно и то же: сделка создана, данные из диалога в ней, есть ответственный, менеджер двигает стадию. Разница — в том, где эта сделка живёт и сколько вокруг неё можно надстроить.
| Критерий | Раздел «CRM» в ЧБТ | amoCRM / Битрикс24 через «HTTP-запрос» |
|---|---|---|
| Настройка | Ничего: сделка создаётся действием в сценарии или кнопкой виджета | URL приёмника, маппинг полей в Make/n8n/Albato или свой скрипт |
| Стадии | Четыре фиксированные: «Новый», «В работе», «Оплачено», «Отказ» | Любые воронки и стадии вашей CRM |
| Поля сделки | Название, сумма в рублях, ответственный, контакт | Все поля вашей CRM, включая кастомные |
| Данные из диалога | В названии сделки через переменные, остальное — в карточке контакта (свои поля, теги) | Всё, что сохранили «В переменную», плюс теги и канал |
| Задачи, напоминания, телефония | Нет | Средствами CRM |
| Стоимость | Входит в любой тариф, включая Бесплатный | Подписка CRM + коннектор (у Make и n8n есть бесплатные лимиты) |
Правило простое: если у вас ещё нет CRM — не покупайте её ради бота, начните со встроенного канбана; действие «Сделка в CRM» уже стоит в сценарии, а переехать на webhook позже — это один дополнительный блок «Действие». Если CRM уже есть и менеджеры в ней живут — бот должен писать туда, а не заводить вторую доску: две доски означают, что одну из них перестанут смотреть через месяц.
Какие теги должен ставить сценарий заявки
Теги — единственные данные, которые одинаково попадают в оба маршрута: в карточку контакта и во внешнюю CRM в поле tags. Поэтому сценарий заявки должен проставлять их сам, действием «Добавить тег», а не полагаться на менеджера. Три тега на заявку достаточно.
- Источник —
src-vk,src-qr,src-site: ставится в первом блоке ветки, куда ведёт триггер «Диплинк» с конкретным payload или триггер «Открытие виджета». - Намерение —
услуга-маникюр,тариф-про: ставится в ветке выбора кнопкой. - Статус обработки —
заявка,обработано: первый ставит сценарий, второй — менеджер руками в карточке, когда позвонил.
Тег обработано — дешёвая замена стадиям во встроенном канбане: фильтр в «Контактах» по тегу заявка без обработано показывает необработанный хвост. Как выстроить систему тегов целиком — в статье про теги как систему сегментации.
И ещё одна привычка, которая экономит нервы: в конце сценария заявки ставьте блок «Оператор». Диалог попадёт в «Диалоги» со статусом «Оператор» (вкладка «Ждут ответа»), менеджер увидит его в списке непрочитанных и ответит из кабинета — даже если письмо потерялось в спаме, а коннектор упал. Где именно в сценарии передавать диалог человеку, разобрано в статье о передаче диалога оператору.
Чеклист выбора и запуска
- CRM ещё нет → встроенный канбан ЧБТ. Добавьте «Сделка в CRM» после блока с телефоном, назначайте ответственного руками при первом просмотре доски.
- CRM есть → «HTTP-запрос» на webhook коннектора. Во всех блоках «Сбор данных» заполните «В переменную», иначе в CRM уйдут пустые поля.
- Перед действием «Сделка в CRM» поставьте «Условие» по тегу
заявка, если не хотите дубли карточек. - Для внешней CRM настройте поиск дубля по телефону до создания контакта.
- Проверьте приёмник: ответ должен приходить быстрее 15 секунд. Отправьте тестовую заявку с телефона и убедитесь, что она дошла до CRM с правильной услугой и каналом.
- Добавьте тег и «Уведомить оператора» рядом с «HTTP-запросом» — это резервный канал, если внешняя система недоступна.
- Завершите сценарий блоком «Оператор», чтобы диалог оказался в инбоксе.
Встроенная CRM и действие «HTTP-запрос» доступны на Бесплатном тарифе — 1 бот, 30 диалогов в месяц, все каналы. Этого достаточно, чтобы прогнать связку с вашей CRM на реальных заявках, прежде чем платить за Базовый. Сколько стоят тарифы и что в них входит — на странице «Тарифы». Создать бота и настроить передачу заявок →
Справка: входящие и исходящие webhookИнтеграции ЧБТСбор заявок через чат-ботаТеги как система сегментации