03 февр. 2026 г.·6 мин

Маршрутизация по порогам для гибких правил согласования

Маршрутизация по порогам позволяет хранить правила согласования в таблицах по сумме, отделу или региону, чтобы изменения политики не требовали правок в коде.

Маршрутизация по порогам для гибких правил согласования

Почему жестко прописанные правила согласования перестают работать

Жестко прописанные правила согласования кажутся нормальными в начале. Разработчик добавляет несколько условий, процесс запускается, и команда переходит к другим задачам.

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

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

Скрытые исключения усугубляют ситуацию. Со временем команды добавляют одноразовые правила вроде «если сумма больше 5 000 и отдел — Sales, отправить директору A» или «если запрос из Европы — пропустить этот шаг». Когда такие правила спрятаны глубоко в рабочем процессе, их видят лишь немногие.

Тогда простые вопросы становятся сложными:

  • Кто утверждает покупки выше определённой суммы?
  • Следует ли Marketing той же политике, что и Operations?
  • Что происходит в другом регионе?
  • Какое исключение добавили в прошлом квартале?

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

Именно поэтому маршрутизация по порогам работает лучше при частых изменениях политик. Вместо того чтобы считать правила фиксированной частью приложения, их хранят как бизнес‑данные, которые можно просмотреть и обновить.

Представьте простую политику по расходам. Запросы до $1,000 идут к тимлиду, от $1,000 до $10,000 — к руководителю отдела, а всё, что выше — в финансы. Если эти лимиты изменятся в следующем месяце, бизнес не должен привлекать разработчика только чтобы согласования продолжали проходить.

Жёсткая привязка правил превращает обычные обновления политики в программный проект. Вот где скрытая цена.

Что значит маршрутизация по порогам

Маршрутизация по порогам означает, что путь согласования меняется в зависимости от заранее заданных значений. Порог — это просто граница, например сумма выше $1,000, запрос из отдела Finance или покупка, сделанная в Европе.

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

Базовая настройка может выглядеть так:

  • Запросы до $500 идут к тимлиду.
  • Запросы от $500 до $5,000 идут к менеджеру отдела.
  • Запросы выше $5,000 идут к директору.
  • Запросы HR следуют одному пути, а IT — другому.
  • У Северной Америки и EMEA могут быть разные утверждающие.

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

Разделяйте логику и политику

Это ключевая идея. Логика — это часть, которая говорит: «проверь правила и выбери первое совпадение». Данные политики — это сам список правил: диапазоны сумм, отделы, регионы, утверждающие и приоритет.

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

Например, если Sales в APAC теперь требует одобрения директора при сумме выше $3,000 вместо $5,000, вы обновляете одну запись в таблице. Не нужно перестраивать весь процесс согласования.

Это проще в управлении, потому что политика меняется чаще, чем структура процесса. Команды реорганизуются, бюджеты сдвигаются, регионы получают новых владельцев. Таблица справляется с этим лучше, чем жестко прописанные условия.

В no-code платформе, такой как AppMaster, это обычно означает создание таблицы правил и проверку её бизнес‑процессом во время выполнения. Модель понятна нетехническим пользователям, потому что соответствует реальному описанию политики: если условие совпадает — отправить сюда.

Что включить в вашу таблицу правил

Хорошая таблица правил должна отвечать на простой вопрос: когда запрос совпадает с этими условиями — кто должен его утвердить?

Если маршрутизация зависит от значений, спрятанных в коде, каждое обновление политики превращается в перестройку. Таблица делает изменения видимыми и проще управляемыми.

Практическая таблица обычно начинается с полей, описывающих запрос:

  • сумма
  • валюта
  • отдел
  • регион
  • тип запроса
  • роль утверждающего

Сумма и валюта важны, потому что одно и то же число может означать разное в разных бюджетах или странах. Запрос на 5,000 USD может пойти по одному пути, а 5,000 EUR или 500,000 JPY — по другому.

Отдел и регион отражают реальную организацию компании. Finance, HR и Operations часто имеют разные пути согласования даже для одинаковых расходов. Регион тоже важен, когда локальные правила или менеджеры отличаются.

Тип запроса — ещё один полезный фильтр. Командировки, покупка софта, выплаты поставщикам и скидки могут требовать разных утверждающих. Без этого поля разные по сути запросы могут использовать одно и то же правило.

Для утверждающего храните роль вместо имени. Используйте значения вроде Department Manager, Regional Director или Finance Controller. Когда человек меняет должность, вы обновляете назначение роли один раз, а не редактируете каждое правило.

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

Поле приоритета тоже стоит добавить. Правило «EU + Finance + >10,000» обычно должно выигрывать у более общего правила «все отделы + >10,000». Чёткий приоритет делает маршрутизацию предсказуемой.

Как структурировать таблицу

Держите структуру простой: одна строка должна означать одно правило согласования.

Если расходы на маркетинг выше $2,000 в Европе требуют регионального менеджера, это должно быть в одной записи. Когда каждая строка имеет ясный смысл, настройку проще обновлять, тестировать и аудировать.

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

