директор и машина · производственный цикл · запись № 054 · · Давид Герштейн
Почему согласование договоров стопорится на финальной проверке — и как перестать терять клиентов
Согласование договоров чаще всего ломается не на подписании, а на этапе финальной проверки: сделка зависает, статус не откатывается, а причина отказа нигде не фиксируется. По расчёту, из-за этого под риском оказывается около 900 000 ₽ выручки в месяц. Дыру закрывают обязательное поле причины отказа, автоматический откат и контроль качества по срокам — время на разбор случая отказа падает с 35 до 3 минут.
Содержание · 8 разделов
- Почему согласование договора зависает и как это чинится
- Что решили на старте: как перестроить процесс подписания
- Неделя 1: диагностика — сколько дел уже потеряно из виду
- Неделя 2: первое решение — и что сразу сломалось
- Неделя 3: ИИ-связка — автоматический откат и разбор причины
- Неделя 4: контроль качества и статусы без напоминалок
- Что осталось нерешённым
- Экономика: что это стоит и что даёт
Суммы в разборе пересчитаны на условную компанию — пропорции, механика и выводы реальные.
Если вы не можете за десять секунд назвать, сколько договоров прямо сейчас висит на согласовании и у кого именно, — у вас уже идут потери, вы их просто не видите. Клиенты уходят на том этапе, где они вам уже сказали «да».
Это самая обидная точка потерь в бизнесе. Не «дорого», не «подумаем», не конкурент увёл. Клиент готов подписать — и ждёт, пока договор проходит круг по вашей компании. Иногда неделю. Иногда до тех пор, пока ему не надоест.
Ниже — месяц перестройки этого процесса по неделям: что сломалось, что сработало и сколько это стоило. Я специально оставил в хронике собственные грабли: они полезнее гладкой истории успеха.
У нас отдел из 15 менеджеров, оборот около 18 млн ₽ в месяц, средний чек по сопровождению сделки — 150 тысяч ₽. Это значит, что через воронку каждый месяц проходит примерно 120 сделок, и каждая из них проходит через процесс согласования договоров перед подписанием. Часть сделок дополнительно обязана пройти финальную проверку — комплаенс-проверку контрагента на стороне заказчика или банка. Пока эта проверка идёт, сделка живёт своей жизнью в CRM. И вот тут начинается дыра.
Если проверка провалена, менеджер должен откатить сделку назад, зафиксировать причину и запустить повторную подготовку. На практике он делал это руками — и часто забывал снять дату уже прошедшей проверки. Сделка зависала: система считала, что проверка ещё впереди, хотя она уже провалена. По грубой оценке, на этом держится риск в 900 000 ₽ выручки в месяц — я покажу расчёт ниже. Дальше — хроника, как мы это чинили, по неделям, с тем, что сломалось на каждом шаге.
Почему согласование договора зависает и как это чинится
Согласование ломается не на подписании, а на финальной проверке: её отрицательный результат никто не заносит в систему, сделка остаётся в статусе «на проверке» и выпадает из работы. При обороте 18 млн ₽ в месяц и среднем чеке 150 тыс. ₽ это держит под риском около 900 000 ₽ выручки ежемесячно — шесть сорванных сделок из ста двадцати.
Дисциплиной это не лечится, лечится архитектурой: результат проверки становится обязательным полем с закрытым списком причин, откат сделки — автоматическим действием CRM, а просроченный статус уходит не менеджеру, а контролю качества. После этого один случай отказа стал занимать 3 минуты вместо 35.
Что решили на старте: как перестроить процесс подписания
Поводом стал не абстрактный аудит, а обычная планёрка по воронке. Собственник посмотрел на отчёт и не увидел ни одной сделки со статусом «проверка провалена» — только «на проверке» и «подписан». Провалы были, менеджеры о них рассказывали устно, но в системе они не существовали. Решили втроём с руководителем продаж и разработчиком: систему нужно заставить фиксировать отказ так же строго, как она фиксирует оплату.
Задача на старте звучала так: убрать зависимость от памяти менеджера в трёх точках — фиксация даты неуспешной проверки, причина отказа, откат сделки на этап повторной подготовки. Четвёртым пунктом добавили контроль: если сделка не перемещена в установленный срок, об этом должен узнать не только менеджер, но и контроль качества.
Неделя 1: диагностика — сколько дел уже потеряно из виду
С этого начнёте и вы: не с внедрения, а с честного замера. Вам понадобится список всех договоров в работе с датами — и готовность увидеть неприятную картину.
Прежде чем чинить, подняли карточки сделок за три месяца. Картина оказалась хуже, чем думали. У части сделок дата плановой проверки стояла в прошлом, а сама сделка всё ещё висела на этапе «ожидание проверки» — то есть либо проверка не проводилась, либо результат никто не внёс. Это тот же класс сбоя, что мы разбирали в материале про то, как Битрикс24 сам сдвигает даты сделок: система не спорит с пользователем, если её об этом не попросили. Причина отказа, если её вообще писали, лежала свободным текстом в общем поле комментария — что-то вроде «не прошло, документов не хватило» вперемешку с другими заметками по сделке.
Отдельно нашли соседнюю проблему на более раннем этапе цикла — «ожидание документов от клиента»: там скопилось 26–27 просроченных дел одновременно. Причина оказалась не техническая, а человеческая: менеджеры на продаже говорили клиентам, что спешить не нужно, можно прислать документы когда удобно. Это тот же класс проблемы — процесс не давит на дедлайн, пока кто-то не заставит систему это делать. Мы решили не чинить это отдельно, а сразу закладывать дедлайны и жёсткую фиксацию статуса во весь цикл согласования, а не только в точку финальной проверки.
| Этап цикла | Что нашли (факт) | Кто должен был заметить |
|---|---|---|
| Ожидание документов | 26–27 просроченных дел одновременно | Менеджер — не заметил, срок не был зафиксирован в договоре |
| Ожидание проверки | Дата в прошлом, сделка не сдвинута | Никто — система не фиксировала провал |
| После отказа | Причина в свободном тексте или отсутствует | Менеджер — писал по памяти, если вспоминал |
| Повторная подготовка | Запускалась вручную, с задержкой 1–3 дня | Контроль качества — не видел провалов вообще |
Неделя 2: первое решение — и что сразу сломалось
Обратите внимание на этот этап: у вас будет так же. Я обжёгся здесь ровно тем же способом — первое решение ломается о привычки людей, а не о технику, и это нормальная часть пути, а не признак того, что вы что-то делаете не так.
Добавили в CRM три вещи: отдельное поле «дата неуспешной проверки» (не путать с датой плановой), обязательное поле «причина отказа» с фиксированным списком из четырёх вариантов — критическое несоответствие данных, риски по контрагенту, недостаток документов, другое — и автоматическую задачу менеджеру на день проверки с двумя кнопками: «пройдена» и «не пройдена».
На бумаге это закрывало всю дыру. На практике за первую неделю сломалось две вещи. Первое: менеджеры по привычке продолжали писать причину в старое общее поле комментария — новое обязательное поле физически существовало, но не было частью их рабочего маршрута, они его просто не видели. Мы уже сталкивались с похожей инерцией, когда разбирали, почему менеджеры не вносят данные в CRM, и решили не повторять ошибку уговоров, а сразу менять архитектуру полей. Второе: даже когда кто-то нажимал «не пройдена», сделка не откатывалась сама — это по-прежнему было ручным действием. То есть мы автоматизировали фиксацию факта, но не автоматизировали следствие. Менеджер видел на экране «не пройдена», разводил руками и всё равно тратил 20–30 минут (оценка) на ручной перенос сделки и повторную настройку задач — то есть время почти не сократилось по сравнению с полностью ручным процессом (≈35 минут на случай, оценка, — из расчёта в разделе про экономику ниже).
Скажу честно: я сам годами держал такие статусы в голове. Раз в неделю пробегал глазами по списку сделок, помнил, у кого что застряло, и был уверен, что процесс под контролем. Здесь ошибаются все, включая меня: пока провал не обязан появиться в системе, его в системе и не будет. Это не разгильдяйство менеджеров — это дыра в процессе, которую спроектировал руководитель.
рассылка журнала
Разборы про документы и заявки — на почту
Распознавание, сроки, зависшие статусы, клиентский портал.
Неделя 3: ИИ-связка — автоматический откат и разбор причины
Раз ручной откат не работает, решили убрать его из процесса вовсе. Как только менеджер выбирает «не пройдена», Bitrix24-вебхук должен сам: снять сделку с этапа проверки, поставить причину отказа, создать задачу на повторную подготовку и — отдельно — разобрать текстовый комментарий менеджера (если он есть) на структурированную категорию для аналитики, потому что «другое» без расшифровки бесполезно для отчётности.
Схема конвейера: смена поля «Результат проверки» в сделке → триггер вебхука → сценарий в n8n на нашем сервере → вызов дешёвой модели для классификации комментария → запись категории обратно в сделку через REST API Bitrix24 → если сделка не сдвинута автоматом за час — сообщение в Telegram ответственному разработчику.
Для классификации причины отказа модель не нужна дорогая — задача короткая, закрытый список вариантов, риск ошибки невысокий, а объём — до 12 сделок в месяц с отказом. Взяли модель уровня Haiku / GPT-4o-mini.
Ты — классификатор причин отказа в комплаенс-проверке контрагента.
На входе — комментарий менеджера о результате проверки.
Определи одну категорию из списка:
- nedostatok_dokumentov
- risk_po_kontragentu
- nesootvetstvie_dannyh
- drugoe
Если категория не ясна из текста — ставь drugoe и needs_manual_review = true.
Входные данные (JSON):
{
"deal_id": "48213",
"stage_before": "proverka",
"comment": "клиент не донёс справку из банка, комплект неполный, ждём ещё документ"
}
Верни строго JSON без пояснений:
{
"deal_id": "...",
"reason_category": "...",
"confidence": 0.0-1.0,
"needs_manual_review": true/false,
"suggested_next_stage": "povtornaya_podgotovka" | "otkaz_klienta"
}
Пример ответа модели:
{
"deal_id": "48213",
"reason_category": "nedostatok_dokumentov",
"confidence": 0.91,
"needs_manual_review": false,
"suggested_next_stage": "povtornaya_podgotovka"
}
Второй промпт — сложнее и запускается реже: сверка комплекта договора с условной логикой пакета. У нас в договорах зашита подстановка: пакет «базовый» тянет за собой облегчённую услугу (инструкция по самостоятельной подготовке), пакет «расширенный» — полное сопровождение. Шаблон лежит в общем облачном хранилище, за его актуализацию отвечает юрист: старые версии архивируются, новая версия размещается под тем же названием файла. Проблема в том, что скрипт подстановки иногда путает пакеты, если менеджер поменял тип услуги в форме уже после того, как договор сформирован. Здесь нужна модель, которая понимает контекст текста договора, а не просто ищет ключевые слова — взяли уровень Sonnet. Из чего собирается сам шаблон и какие пункты в нём страхуют от суда — разобрал отдельно.
Ты — юридический контролёр соответствия договора выбранному пакету услуг.
На входе — тип пакета из CRM и текст сформированного договора.
Проверь: подставлена ли услуга, соответствующая пакету.
Правило: economy → "инструктаж по подготовке пакета документов";
premium → "полное сопровождение подготовки пакета документов".
Входные данные (JSON):
{
"deal_id": "48219",
"package": "economy",
"contract_text_excerpt": "...Исполнитель осуществляет полное сопровождение подготовки пакета документов Заказчика..."
}
Верни JSON:
{
"deal_id": "...",
"package": "...",
"mismatch_found": true/false,
"expected_clause": "...",
"found_clause": "..."
}
{
"deal_id": "48219",
"package": "economy",
"mismatch_found": true,
"expected_clause": "инструктаж по подготовке пакета документов",
"found_clause": "полное сопровождение подготовки пакета документов"
}
Инженерная обвязка: все вызовы модели логируются в отдельную Google-таблицу — какая сделка, какой промпт, какой ответ, сколько токенов — по той же схеме, что мы уже обкатали на другой задаче с логированием обработки резюме через прокси-сервис. Отдельно подняли MCP-сервер поверх базы CRM: он даёт модели прямой безопасный доступ к нужным полям сделки без выгрузки лишнего контекста, это снижает расход токенов на 30–40% и уменьшает долю галлюцинаций на классификации. Ошибки — в Telegram-бот на ответственного разработчика, retry — три попытки с очередью, если сервис модели недоступен.
Неделя 4: контроль качества и статусы без напоминалок
Здесь ваша задача как руководителя — не дать процессу вернуться к ручным напоминаниям. Если статус приходится спрашивать голосом, система не работает, как бы красиво она ни выглядела на схеме.
Отдельно добавили правило: если сделка с результатом «не пройдена» не переместилась на нужный этап автоматически в течение установленного срока — уведомление уходит не менеджеру, а контролю качества. Это страховка на случай, если сам вебхук упал или модель вернула низкую уверенность и пометила needs_manual_review. Тот же принцип контроля, не зависящего от памяти сотрудников, мы применяли для контроля дебиторки — работает он одинаково хорошо на любых зависающих статусах, не только на договорах.
На этой же неделе всплыла идея с соседнего фронта — от координатора производственного цикла Димы, который держит статусы заказов в трёх табличках и каждую неделю делает «снимок» — фиксирует состояние на конкретный момент, чтобы через месяц видеть, где реально стояло дело, а не где его задним числом подвинули. «Если статус не менялся — ставь прочерк, не заставляй меня гадать, кто забыл нажать кнопку», — сказал он на общей планёрке, когда обсуждали именно эту проблему с забытыми откатами.
Взяли этот принцип буквально: теперь каждую среду вечером система автоматически фиксирует текущий статус каждой сделки в отдельный столбец таблицы контроля. Новые столбцы добавляются слева от предыдущих — руководитель видит последние изменения без прокрутки. Если статус не изменился — прочерк, а не пустая ячейка, потому что пустая ячейка неотличима от «забыли посчитать».
| Сделка | 28.08 | 21.08 | 14.08 |
|---|---|---|---|
| #48213 | не пройдена | — | на проверке |
| #48219 | подписан | на проверке | — |
| #48225 | — | не пройдена | на проверке |
На диаграмме ниже — во сколько раз сократилось время на один случай отказа после того, как откат и классификация стали автоматическими.
Среднее время на один случай отказа: ручной откат и поиск зависшей сделки — против автоматического отката с классификацией причины (обе цифры — оценка).
бесплатный курс · телеграм
Собрать разбор документов машиной
В курсе — как поставить обработку документов: эталонный набор, правила для спорных случаев, приёмка результата. Тот путь, которым мы дошли с 59% до 85% точности.
Начать курс бесплатно →открывается в Telegram · доступ по подписке на канал
Что осталось нерешённым
Дальше — честная часть, которую я в кейсах подрядчиков ни разу не встречал. У нас тоже не всё закрылось, и вам стоит знать, где будет сопротивляться ваш процесс.
Три вещи мы сознательно не стали закрывать в этом же спринте. Первое — шаблоны договоров по-прежнему актуализирует юрист вручную в облачном хранилище, автоматической проверки версии (не устарел ли шаблон, из которого собран конкретный договор) пока нет. Это уже аукнулось на смежном участке: часть клиентов получила документы по старому шаблону, не соответствующему новым требованиям к комплекту, и застряла на этапе финальной проверки. По месяцам это выглядело неровно: например, около 76 случаев в одном месяце, 8 в следующем и 47 — за одну только первую неделю ещё одного месяца, но на пике масштаб доходил до 100–150 дел в месяц. Чинили точечно, руками, ответственный сотрудник лично отслеживал версии шаблонов.
Второе — правило «три зафиксированных случая, когда клиент не отвечает, приравниваются к отказу» внесено в регламент и в договор, но фиксация самих попыток связи всё ещё держится на менеджере, а не на автоматическом счётчике звонков и сообщений. Третье — срок действия договора для типовых работ теперь обязателен по регламенту, но проставлен вручную только в новых договорах, ретроспективно старые не пересчитаны. Во сколько обходится автоматизация этого участка — посчитал отдельно.
Экономика: что это стоит и что даёт
Прикиньте свои потери прежде, чем смотреть на мои цифры. Возьмите средний чек, умножьте на число сделок, которые в прошлом квартале зависли на согласовании дольше недели. Это и есть ваш бюджет на решение задачи — обычно он в разы больше, чем стоит сама перестройка процесса.
При обороте 18 млн ₽/мес и среднем чеке 150 тыс. ₽ через воронку проходит около 120 сделок в месяц (18 000 000 ₽ ÷ 150 000 ₽ = 120). По нашей оценке, порядка 10% сделок в моменте виснут без движения дольше нормы на любом из этапов согласования — это 120 × 0,10 = 12 сделок в месяц. Из них до автоматизации примерно половина (оценка) реально срывалась из-за забытого статуса или потерянного контакта с клиентом, а не из-за объективного отказа — то есть 12 × 0,5 = 6 сделок в месяц, или 6 × 150 000 ₽ = 900 000 ₽ выручки под риском (оценка).
Экономия времени отдельно от снятого риска: до автоматизации ручной откат и поиск зависших дел занимал у менеджера и контролёра качества суммарно около 35 минут на каждый случай отказа; после — около 3 минут (проверка, что вебхук отработал корректно, и в редких случаях — разбор карточек с needs_manual_review). Разница — 32 минуты на случай. При 12 случаях отказа в месяц: 32 мин × 12 = 384 минуты = 6,4 часа работы отдела в месяц. По ставке 1000 ₽/час (оценка, усреднённая для менеджера и контролёра качества) это 6,4 × 1000 ≈ 6 400 ₽/мес прямой экономии времени.
Чтобы прикинуть свой случай: возьмите долю сделок, которые у вас реально зависают на этапах согласования, умножьте на число сделок в воронке за месяц — получите число зависших; из них оцените долю тех, что срываются именно из-за забытого статуса, а не по объективным причинам, и умножьте на средний чек — получите сумму риска. Отдельно: возьмите разницу в минутах между ручной и автоматической обработкой одного случая отказа, умножьте на число таких случаев в месяц, переведите в часы и умножьте на часовую ставку сотрудника, который этим занимается, — получите экономию времени в деньгах.
Сама по себе цифра экономии времени скромная. Я считаю главным эффектом не сэкономленные минуты, а в том, что 900 000 ₽ выручки, которые раньше утекали через забытый статус, теперь остаются в воронке — потому что зависшую сделку больше не нужно случайно заметить, система сама не даёт ей провисеть незамеченной. Эти два эффекта — снятый риск выручки и экономия времени — считаются раздельно и не складываются в одну сумму: первое про то, что не потеряно, второе — про то, что не потрачено.
| Показатель | Значение |
|---|---|
| Оборот в месяц | 18 млн ₽ |
| Средний чек сделки | 150 тыс ₽ |
| Сделок в воронке / мес | 120 (18 000 000 ÷ 150 000) |
| Доля зависших сделок (оценка) | 10% → 12 сделок |
| Из них теряется из-за забытого статуса (оценка 50%) | 6 сделок |
| Риск выручки | 6 × 150 000 ₽ = 900 000 ₽ (оценка) |
| Время на случай отказа до автоматизации | ≈35 мин (оценка) |
| Время на случай отказа после автоматизации | ≈3 мин (оценка) |
| Случаев отказа в месяц | до 12 |
| Экономия времени в месяц | 32 мин × 12 = 6,4 часа |
| Экономия времени в деньгах (ставка 1000 ₽/час, оценка) | ≈6 400 ₽/мес |
Умение вынести собственную память в поле, которое система обязана заполнить, — такой же базовый навык руководителя, как чтение отчёта о деньгах. Я понял это поздно: пока причина отказа живёт в голове менеджера и в устном рассказе на планёрке, управления процессом нет — есть ощущение управления. Руководитель, который умеет заставить систему фиксировать плохие новости, стоит дороже того, кто узнаёт о них последним.
Что сделать на этой неделе: попросите показать вам все договоры, которые сейчас на согласовании, с датой отправки. Не отчёт — реальный список. Обычно после этого разговор о необходимости менять процесс заканчивается сам собой: цифры убеждают лучше меня.
Как собрать такой контроль так, чтобы он работал без вашего участия и напоминаний, — механика в бесплатном курсе: там же готовые постановки для разбора договоров машиной.
Частые вопросы
Почему согласование договоров тормозит именно на финальной проверке?
Потому что решение на этом этапе принимает не менеджер и не клиент, а третья сторона — и система обычно не фиксирует её отрицательный вердикт, если никто не заставил её это делать.
Что делать, если менеджеры забывают откатывать сделку после отказа?
Убрать ручной откат из процесса вообще: сделать выбор «пройдена / не пройдена» обязательным полем задачи, а откат сделки — автоматическим действием CRM, а не памятью человека.
Какая модель ИИ нужна для классификации причин отказа в договорах?
Для короткой классификации по 4 категориям хватает дешёвой модели уровня Haiku или GPT-4o-mini; для сверки текста договора с условной логикой пакета лучше брать модель уровня Sonnet.
#автоматизация #ошибки и провалы #деньги
Присылаю новый разбор в день выхода — с цифрами, которые можно подставить в свою таблицу. Без дайджестов ради дайджестов: нет статьи — нет письма.