Один клиент, три карточки. В первой телефон записан как +7 917 123-45-67, во второй — 89171234567, в третьей человек оставил только почту. Все три завёл наш же контур: заявка с сайта, письмо и сообщение в Telegram пришли в разное время, а сопоставить их между собой никто не догадался. Менеджеры две недели звонили одному и тому же человеку по очереди, пока он не написал раздражённое письмо.
Про сам диалог с клиентом и скоринг я разбирал отдельно: как ИИ квалифицирует заявку. Здесь — про вторую половину работы, которая никому не интересна на демо и определяет всё в проде: что именно агент записывает в CRM, как не плодит дубли, кому назначает сделку и что видит руководитель утром.
Что агент имеет право писать, а что нет
Первое решение принимается до интеграции: границы прав. Соблазн дать ИИ полный доступ к воронке велик, и заканчивается он тем, что кто-то из менеджеров находит свою сделку сдвинутой на этап назад.
Наше рабочее правило: агент создаёт и дополняет, но не переводит и не закрывает. Он заводит лид, пишет в него всё, что узнал, ставит задачу и напоминание. Сдвиг по воронке дальше стадии «квалифицирован» — только человеком. Сумма сделки — только человеком. Причина отказа — человеком.
| Поле в карточке | Откуда берёт агент | Где обычно ломается |
|---|---|---|
| Имя | из диалога, иначе «Клиент с сайта» | «ага», «я», «Иван Иваныч» — чистить перед записью |
| Телефон | из диалога/формы, приводится к +7XXXXXXXXXX | форматы, добавочные, номер в тексте сообщения |
| Суть задачи, одна строка | выжимка модели, не расшифровка диалога | модель любит писать абзац — ограничивать длину в промпте |
| Источник и кампания | UTM, канал, страница | UTM теряются при переходе через мессенджер |
| Балл квалификации | скоринг | поле должно быть числом, а не текстом |
| Обещанный срок ответа | что бот сказал клиенту | без этого поля менеджер нарушает чужое обещание |
| Полный диалог | вложением или в отдельное поле | ограничение длины поля в CRM, режется молча |
Последняя строка про «режется молча» — не мелочь. Битрикс24 обрежет длинный комментарий, и вы узнаете об этом, когда менеджер спросит, где вторая половина переписки.
Дубли: две минуты работы, которые экономят месяц ругани
Дубль появляется по трём причинам, и лечится каждая по-своему.
Разные форматы контакта. Перед любой записью телефон нормализуется: убираются пробелы, скобки, дефисы, ведущая 8 меняется на +7. Почта приводится к нижнему регистру. Простое правило, которое почему-то делают в последнюю очередь.
Один человек в разных каналах. Ищем по телефону и почте за последние 90 дней. Нашли — не создаём новую карточку, а дописываем комментарий в существующую и поднимаем её в работу. Отдельно помечаем: «повторное обращение». У нас это, кстати, лучший по конверсии сегмент, и терять его в дублях особенно обидно.
Повтор запроса при сбое. Сеть моргнула, контур повторил шаг, в CRM две одинаковые карточки. Лечится ключом идемпотентности: хеш из телефона, даты и первых ста символов текста, таблица уже обработанных заявок со сроком хранения неделя. Подробнее про эту механику — в разборе про надёжность контура n8n.
Отдельная беда — грязь в справочниках. В номенклатуре 1С мы однажды ловили позицию «Сгон», у которой первая буква была латинской C. Глазами не отличить, поиск молча не находит, дубль создаётся автоматически. Такие гомоглифы нормализуются до сравнения, иначе часть базы формально существует, но недоступна.
Кому назначать: правила, а не «на директора»
Поле «ответственный» — то место, где автоматизация ломается тише всего. Лид завели, всё красиво, ответственный по умолчанию — руководитель отдела, у которого в CRM уже 400 висящих карточек. Формально заявка обработана. Фактически потеряна.
Что работает:
- распределение по правилу, а не по умолчанию: направление услуги, регион, размер объекта;
- проверка занятости — если у менеджера больше N активных лидов без касания, следующий уходит другому;
- отпуска и выходные подтягиваются из графика, а не из головы; на выходные назначается дежурный, и бот называет клиенту его реальное время ответа;
- таймер: лид без первого касания дольше двух часов в рабочее время уходит наверх с уведомлением руководителю.
Эскалация должна быть автоматической. Схема «руководитель раз в день просматривает новые лиды» не выживает ни в одной компании дольше месяца.
Что видит руководитель утром
Отчёты — та часть, ради которой руководитель вообще соглашается на проект. Дашборд внутри CRM смотрят единицы, а короткое сообщение в Telegram в 9:00 читают все.
| Отчёт | Когда | Что внутри |
|---|---|---|
| Утренняя сводка | 9:00 ежедневно | сколько заявок за сутки, сколько ночных, сколько без касания, топ-3 горячих |
| Алерт по обещаниям | по факту | «клиенту обещали ответ до 12:00, сейчас 12:30, ответственный — Петров» |
| Недельный срез | понедельник | конверсия в следующий шаг, средняя скорость первого ответа, доля заполненных карточек |
| Причины отказов | раз в месяц | модель группирует тексты отказов в 5-7 категорий |
Последняя строка — самое недооценённое. Менеджеры пишут причины отказа свободным текстом или не пишут вовсе. Модель разбирает эти обрывки и складывает в категории: дорого, сроки, выбрали другого, не наш профиль. Через два месяца у руководителя появляется картина, которой до этого не было ни в одном отчёте.
Одна цифра, которую стоит завести отдельно: доля карточек, где заполнена суть задачи. До автоматизации типичная картина — 30-40%, остальное «клиент интересовался». После — под 90%, потому что агент не ленится и не забывает.
Что ломается при обмене
Собрал по своим шишкам. Это не теория, это список того, из-за чего звонили в субботу.
Лимиты API. У Битрикс24 ограничение на частоту запросов, и при всплеске заявок интеграция начинает получать отказы. Лечится очередью с паузой между запросами и повтором, а не увеличением скорости.
Протухший вебхук. Сотрудник, от чьего имени выпущен входящий вебхук, сменил должность или уволился — права слетели, интеграция молча перестала писать. Интеграционный пользователь должен быть техническим и не привязанным к живому человеку.
Обязательные и списочные поля. В CRM настроили обязательное поле «тип объекта» со списком из восьми значений. Агент пишет туда «склад», а в списке значится «Складское помещение» — карточка не создаётся, ошибка уходит в лог, заявка исчезает. Значения списков надо тянуть из CRM, а не хардкодить в промпт.
Часовые пояса. CRM в Москве, сервер в UTC, клиент в Новосибирске. Обещание «перезвоним до 12:00» превращается в разные 12:00 у трёх сторон. Хранить всё в UTC, показывать в часовом поясе клиента, писать в карточку явно.
CRM недоступна. Обновление, авария, кончилась лицензия. Заявка не должна теряться: резервный канал — письмо на общий ящик или сообщение в чат отдела с полным текстом, плюс очередь на дозапись. Терять обращение из-за чужого сбоя нельзя.
Правки на стороне маркетинга. Поменяли поля в форме на сайте — контур начал получать другие ключи и складывать пустые лиды. Проверять цепочку после любой правки сайта, это правило записывается в регламент.
Как это выглядело в аварии
Ночью провайдер CRM обновлялся и минут сорок отвечал ошибкой. Наш контур честно повторял каждый запрос — пять раз с интервалом. Когда CRM поднялась, все накопленные повторы прошли разом, и в воронке оказалось около двухсот карточек вместо сорока.
Утром руководитель отдела увидел «рекордный день по лидам» и обрадовался. К обеду разобрались, и радость кончилась: чистить пришлось руками, потому что автоматическое слияние в CRM склеило часть комментариев не с теми контактами.
Что переделали:
- повторов теперь максимум три, с нарастающей паузой 5, 30 и 120 секунд, дальше заявка уходит в отдельную очередь на ручной разбор, а не крутится вечно;
- перед созданием карточки — обязательный поиск дубля по нормализованному телефону за сутки;
- ключ идемпотентности пишется в отдельное поле карточки, и повтор с тем же ключом просто игнорируется;
- на резкий скачок числа созданных лидов настроен алерт: больше тридцати за час — сообщение в чат разработчику.
Три часа работы. Если бы это было сделано сразу, не было бы ни двухсот карточек, ни ручной чистки.
Где это не работает
Автоматическое заполнение CRM не чинит продажи. Если менеджер не перезванивает по горячим лидам, агент просто быстрее и аккуратнее донесёт их до того же места, где они умирают.
Не работает и там, где CRM по факту не используется. Компания, которая ведёт сделки в тетради и в WhatsApp, от интеграции получит красивую базу, в которую никто не смотрит. Сначала процесс, потом автоматизация.
Плохо ложится на длинные B2B-сделки с десятком участников. Первый контакт там — уже экспертный разговор, и роль ИИ другая: поднять историю, собрать контекст, подготовить менеджера к звонку.
И честно про объём работ: техническая связка с amoCRM или Битрикс24 делается за пару дней. Дольше всего идёт согласование того, какие поля обязательные и кто за какое направление отвечает. Это разговор с руководителем отдела, а не с программистом, и он занимает недели.
Частые вопросы
Агент сможет работать с нашей самописной CRM? Если у неё есть API — да. Если нет, остаётся обмен файлами по расписанию: так мы работаем с 1С, там обмен идёт JSON-файлами по таймеру. Медленнее, но надёжно.
Как не дать ИИ испортить существующие сделки? Правами интеграционного пользователя. Создание лидов и комментарии — можно, изменение суммы, стадии и удаление — нет. Проверять это надо на тестовой воронке, а не на боевой.
Что если модель напишет ерунду в карточку? Поэтому в карточке два поля: выжимка от модели и полный текст диалога. Менеджер видит источник и может перепроверить за десять секунд. Черновик от ИИ, решение за человеком.
Нужно ли переделывать воронку под ИИ? Обычно наоборот: полезно сократить. Типичная картина — 40 полей, из которых заполняются четыре. Перед интеграцией стоит вычистить мёртвые поля, иначе автоматизация закрепит бардак.
Сколько времени до первых результатов? Связка и первые карточки — неделя-две. Понятные цифры по конверсии — не раньше чем через полтора месяца, раньше не наберётся статистики.
Первый шаг
Выгрузите из CRM лиды за последний квартал и посчитайте две вещи: сколько карточек без сути задачи и сколько дублей по телефону. Обе цифры считаются за полчаса в Excel, и обе обычно неприятно удивляют.
Дальше — навести порядок в полях и правилах распределения, и только потом ставить агента. Как выглядят собранные контуры целиком, показываю в кейсах. Хотите оценку по своей воронке — приносите процесс на AI-аудит: посмотрим, где теряются заявки, и скажем, что даст эффект первым.