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

Это условный пример, но технически в нём нет ничего необычного. Агент мог сохранить задание в очереди, получить отдельный сервисный токен и дождаться ответа внешней системы. Закрытие проекта в таск-трекере само по себе не отменяет ни одно из этих обстоятельств.
Поэтому завершение работы с ИИ требует отдельной процедуры: остановить действующие полномочия, разобраться с незавершёнными действиями и проверить результат на стороне подключённых сервисов. Для интегратора эта процедура должна стать частью сдачи проекта. Для заказчика — способом убедиться, что у законченной работы действительно есть конец.
У обычного сотрудника полномочия часто связывают с учётной записью. У агента цепочка сложнее: руководитель поручил задачу, подрядчик настроил сценарий, платформа запустила исполнение, а CRM увидела запрос от технического пользователя. Кому принадлежит действие в момент закрытия проекта?
Ответ нужен до запуска. Каждое задание следует связывать с проектом, инициатором, ответственным владельцем и разрешением, на основании которого оно выполняется. Технический пользователь отвечает на вопрос «какие учётные данные использованы». Владелец отвечает на другой вопрос: «кто может разрешить продолжение этой работы».
Представим, что агент готовит еженедельную выгрузку. Подрядчик настроил процесс и ушёл, но выгрузка нужна штатному отделу. Её не обязательно уничтожать вместе с доступом подрядчика. Сначала заказчик принимает сценарий, назначает владельца, выдаёт собственное разрешение и проверяет подключения. После этого старые полномочия отзываются.
Без такого разделения возникают две одинаково неприятные ситуации. Либо вместе с проектом останавливаются полезные процессы заказчика, либо временные разрешения незаметно превращаются в постоянные.
На экране агент может выглядеть единым собеседником. Внутри работают несколько независимых механизмов: расписание создаёт запуск, очередь хранит задания, обработчик обращается к инструментам, а внешний сервис выполняет запрос. Остановка одного компонента не гарантирует остановку остальных.
Особенно опасен незаметный промежуток между проверкой права и фактическим действием. Агент получил разрешение утром, подготовил документы днём, а вечером отправил их после завершения проекта. Формально старая проверка была успешной. Практически действие уже не должно было состояться.
Права нужно проверять перед значимым внешним действием, а не только при получении сообщения. В проверку входят статус проекта, разрешённая операция, конкретный объект и актуальность согласования. Такое правило относится и к повторным попыткам: вчерашний сбой не даёт права выполнить запрос сегодня.
Для этого удобно хранить версию разрешения. Например, задание создано при версии 12, а при закрытии проекта действует версия 13 с запрещённой записью в CRM. Обработчик обнаруживает несовпадение и передаёт задание на проверку. Номер здесь — иллюстрация механизма, а не требование к конкретному продукту.
Но версия помогает только там, где её действительно проверяют. Если обработчик обращается во внешнюю систему напрямую по долгоживущему ключу, центральный запрет можно обойти случайно — без всякого злого умысла. Поэтому маршруты выполнения и прямые подключения тоже входят в инвентаризацию.
Закрытие удобно разделить на два момента. В первый прекращается выдача новых полномочий и устанавливается запрет на новые действия проекта. Во второй команда подтверждает, что незавершённые операции разобраны и подключения отозваны.
Между ними проект находится в понятном переходном состоянии. Он уже не запускает обычную работу, но ещё не объявлен полностью остановленным. Администраторы могут завершать проверку, читать журналы и выполнять специально разрешённые действия по закрытию.
Это важнее красивой зелёной галочки. Если внешний сервис недоступен и проверить отзыв ключа нельзя, честный статус — «закрытие не подтверждено». Задача остаётся у ответственного человека с понятным следующим шагом.
Вот что стоит включить в рабочую ведомость закрытия:

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