Практичная раскладка

Чистая таблица часто включает такие поля:

  • ID правила или название правила
  • статус активности, а также опциональные даты начала и окончания
  • поля условий, такие как минимальная сумма, максимальная сумма, отдел, регион и тип запроса
  • поля результата, такие как роль утверждающего, пользователь‑утверждающий или следующий шаг
  • приоритет и флаг правила по умолчанию

Для колонок условий используйте точные значения вместо свободного текста, когда возможно. ID отдела безопаснее, чем постоянный ввод «Finance». То же относится к кодам регионов, типам запросов и центрам затрат. Небольшие справочники для отделов, регионов и ролей утверждающих помогают избежать опечаток и упрощают фильтрацию.

Для колонок результата решите, что должен возвращать процесс. В одних командах правило указывает на конкретного человека, в других — направляет на роль, например Regional Manager или Finance Director. Выберите один подход и придерживайтесь его.

Приоритет важен, потому что несколько правил могут совпасть с одним запросом. Не полагайтесь на порядок строк или дату создания. Добавьте числовое поле приоритета и определите логику его работы, например 1 проверяется первым, 100 — позже.

Нужен также запасной (fallback) правило. Это страховочная сетка для всего, что не покрыто конкретной строкой. Правило по умолчанию может отправлять несоответствующие запросы менеджеру операций или в очередь административного контроля. Без этого запросы могут застрять без маршрута.

Если вы строите это в AppMaster, эти таблицы можно редактировать визуально, поэтому изменения политики происходят в данных, а не в жёстко прописанных ветках рабочего процесса.

Как настроить

Постройте полноценное решение
Создайте бэкенд, веб- и мобильные приложения для рабочих процессов согласования в одной платформе.
Создать приложение

Начните с принятия решения, а не с самой таблицы. Выпишите точные вопросы, на которые должен отвечать ваш процесс. Нужна ли подпись для покупок выше $5,000? Проверяет ли Finance всё от Sales? Следуют ли запросы из одного региона другому пути?

Когда эти решения ясны, маршрутизация по порогам становится проще, потому что вы храните политику, а не пытаетесь угадать логику позже.

Простая настройка обычно проходит пять шагов.

Во‑первых, создайте таблицу правил согласования с полями, влияющими на маршрутизацию. Частые колонки: amount_min, amount_max, department, region, approver_role, priority и active_status.

Во‑вторых, решите, какие поля можно оставлять пустыми. Пустой отдел или регион может означать «это правило применяется ко всем», когда более конкретных совпадений нет.

В‑третьих, добавляйте правила от самых специфичных к более общим. Правило «Sales + Europe + >10,000» должно проверяться раньше, чем широкое правило «любой отдел + любой регион + >10,000».

В‑четвёртых, тестируйте на реальных примерах до запуска. Используйте граничные случаи: ровно $5,000, отсутствующие данные об отделе или регион без специального правила.

В‑пятых, ограничьте круг людей, которые могут редактировать таблицу. Изменения политики должны быть простыми, но не доступными всем.

Вот простой пример. Запрос на $12,000 из HR в Северной Америке может сначала совпасть с правилом «HR > $10,000», которое отправит его директору HR. Если HR‑специфического правила нет, система может откатиться к более общему правилу «любой отдел > $10,000», которое отправит запрос в финансы.

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

Перед запуском назначьте владельца изменений правил, ведите короткий документ политики и тестируйте после каждого обновления. Небольшие изменения маршрутизации могут иметь большие последствия.

Простой пример на практике

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

Допустим, в компании два отдела: Marketing и IT. Оба могут подать запрос на $4,000, но путь согласования может отличаться.

DepartmentRegionAmount rangeApprover
MarketingUS$0 to $5,000Marketing Manager
MarketingUS$5,001+Finance Director
ITUS$0 to $3,000IT Manager
ITUS$3,001+CTO
MarketingEU$0 to $5,000Regional Marketing Lead

Теперь сравните два запроса с одинаковой суммой. Запрос Marketing на $4,000 в США идёт к Marketing Manager. Запрос IT на $4,000 в США пропускает IT Manager и идёт к CTO, потому что у IT более низкий порог.

Регион тоже может менять результат. Запрос Marketing на $2,500 в США идёт к Marketing Manager, а тот же запрос в EU — к Regional Marketing Lead. Форма остаётся та же. Меняется только совпадающее правило.

Вот реальная ценность таблицы правил: политика живёт в данных, а не в логике процесса.

Если в следующем месяце компания обновит политику, не потребуется переделывать весь процесс. Если IT решит, что теперь запросы выше $2,000 должны идти к CTO, вы просто правите одну строку:

  • Старое правило: IT, US, $3,001+, CTO
  • Новое правило: IT, US, $2,001+, CTO

Всё остальное продолжит работать. Новые запросы сразу следуют обновлённой политике, а структура приложения остаётся нетронутой.

Распространённые ошибки, которых стоит избегать

Держите политику вне кода
Храните пороги, отделы и ответственных как данные, которые может менять ваша команда.
Начать сборку

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

