Клиент оставил заявку и ждёт. Кто ответит первым и по делу, у того больше шансов на сделку. Но заявка приходит ночью или когда менеджер занят другим лидом. Тогда человек ждёт дольше. А быстрый ответ обычно шаблонный - "спасибо за обращение, скоро свяжемся", - и по нему клиент видит, что заявку даже не прочитали.
Мы сделали робота, который берёт первое касание на себя: читает новую заявку и за минуту готовит персональный ответ. Менеджер проверяет и отправляет - решение остаётся за человеком. Робот ставится на отдел продаж в Битрикс24 или другой CRM.
Оба привычных пути теряют клиента
Ответить сразу - значит ответить шаблоном, не разобравшись в задаче. Ответить по делу - значит через час-два, когда дойдут руки. Ночью и в выходные заявка просто лежит до утра. Чем дольше тишина, тем выше шанс, что клиент уже пишет кому-то ещё.
Как робот готовит ответ
Робот берёт заявку из карточки лида - текст запроса, входящее письмо или переписку в чате открытой линии. В работу идут только слова клиента. Исходящие письма менеджера робот не трогает, чтобы не отвечать сам себе.
Дальше он готовит ответ коротко и по делу: подтверждает, что запрос прочитан, называет суть задачи и задаёт два-три вопроса под конкретный случай. Если к письму приложено техзадание, робот его видит и не просит прислать повторно.
Готовый черновик ложится менеджеру в ту же карточку лида - вместе с короткой сводкой: что за запрос, есть ли вложения, какая услуга подходит. Менеджер читает, при желании правит и отправляет клиенту в его канале. Ошибки ИИ вслепую к клиенту не уходят - последнее слово всегда за человеком.
Спаму робот не отвечает, персональные данные держит внутри компании, поддержку с продажей не путает. Дальше - как это устроено внутри.
Техническая сторона
Стек простой. Python на стандартной библиотеке, без внешних зависимостей. Сам робот - таймер systemd на сервере: раз в несколько минут он забирает свежие лиды через REST Битрикс24. Текст ответа готовит ИИ-модель, она подбирается автоматически, а запасная зашита прямо в код на случай, если основная недоступна.
Запрос робот ищет по приоритету: сначала поле "Задача", потом входящее письмо, потом переписку открытой линии - её историю он получает одним запросом. В контекст модели идут только входящие реплики клиента. Исходящие письма менеджера отбрасываются, иначе робот начал бы отвечать на собственные же сообщения.
Персональные данные остаются на сервере
Имя, фамилию, компанию, телефон, почту и ссылки робот заменяет заглушками - {{NAME}}, {{COMPANY}}, {{PHONE}} - по регуляркам и по значениям полей лида. Модель получает обезличенный текст. Настоящие данные подставляются обратно уже локально, на сервере компании, и дальше него не уходят.
Одну оговорку держим в голове честно. Произвольное имя третьего лица где-нибудь в середине текста, без распознавания именованных сущностей (NER), может проскочить мимо заглушки. Поэтому финальную отправку всё равно подтверждает человек.
Проверки перед ответом
Прежде чем писать черновик, робот смотрит в таймлайн лида - есть ли там вердикт проверки номера. Свежему лиду он даёт фору в несколько минут, чтобы эта проверка (она запускается чаще) успела высказаться первой. Если номер уже помечен как спам, черновик не готовится вовсе - компания не тратит на него ни ответа, ни токенов.
Черновик появляется только тогда, когда есть и почта для ответа, и письменный запрос. Звонок без текста или обращение действующего клиента с проблемой робот отсекает по признакам. Бывает так: клиент звонит с проблемой в приложении - продающий ответ туда не нужен и только раздражает. Такие обращения робот отделяет от новых заявок.
Служебные ники из чата - вроде "гость №60" - в обращение не попадают. Имя робот берёт из подписи письма и разбирает его локально, в модель для этого ничего не отправляет. Если разобрать ФИО однозначно не выходит, он ставит его целиком, не переставляя имя и фамилию местами.
Защита от дублей
Дубль закрыт тройной защитой: метка на деле, проверка исходящего письма и журнал на диске. Так два параллельных запуска таймера не отправят клиенту два ответа подряд. Запись в карточку не порождает событие в живой ленте, чтобы лишний раз не дёргать команду.
Что это даёт
Клиент получает ответ по делу в первые минуты - с вопросами по его задаче, а не с обещанием "скоро свяжемся". Менеджер экономит целый раунд переписки: половина уточнений уже задана. А первое касание перестаёт быть местом, где утекают сделки.
Ночью робот может ответить и сам, если это включить. Осторожно: без обращения по имени и только после проверки на спам.



