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

Почему идеального пути недостаточно
Большинство команд начинают с чистой версии рабочего процесса. Поступает заявка, кто-то её проверяет, и она одобряется. Это кажется эффективным, но скрывает, где происходит настоящая работа.
Идеальный путь обычно самый короткий. Форма заполнена, вложения на месте, и рецензент знает, что делать. В реальной работе такие случаи редко становятся причиной задержек.
Задержки начинаются, когда чего-то нет, что-то неясно, опаздывает или только частично приемлемо. Менеджер может одобрить бюджет, но отклонить одну позицию. Финансы могут потребовать налоговый документ, который не загрузили. Руководитель поддержки может вернуть заявку из‑за расплывчатого поля «Причина». Каждое такое событие добавляет шаги, сообщения и ожидание.
Если эти ситуации не продумать заранее, люди будут принимать решения на ходу. Один рецензент отправит письмо, другой оставит комментарий в инструменте, третий отклонит заявку без объяснения. Заявитель остаётся в неведении: исправить проблему, начать заново или просить помощи?
Такая неопределённость имеет цену. Она замедляет того, кто подал заявку, того, кто её проверяет, и всех, кого подключили, чтобы объяснить, что случилось. Рабочий процесс, который на доске выглядел простым, превращается в переписки, дублирующие отправки и ручные передачи.
Базовый поток легко набросать:
- отправить заявку
- проверить заявку
- одобрить заявку
Реальная версия сложнее. Что если не хватает документа? Что если одобрена только часть заявки? Что если рецензент отклоняет, но пользователь может исправить? Это не редкие случаи. Для многих команд это нормальная практика.
Поэтому проектированию путей исключений стоит уделить внимание ещё до того, как будут нарисованы экраны и названы статусы. Путь исключения определяет, что происходит, когда реальность вмешивается в план — а это случается часто.
Если вы создаёте внутреннее приложение для согласований, включая приложение на платформе без кода, такой как AppMaster, случаи отклонения и неполноты требуют не меньше внимания, чем случаи одобрения. Они формируют сообщения, которые видят люди, возможные действия и то, поможет ли процесс восстановиться или оставит людей в тупике.
Идеальный путь показывает намерение. Пути исключений показывают, сможет ли процесс выдержать реальную эксплуатацию.
Как выглядит путь исключения
Путь исключения — это то, что происходит, когда заявка не может продолжить движение обычным способом. Это не редкий граничный случай. Это часть процесса, которая управляет реальным беспорядком: заявку отклоняют, форма неполная, одна часть одобрена, другая — нет, или работа просто застревает.
Чёткий путь исключения использует понятный язык. Вместо расплывчатого статуса «Сбой» скажите, что произошло: «Отклонено: превышен лимит бюджета» или «Ожидается документ: удостоверение личности». Люди должны понимать, в чём проблема, кто должен действовать и что будет дальше.
Большинство рабочих процессов ломаются в нескольких предсказуемых местах:
- заявку отклонили с чёткой причиной
- не хватает обязательного документа или поля
- одобрена только часть заявки
- у заявки нет владельца или следующего шага
Отсутствие информации — одна из самых частых проблем. Представьте форму для регистрации поставщика, где нужны налоговый документ и номер банковского счёта. Если чего‑то нет, система не должна просто останавливаться. Она должна пометить заявку как неполную, показать, чего не хватает, и вернуть её нужному человеку.
Частичные одобрения не менее важны. Подумайте о командировке: перелёт, отель и питание. Менеджер одобрил перелёт и отель, но сократил бюджет на питание. Процесс теперь требует правил. Согласен ли сотрудник с изменением, обновляет ли заявку или отменяет поездку?
Задержки тоже имеют значение. Заявка может простаивать, потому что назначенный рецензент уволился, команда не назначила резервного согласующего или процесс дошёл до шага без следующего владельца. Ничего технически не сломано, но заявка не может двигаться.
Если эти пути не продумать заранее, люди будут решать их по электронной почте, в чате или в заметках в таблицах. Вскоре никто не будет знать, какая версия окончательная.
Простой пример согласования
Возьмём командировочную заявку менеджера по продажам на двухдневную конференцию. На бумаге всё просто: сотрудник вводит даты поездки, предполагаемые расходы и причину; менеджер одобряет, финансы подтверждают бюджет, и поездку можно бронировать.
Но этот поток неполон.
Представим теперь, что сотрудник загрузил смету перелёта и билет на конференцию, но забыл квоту на отель. Если система знает только статусы «отправлено» и «одобрено», люди быстро застрянут. Финансы увидят неполную заявку, менеджер подумает, что всё готово, а сотрудник не поймёт, чего не хватает.
Лучший поток даёт такой заявке свой статус, например «Ожидает документ» или «Нужны правки». Сотрудник увидит понятное сообщение: «Добавьте квоту на отель, прежде чем заявка пойдёт в финансы». Менеджеру не придётся отклонять всю поездку только ради одного файла.
Добавьте вторую проблему. Менеджер согласен на поездку, но не на всю сумму. Он одобряет перелёт и одну ночь в отеле, но отклоняет платную мастерскую и вторую ночь в отеле.
И тут многие команды обнаруживают, что у них нет процесса частичного одобрения.
Если workflow не умеет одобрять только часть заявки, люди начинают обходные пути. Может быть, отклоняют всю заявку и просят сотрудника подать её заново. Или финансы по ошибке одобряют целиком, потому что система хранит только одно да/нет решение.
Более ясная модель отслеживает каждую статью расходов или хотя бы итог одобренной суммы. Заявка может показывать:
- Перелёт: одобрен
- Отель: одобрен на 1 ночь
- Дополнительная мастерская: не одобрено
- Всего запрошено: $1,450
- Всего одобрено: $980
Этот пример показывает, что ошибки в процессах согласования часто связаны не с небрежностью людей, а с отсутствием правил. Если определить эти правила до проектирования экранов, остальной поток становится проще доверять.
Проектируйте исключения до экранов
Хороший способ улучшить рабочий процесс — предположить, что заявка пройдёт не идеально. Это одно изменение быстро повышает качество дизайна.
Начните с грязных случаев: форма неполная, политика неясна, согласующий отсутствует или только часть заявки должна продолжить движение. Большинство команд может сгруппировать это в три основных паттерна:
- отклонение
- отсутствие информации
- частичное одобрение
Это делает работу управляемой. Вместо того чтобы придумывать ответ на каждый граничный случай, вы определяете небольшой набор паттернов и применяете их ко всем типам заявок.
Работайте в таком порядке.
Сначала перечислите все точки, где заявка может остановиться. Подумайте о недостающих документах, неверных значениях, нарушениях политики, истёкших сроках, дублирующихся отправках и ручной проверке. Если заявка может ждать, провалиться или вернуться отправителю — запишите это.
Дальше решите, что происходит в каждом случае. Для каждого исключения ответьте на четыре простых вопроса:
- кого уведомляют
- какой статус показывает заявка
- что должен сделать пользователь дальше
- когда заявка снова двинется
Например, представьте, что сотрудник отправил расход на $600, но не приложил квитанцию за отель, а один приём пищи превысил лимит. Если проектировать только идеальный путь, заявка либо застрянет, либо будет отклонена целиком. Если спроектировать исключения заранее, система может приостановить претензию по отсутствующему чеку, уведомить сотрудника понятным сообщением и при этом условно одобрить разрешённые позиции.
Именно здесь правила частичного одобрения важны. Надо решить, может ли одобренная сумма двигаться дальше сейчас, останется ли остальное в удержании и может ли заявитель редактировать только спорную часть или нужно подавать заново весь кейс.
Если вы строите процесс в AppMaster, это тот момент, когда стоит замапить ветки в бизнес-логике до полировки интерфейса. Гораздо проще доверять рабочему процессу, когда отклонение, возврат на доработку и условное одобрение — это отдельные пути, а не скрытые варианты за одной расплывчатой меткой.
Наконец, протестируйте один реальный сценарий от начала до конца. Используйте реальные суммы, одну реальную пробоину в документах и одно нарушение политики. Если человек, читающий поток, не может понять, что будет дальше за минуту, дизайн всё ещё слишком расплывчатый.
Определите правила до интерфейса
Экраны кажутся осязаемыми, поэтому команды часто начинают с них. Они набрасывают кнопки, формы и дашборды прежде, чем договорятся о правилах. Это обычно создаёт проблемы, потому что интерфейс начинает скрывать решения, которые никто фактически не принял.
Лучший порядок прост: сначала определите статусы, передачи ответственности, сроки и доказательства, необходимые для продвижения. Затем стройте экраны вокруг этого.
Проектирование путей исключений становится проще, когда набор правил мал и ясен. Если заявка может быть одобрена, отклонена, возвращена на правку или частично одобрена, этим состояниям нужны простые названия с однозначным смыслом. Избегайте почти‑дубликатов вроде «Возвращено», «Переоткрыто» и «Нужны изменения», если они действительно не ведут себя по‑разному.
Возьмите заявку на покупку. Менеджер открывает её и замечает отсутствие квоты. Если команда не решила, что делать дальше, люди импровизируют. Один менеджер отклонит, другой оставит в ожидании, третий отправит сообщение в чат и ничего не поменяет в системе. Вскоре никто не доверяет статусу.
Напишите правило первым. Когда квота отсутствует, заявка переходит в «Нужны документы». Следующий шаг за заявителем. Заявка остаётся там пять рабочих дней. Если ничего не пришло, она переходит в «Просрочено» и требуется новая отправка.
Это одно правило формирует продукт лучше, чем макет. Теперь понятно, что должен видеть пользователь, какое напоминание отправлять и какую историю хранить.
Практический набор правил должен отвечать на четыре вопроса:
- Какие немногие названия статусов будут использоваться каждый день?
- Кто действует дальше в каждом статусе?
- Сколько объект может там оставаться до эскалации, истечения или закрытия?
- Какие поля, файлы или проверки требуются, чтобы пройти дальше?
Частичные одобрения требуют той же тщательности. Если поездка одобрена, а стоимость отеля — нет, может ли заявитель редактировать ту же запись или создать новую? Пересматривает ли финансы только изменённую часть или всё заново? Если это не решить заранее, экран может выглядеть аккуратно, а процесс за ним останется неряшливым.
Когда команды сначала договариваются о правилах, интерфейс становится проще. Главное — пользователи точно знают, что делать дальше, даже если ответ «пока не одобрено».
Пишите сообщения, по которым можно действовать
Плохое сообщение об исключении только замедляет работу. Людям нужно не просто знать, что что‑то не получилось. Им нужно понять, что произошло, на что это влияет и что делать дальше.
Здесь дизайн становится реальным для пользователей. Внутренние правила могут быть чёткими, но если экран говорит только «Ошибка» или «В ожидании проверки», люди будут гадать, снова отправлять неверные файлы или просить поддержки.
Возьмём пример с одобрением поставщика. Пользователь отправил налоговый документ, банковские реквизиты и страховое подтверждение. Банковские данные в порядке, налоговый документ устарел, страховое подтверждение отсутствует. Если система просто показывает «Заявка не одобрена», у пользователя нет понятного следующего шага.
Лучшее сообщение будет звучать так: «Ваши банковские реквизиты одобрены. Нам всё ещё нужен обновлённый налоговый документ и страховое подтверждение для окончательного одобрения.» Эта фраза экономит время, потому что отделяет уже выполненное от того, что ещё нужно.
Хорошие сообщения обычно отвечают на четыре вопроса:
- Какая часть отклонена, отсутствует или ещё на проверке?
- Какая часть уже принята?
- Что нужно загрузить, изменить или подтвердить?
- Что произойдёт после повторной отправки?
Последняя часть важна. Люди с большей вероятностью завершат задачу, когда следующий шаг очевиден. «Загрузите недостающий файл и отправьте на повторную проверку» гораздо лучше, чем «Требуется действие».
Расплычатые метки создают тревогу. «В ожидании проверки» может означать, что ждут человека, нет данных или идёт внутренняя проверка. Если известна причина, скажите её прямо. «Ожидание менеджерского одобрения» и «Ожидание подтверждения адреса» — это разные ситуации и не должны выглядеть одинаково.
Если процесс допускает частичное одобрение, показывайте это прямо в статусе. Краткая разбивка часто работает лучше одной метки:
- Одобрено: документ удостоверения
- Нужна правка: налоговая форма
- Отсутствует: страховой сертификат
Теперь пользователь может исправить только то, что важно. Ему не нужно начинать заново.
Также сделайте повторную отправку удобной: разместите следующий шаг рядом с сообщением, а не на другом экране. В AppMaster полезно, чтобы видимый текст статуса совпадал с реальным состоянием бизнес-процесса, чтобы приложение точно говорило, что делает workflow.
Хорошие сообщения сокращают обращения в поддержку, ускоряют согласования и делают процесс более справедливым. Люди легче принимают отклонение, когда понимают причину.
Ошибки, которые создают доработку
Большая часть доработок возникает из одной неправильной предпосылки: нормальный путь — это главное, что нужно проектировать. Команды картируют «заявка отправлена, одобрена, завершена» и останавливаются. Потом приходит реальная жизнь: файл отсутствует, менеджер хочет изменения или только часть заявки может двигаться дальше.
Этот разрыв быстро порождает лишнюю работу. Люди придумывают ручные исправления, отправляют боковые сообщения и переименовывают статусы на ходу. Через несколько недель никто не доверяет процессу, потому что каждое исключение кажется уникальным.
Одна частая ошибка — считать идеальный путь продуктом, а всё остальное — мусором. Представьте затратную заявку, где нужны квитанция, согласование департамента и проверка финансов. Если квитанция отсутствует, заявка приостанавливается, возвращается сотруднику или отклоняется? Если это правило не прописано, команда обычно дополняет его позже письмами и комментариями.
Запутанные названия статусов приводят к новой волне доработок. Ярлыки вроде «На проверке 2» или «Ожидает действия» вынуждают людей гадать, что будет дальше. Чёткие названия уменьшают ошибки, потому что показывают проблему, владельца, исход или следующий шаг.
Владение процессом — ещё одна точка провала. Нельзя оставлять заявку в статусе, который никому не принадлежит. Если дело ждёт, кто‑то должен отвечать за продвижение, запрос дополнительной информации или закрытие. Иначе накапливаются молчаливые задержки, и пользователи думают, что система потеряла их заявку.
Частичные одобрения тоже часто обрабатывают плохо. Команды приравнивают их к полному отклонению, потому что это проще. Но результаты разные. Если по поездке одобрен перелёт и отель, а питание — нет, нужен отдельный путь, отдельное сообщение и часто отдельное последующее действие.
Когда частичное одобрение смешивают с отклонением, люди подают заявку заново, дублируют документы и заново запускают проверки, которые уже были сделаны. Это чистая доработка.
Простой тест помогает: прочитайте каждый не‑идеальный статус и спросите: «Кто отвечает за это, что видит пользователь и что происходит дальше?» Если ответ расплывчат, процесс, скорее всего, сломается в этом же месте.
Быстрая проверка перед сборкой
Прежде чем создавать экраны и автоматизировать что‑то, ещё раз пройдитесь по грязным случаям. Хорошее проектирование путей исключений часто сводится к нескольким ясным решениям, принятым заранее, прежде чем путаница превратится в доработку.
Если заявка отклонена, приостановлена или только частично одобрена, кто‑то всегда должен знать, что происходит дальше, кто это сделает и какая информация ещё нужна.
Используйте этот чек‑лист для каждого исключения в процессе:
- у каждого исключения есть владелец;
- каждый статус ведёт к одному понятному следующему шагу;
- недостающие элементы названы простым языком;
- для частичных одобрений есть правила, а не предположения;
- сроки понятны.
Затем проведите простой тест. Передайте процесс человеку, который не участвовал в дизайне. Дайте ему отклонённую заявку и заявку с одним недостающим документом. Если он не сможет сказать, что делать, меньше чем за минуту, процесс всё ещё слишком расплывчат.
Небольшой пример наглядно это иллюстрирует. Представьте, что менеджер одобрил программное обеспечение, но отклонил аппаратную часть. Если статус просто «Частично одобрено», сотрудник может предположить, что всё можно продолжать. Лучший статус говорит точно, что одобрено, что отклонено и можно ли отправить недостающую часть повторно.
Если вы хотите превратить эти правила в реальное внутреннее приложение, сначала замапьте состояния исключений, а затем стройте идеальный путь. В AppMaster это обычно значит определить статусы, бизнес‑правила и обязательные поля перед тем, как доводить экраны. Это практичный подход к созданию приложений без кода, которые работают с реальной работой, а не только с её идеальной версией.
Следующий шаг прост: перечислите пять главных исключений, назначьте владельца для каждого и напишите сообщение, которое должен увидеть пользователь. Когда эти три части ясны, сборка обычно идёт намного легче.
Вопросы и ответы
Потому что реальные задержки обычно возникают, когда чего-то не хватает, что-то неясно, опаздывает или частично одобрено. Если проектировать только чистый сценарий, люди будут решать проблемы через чат, электронную почту и ручные обходные решения.
Начните с наиболее частых случаев: отклонение, отсутствие информации и частичное одобрение. Затем добавьте ситуации с зависанием, например заявку без владельца или без определённого следующего шага.
Используйте небольшой набор понятных состояний, каждое из которых означает только одно. Практический набор по умолчанию: одобрено, отклонено, нужно предоставить документы, нужно внести изменения, частично одобрено и просрочено (если используются сроки).
Пользователь должен точно видеть, чего не хватает и что делать дальше. Хорошая практика — переводить заявку в состояние «Нужны документы», чётко называть недостающие элементы и возвращать заявку ответственному вместо полного отклонения.
Обрабатывайте частичные одобрения как отдельный путь, а не как полное отклонение. Показывайте, что было одобрено, что отклонено, новый одобренный итог (если применимо), и указывайте, может ли заявитель принять изменения, отредактировать заявку или дослать только спорную часть.
У каждого статусного ожидания должен быть хозяин и правило по времени. Если рецензент отсутствует или заявка слишком долго простаивает, процесс должен эскалировать, переназначать или закрывать заявку, а не оставлять её навсегда неподвижной.
Полезное сообщение отвечает на простые вопросы: какая часть отклонёна или отсутствует, что уже принято, что нужно загрузить или изменить и что произойдёт после повторной отправки. Короткое, конкретное направление действий обычно решает проблему быстрее, чем общие метки вроде «Требует внимания».
Сначала определите правила. Согласуйте статусы, владельцев, сроки, требуемые файлы и последовательность действий, а уже затем рисуйте кнопки и панели. Интерфейс должен отражать принятые решения, а не скрывать их.
Протестируйте один реальный сценарий от начала до конца с конкретными числами, одним реальным пробелом в документах и одним нарушением политики. Если человек, не участвовавший в проектировании, не поймёт, что делать дальше за минуту, процесс всё ещё слишком расплывчатый.
Смоделируйте состояния исключений в бизнес-логике до полировки интерфейса. В AppMaster это значит определить статусы, обязательные поля, владельцев и ветви вроде «отклонить», «вернуть на доработку» и «частично одобрить» прежде чем приводить экран в порядок.