Наша система сама подберет вам исполнителей на услуги, связанные с разработкой сайта или приложения, поисковой оптимизацией, контекстной рекламой, маркетингом, SMM и PR.
Заполнить заявку
13827 тендеров
проведено за восемь лет работы нашего сайта.
Согласование часто воспринимают как бессрочное «да». Руководитель одобрил выгрузку, агент несколько часов собирал данные, а затем проект закрыли. Можно ли отправлять результат по старому подтверждению?
Если разрешение относится к закрытому проекту, оно должно перестать действовать. Иначе человек вынужден вспоминать каждое своё прошлое нажатие. Согласование стоит связывать с конкретным действием, составом получателей, версией содержимого и сроком исполнения.
После изменения этих условий нужно новое подтверждение. При закрытии проекта незавершённые согласования либо отменяются, либо передаются новому владельцу с повторной проверкой. Копирование старой отметки «согласовано» в новый процесс подменяет передачу ответственности.
Это касается и утверждённых пакетных операций. Разрешение обработать список из ста объектов не обязательно допускает продолжение после отзыва прав. Нужно заранее решить, проверяются полномочия перед каждым объектом или на иной безопасной границе, и какой частичный результат считается допустимым.
В условном проекте агент должен вечером отправить подготовленный отчёт. В 18:00 администратор начинает закрытие, а обработчик в это же время получает задание. Если один компонент уже увидел запрет, а другой ещё пользуется старым состоянием, обе стороны могут считать свои действия правильными.
Для чувствительных операций полезно проводить выдачу разрешения на отправку и изменение статуса проекта через согласованную точку контроля. Например, обработчик сначала регистрирует попытку действия, проверяя актуальное состояние проекта, а закрывающая процедура видит все зарегистрированные попытки. Конкретная реализация зависит от архитектуры, но требование одинаково: нельзя потерять действие между «ещё разрешено» и «уже запрещено».
Это не создаёт общей транзакции с чужой CRM. Если сеть приняла запрос за мгновение до запрета, внешняя система может закончить его позже. Такой запрос попадает в список операций, судьбу которых нужно выяснить. Обещать абсолютное отсутствие изменений после выбранной секунды можно лишь при наличии соответствующих гарантий на всём пути исполнения.
Полезно отдельно определить допустимое время остановки. Для чтения внутреннего отчёта и отправки документов клиенту оно может различаться. Если команда не знает, сколько живёт закэшированное разрешение и как быстро исполнитель замечает запрет, она не может осмысленно подтвердить завершение.
Проверка здесь вполне практическая: запустить безопасное задание одновременно с закрытием и посмотреть, какое конечное состояние получилось. Каждая попытка должна либо получить отказ, либо оказаться в учтённом списке начатых действий. Исчезнувшая из интерфейса операция не считается отменённой.
Удаление секрета из настроек платформы само по себе не отзывает доступ. Работающий обработчик может продолжить использовать уже загруженный секрет, а внешний сервис — принимать выпущенный ранее токен.
При закрытии нужно разобраться с моделью доступа конкретного сервиса: чем выдан токен, можно ли отозвать его немедленно, существуют ли связанные токены обновления и сколько распространяется изменение прав. В некоторых схемах отзыв возможности обновлять токен не делает уже выданный токен доступа недействительным в ту же секунду.
Поэтому фиксируют не только успешный ответ на команду отзыва, но и проверку ожидаемого отказа. Для такой проверки выбирают безопасную операцию, которая обращается к нужному ресурсу и не меняет данные. Проверять блокировку записью в реальную карточку клиента — плохой способ завершать проект.
С общими ключами требуется особая осторожность. Если одним подключением пользуются несколько подразделений, его внезапное отключение остановит чужую работу. Это повод разделить доступы и перевести оставшиеся процессы на новые учётные данные, а не оставить старый ключ без владельца.
Временная ссылка тоже является доступом. Срок в её параметрах не всегда означает, что её можно индивидуально отозвать. Возможности зависят от хранилища и способа подписи. Иногда требуется запрет на сам объект или отзыв подписавших учётных данных; иногда достаточно встроенного механизма отзыва. Удаление сообщения со ссылкой не отменяет уже полученную копию адреса.
Для файлов, отправленных наружу, появляется ещё одна граница: запрет будущего скачивания не удаляет уже скачанный экземпляр. В ведомости следует фиксировать именно достигнутый результат, без формулировки «доступ полностью устранён», когда проверено только отключение ссылки.
Проверять лучше не отсутствие активности на экране, а отказ выполнить конкретное запрещённое действие. Оставьте тестовое задание закрытого проекта, перезапустите обработчик и убедитесь, что он не возобновляет работу по сохранённой истории.
Затем повторите безопасную проверку через канал, которым пользовался агент: событие вебхука, запоздавшее согласование или повторную доставку задания. Здесь нужен заранее подготовленный тестовый объект. Создавать риск для настоящих клиентов ради доказательства безопасности не требуется.
Отдельно проверьте границы сохранённых разрешений. Проект может потерять право изменять данные, но сохранить доступ к журналу для разбора выполненной работы. Это допустимо, если такой режим согласован и ограничен. Случайно сохранённый режим администратора под видом архива — уже другой результат.
Свидетельством закрытия становится короткая запись: какие полномочия отозваны, когда установлен запрет, какие задания отменены, какие действия успели завершиться, где результат неизвестен и кто разбирает исключения. К ней прикладывают идентификаторы проверок, а не копии секретов.
Начните с инвентаризации всех исполнителей и подключений. Назначьте владельцев процессам, которые останутся у заказчика. Затем запретите новые запуски и действия закрываемого проекта, отмените его согласования и разберите незавершённые операции.
После этого отзовите внешние доступы, проверьте ожидаемые отказы и повторите проверку после перезапуска. Завершайте процедуру, когда исключения переданы ответственным, а оставшаяся работа получила новые полномочия. Такой порядок можно включить в критерии приёмки ещё на старте интеграции.
Когда агентные сценарии собраны из независимых ботов, таблиц и скриптов, у каждого появляется собственное представление о том, что проект ещё открыт. Руководитель закрывает доступ в одном месте, а ещё три исполнителя продолжают жить по прежним правилам.
Единая агентная ИИ-платформа полезна общим учётом заданий, владельцев, разрешений и точек исполнения. В работе над AiHummer мы рассматриваем агентную автоматизацию именно как часть управляемого бизнес-процесса. При выборе любой платформы заказчику стоит проверять, можно ли проследить весь путь конкретного поручения и остановить его по понятному правилу.
При этом платформа не отменяет самостоятельность внешних систем. CRM, почта и файловое хранилище могут потребовать отдельных действий администратора. Ценность единого управления — видеть эти зависимости, проводить проверку и сохранять доказательства результата.
На ближайшей встрече по действующему проекту выберите одно долгое поручение и задайте вопрос: что произойдёт, если сегодня отозвать его разрешение? Найдите ответ в исполнителе, очереди и подключённом сервисе. Если ответ известен только человеку, который когда-то настроил интеграцию, процедуру завершения ещё предстоит построить.