Игорь Градов
Игорь Градов
7 мин
ai

Автоматизация CRM через ИИ-агента: как обработать 10 000 контактов без замены системы

CRM с 10 000 контактов копит данные, но не помогает ими пользоваться, и автоматизация CRM через ИИ-агента решает именно эту задачу, разделяя систему на механический слой и слой принятия решений.

Автоматизация CRM через ИИ-агента: как обработать 10 000 контактов без замены системы
Почему это важно

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

Автор оригинального кейса годами наполнял CRM контактами с конференций, звонков и переписок в Telegram. В какой-то момент в базе оказалось 9 718 сущностей-контактов, но объём данных не конвертировался в пользу: нужно было помнить, кого искать, какие фильтры ставить, что делать дальше. Он решил автоматизировать почти всё, но не через замену системы, а через надстройку. Так появилась архитектура, где старая CRM выполняет механику, а ИИ-агент принимает решения.

Что понадобится

  • Существующая CRM с API или базой данных, из которой можно читать и в которую можно записывать (подойдёт даже самописная система на SQLite)
  • Источники данных: архив Telegram-диалогов, заметки после звонков, карточки контактов, история переписок
  • Языковая модель с доступом по API: GPT-4o, Claude, YandexGPT или GigaChat для тех, кто работает в РФ
  • Базовые навыки SQL: написать простой запрос вроде SELECT и GROUP BY
  • Скрипты для выгрузки и дедупликации: Python или любой язык, который умеет работать с SQLite и JSON
  • Время: от нескольких дней на первичную сборку до недели на отладку приоритизации

Как собрать систему по слоям

Архитектура состоит из пяти слоёв. Каждый решает одну задачу и передаёт результат следующему.

1. Архив событий: сначала скрипты, потом модель

Выгружать сотни тысяч сообщений через языковую модель дорого и медленно. В описанном кейсе было 51 000 Telegram-диалогов по четырём аккаунтам. Первичную обработку берёт на себя обычный SQL-запрос:

SELECT dialog_id,
       MAX(message_date) AS last_contact,
       COUNT(*)          AS message_count
FROM messages
GROUP BY dialog_id;

Этот запрос бесплатно определяет дату последнего общения и количество сообщений. Языковая модель подключается только тогда, когда нужно понять смысл разговора, а не пересчитать строки.

2. Единая карточка: объединить дубли без потерь

Один человек может присутствовать в нескольких источниках: сначала написал в Telegram, потом пришёл на звонок, через год появился в заметках под другим именем. Универсального идентификатора (уникального ключа, по которому можно однозначно найти запись) нет: username меняется, имена совпадают, телефон есть не у всех.

Объединение идёт ступенями:

  • Точное совпадение идентификатора (Telegram ID, номер телефона)
  • Совпадение по username
  • Имя плюс компания или дополнительный признак

Автоматически записи не склеиваются: каждое совпадение проверяется. В карточке сохраняется происхождение каждого факта. Если два источника противоречат, система показывает конфликт, а не прячет его.

3. Приоритизация: формула вместо интуиции

Каждый контакт получает статус отношений: Hot, Warm, Lukewarm (прохладный), Cold, Archived. Дополнительно рассчитывается приоритет реактивации от 0 до 100 по формуле:

priority = 0.35 × recency + 0.20 × frequency + 0.25 × depth + 0.20 × resurgence − penalty

Где:

  • recency (давность) определяет, когда было последнее содержательное касание
  • frequency (частота) считает количество звонков и разговоров
  • depth (глубина) оценивает уровень отношений
  • resurgence (возобновление) фиксирует новый входящий сигнал
  • penalty (штраф) учитывает оставшиеся без ответа сообщения

Результат на практике распределился так:

  • 16 контактов: написать прямо сейчас
  • 77 контактов: обработать на этой неделе
  • 601 контакт: рассмотреть в течение месяца
  • Остальные: не трогать до появления новых данных

4. Агентный слой: модель решает локальную задачу

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

Сначала работает детерминированный поиск:

SELECT * FROM people
WHERE reactivation_priority >= 75
ORDER BY reactivation_priority DESC
LIMIT 20;

Для каждого отобранного контакта собирается досье: кто это, откуда знакомы, дата последнего контакта, последние содержательные сообщения, результаты звонков, незакрытые договорённости, подтверждённые общие интересы.

Только после этого подключается языковая модель. Она не ищет человека среди тысяч карточек, она решает конкретную задачу: что разумно сделать с этим контактом, имея подтверждённые факты. Если данных недостаточно, правильный результат: needs_review, то есть «требуется ручная проверка».

5. Транспортный слой: отправка без стратегии

ИИ-агент не отправляет сообщения напрямую. Он подготавливает действие, а передаёт его отдельный транспортный слой. Этот слой ничего не знает о стратегии, зато знает ограничения канала:

  • С какого аккаунта можно писать этому человеку
  • Не превышен ли лимит отправок
  • Не было ли сообщение уже отправлено
  • Не пересекаются ли параллельные кампании
  • Есть ли подтверждение доставки
  • Нужно ли остановиться после ответа