Одна из распространённых ошибок — перекрывающиеся правила без явного приоритета. Может быть правило, отправляющее все запросы Marketing выше $3,000 руководителю отдела, и другое правило, отправляющее любые запросы выше $5,000 в финансы. Запрос на $6,000 в Marketing совпадает с обоими, поэтому системе нужен явный победитель. Поместите приоритет в таблицу правил, а не в скрытую логику процесса.

Ещё одна ошибка — хардкодить людей вместо ролей или групп. Люди меняются, команды реорганизуются, кто‑то уходит в отпуск. Если правило говорит «отправить Марии Лопес», вы будете править его при каждом кадровом изменении. Безопаснее направлять по роли, например Regional Finance Manager, и сопоставлять роль с текущим сотрудником.

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

Региональные исключения — ещё одно слабое место. Политика, работающая в одной стране, может не подходить для другой из‑за локальных лимитов, налогов или требований отчётности. Если тестировать только один регион, вы можете пропустить кейсы, где EU, US или APAC должны идти по разным путям.

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

Последние проверки перед запуском

Повторно используйте один и тот же шаблон
Когда один поток работает, тот же шаблон можно применить к другим внутренним процессам.
Создать процесс

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

Держите финальную проверку простой.

Убедитесь, что для обычного запроса есть одно чёткое совпадение. Если одновременно могут применяться два правила, результаты будут непоследовательными.

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

Подтвердите, что обновления политики можно делать без разработчика. Если Finance или Operations должны менять лимиты, даты или утверждающих, они должны иметь возможность редактировать записи в таблице, а не просить код‑изменение.

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

Опишите логику маршрутизации на одной странице простым языком. Если менеджер не может объяснить её ясно, вероятно, она слишком сложна.

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

Следующие шаги

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

Такой подход делает модель маршрутизации более доверительной. Люди видят, как работают правила, где появляются исключения и что нужно менять до масштабирования.

Первый запуск должен ответить на четыре вопроса:

  • Какой тип запроса автоматизируем первым?
  • Какие поля управляют маршрутизацией: сумма, отдел или регион?
  • Кто сегодня утверждает каждый случай?
  • Кто будет обновлять правила при изменениях политики?

Последний пункт очень важен. Если нет явного владельца обновлений политики, рабочий процесс постепенно расходится с реальными бизнес‑правилами. Назначьте одного человека или небольшую команду, которая будет просматривать изменения правил, одобрять правки и вести краткую запись причин.

Также полезно установить расписание проверок. Если политики часто меняются, пересматривайте правила ежемесячно. Если процесс стабилен — достаточно квартального обзора. Короткая проверка поможет заметить устаревшие пороги, пропущенные отделы или региональные исключения до того, как они начнут тормозить работу.

Держите ревью практичным. Задавайте простые вопросы: идут ли утверждения к правильным людям, изменилась ли структура команд, соответствуют ли лимиты текущей финансовой политике и слишком ли много ручных обходов?

Если хотите строить это визуально, AppMaster хорошо подходит для создания таблицы правил, процесса маршрутизации и админских экранов, где нетехнический персонал управляет политиками. Платформа ориентирована на полноценные no-code приложения, поэтому бизнес‑команды могут сами вносить изменения, не отправляя каждое обновление разработчикам.

Когда один поток работает стабильно, повторяйте тот же шаблон в следующих процессах. Небольшие и понятные шаги обычно работают лучше, чем глобальная переделка.

Вопросы и ответы

Что такое маршрутизация по порогам?

Это означает, что приложение выбирает путь согласования на основе данных из таблицы правил, а не закреплённых веток рабочего процесса. Например, сумма, отдел или регион решают, кто утверждает запрос, и вы можете менять эти значения в таблице без перестройки процесса.

Почему жестко прописанные правила согласования — проблема?

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

Что стоит поместить в таблицу правил согласования?

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

Хранить ли имена утверждающих или их роли?

Лучше хранить роли. Если маршрут ведёт к роли, например Finance Director или Department Manager, замена человека на другой должности требует обновления только привязки роли к человеку, а не всех правил.

Как справляться с перекрывающимися правилами?

Используйте явное числовое поле приоритета и определите правило выбора победителя. Система должна проверять более специфичные правила раньше, чтобы узкие правила вроде «EU + Finance + >10,000» выигрывали у общих «все отделы + >10,000».

Что если ни одно правило не соответствует запросу?

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

Могут ли нетехнические команды сами обновлять правила согласования?

Да, если система и интерфейсы устроены так. В AppMaster правила хранятся в таблицах, и бизнес-процесс читает их во время выполнения, поэтому уполномоченные сотрудники могут менять политику через админские экраны без правки кода.

Зачем добавлять даты начала и окончания у правил?

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

Как тестировать маршрутизацию по порогам перед запуском?

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

Как лучше начать использовать этот подход?

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

Легко начать
Создай что-то невероятное

Экспериментируйте с AppMaster с бесплатной подпиской.
Как только вы будете готовы, вы сможете выбрать подходящий платный план.

Попробовать AppMaster