Между отправками добавляется случайная задержка. При FloodWait (временная блокировка от Telegram за слишком частые запросы) транспорт ждёт и повторяет операцию. Все аккаунты используют общий журнал бюджета, поэтому два параллельных процесса не перегружают один канал.

Как это применить

Допустим, у вас 3 000 контактов в самописной CRM на Google Sheets. Шаг первый: выгрузите все строки в SQLite и запустите SQL-запрос для подсчёта давности последнего касания. Шаг второй: напишите промпт (текстовую инструкцию для ИИ) для языковой модели, который принимает карточку контакта и возвращает одно из действий: «написать», «позвонить», «подождать», «архивировать». Шаг третий: отберите 20 контактов с наибольшим приоритетом и прогоните их через модель. На выходе вы получите конкретный список действий на неделю, а не абстрактное «надо бы связаться со всеми».

Частые ошибки

Не скармливайте всю базу модели целиком. 10 000 карточек при каждом запросе съедят бюджет за дни и дадут размытые ответы. Фильтруйте SQL-запросом, передавайте модели только отобранные карточки.

Не склеивайте дубли автоматически. Два «Алексея из IT-компании» могут оказаться разными людьми. Любое совпадение по нечёткому признаку (имя плюс компания) требует ручной проверки, иначе вы отправите письмо не тому человеку.

Не давайте агенту кнопку «отправить» без транспортного слоя. Без проверки лимитов и дедупликации отправок вы рискуете получить FloodWait или отправить одно сообщение дважды.

Не переписывайте старую систему с нуля. Годы накопленных исключений, обработок ошибок и интеграций невозможно воспроизвести за спринт. Разделите на «руки» (старая CRM) и «голову» (агент).

Что делать с этим прямо сейчас?

Авторам Дзена и копирайтерам. Если вы ведёте базу клиентов или заказчиков хотя бы в таблице, автоматизация CRM по этой схеме позволяет перестать вручную листать список и вспоминать, кому давно не писали. Даже промпт к ChatGPT или YandexGPT с карточкой контакта и вопросом «что сделать следующим шагом» даст конкретику вместо хаоса.

Маркетологам. Формула приоритизации (давность, частота, глубина, штраф за игнор) переносится на любую воронку. Вместо ручного скоринга лидов вы получаете очередь действий, где модель обосновывает каждый выбор фактами из истории.

Предпринимателям в РФ и СНГ. Схема работает с любой языковой моделью, доступной по API. Из российских вариантов подходят YandexGPT и GigaChat. Главное: начните с SQL-выгрузки и приоритизации, это не требует ни подписки, ни дорогого стека.

Мнение редакции dzen.guru

Самая ценная идея в этом кейсе, не сам агент, а архитектурное разделение. Вместо того чтобы тратить месяцы на переписывание легаси-кода (устаревшего, но рабочего), автор оставил старой системе механику и надстроил сверху слой решений. По моим наблюдениям, это применимо далеко за пределами CRM: любая рабочая, но неудобная система (учёт, рассылки, даже редакционный календарь) может получить «голову» в виде ИИ-агента, не теряя накопленных интеграций. Честная оговорка: настройка формулы приоритизации требует ручной калибровки под вашу специфику, готовых универсальных весов не существует, и первые недели вы будете поправлять коэффициенты вручную.

Разделить систему на «руки» и «голову» можно за выходные, если база уже в SQL. Автоматизация CRM не начинается с покупки нового сервиса, она начинается с одного SQL-запроса, который покажет, кому вы не писали дольше всего.

Попробуйте ИИ-инструменты dzen.guru

Если вы автор или маркетолог и хотите разобраться, как применять нейросети в своей работе, начните с практических гайдов на dzen.guru.

Перейти к инструментам
Поделиться:TelegramVK
Игорь Градов
Игорь Градов

Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».

Комментарии

Читайте также

Сео оптимизация под один поисковик устарела: модель MEO охватывает 8 классов алгоритмов
ai

Сео оптимизация под один поисковик устарела: модель MEO охватывает 8 классов алгоритмов

Почему это важно Один сайт теперь оценивают минимум восемь принципиально разных алгоритмов, от классического поиска до ИИ-агентов, и сео оптимизация под один…

6 мин
ai

AI честность через отказы: жёсткая приёмка работает лучше мата в промптах

Ненормативная лексика в промптах (промпт — текстовая инструкция для нейросети) к Claude Code не улучшает работу мультиагентной системы (нескольких ИИ-агентов,…

6 мин
ai

Автономный ИИ-агент за 15 центов в сутки: почему растёт запрос на запрет автономных систем ИИ

Автор из России собрал автономного ИИ-агента с собственной памятью, root-доступом к виртуальной машине и выходом в интернет, потратив на API всего несколько…

6 мин