Аудит-лог Яндекс 360 фиксирует создание, увольнение и блокировку сотрудника, но только отвечает на запросы: веб-хуков и подписки на события у API 360 нет. Разбираю, как узнать о кадровом событии вовремя и как это делает «+Альянс Поток».
Коротко
- В аудит-логе Яндекс 360 109 типов событий в девяти группах: входы, учётные записи сотрудников, организация, группы и подразделения, политики, ресурсы организации, Телемост, Мессенджер и Диск.
- Кадровые события в аудит-логе есть: создание, удаление, блокировка и разблокировка сотрудника, изменение его данных, добавление в подразделение и удаление из него.
- Сам аудит-лог ничего не присылает: в публичном API 360 нет ни подписки на события, ни вебхуков. Чтобы узнать о событии вовремя, журнал нужно регулярно опрашивать.
- Аудит-логи входят не во все тарифы Яндекс 360: «Минимальный» — один из тарифов без аудит-логов. Без аудит-логов остаётся сверять список сотрудников со снимком прошлого опроса по полю
updated_at. - «+Альянс Поток» опрашивает аудит-лог за администратора каждые 10 секунд и превращает события учётных записей в семь кадровых триггеров из 18; действий в каталоге — 18. Кадровые триггеры входят в тарифы начиная с «Бизнеса»; на «Старте» их нет.
С чего начинается разговор
Разговор про автоматизацию в Яндекс 360 не раз начинался у меня с одной фразы администратора: «Мне нужно, чтобы система сама узнавала, что человек пришёл или ушёл». А продолжался уверенным «в аудит-логе же всё есть».
Отчасти это правда. В аудит-лог попадает и создание учётной записи, и блокировка, и удаление. Но отвечает аудит-лог, только когда его спрашивают. Сам никому ничего не сообщает.
Если вам нужно вовремя узнавать о новых, заблокированных и уволенных сотрудниках, ниже есть список кадровых событий с кодами и схема опроса, которую можно собрать своими силами. Отдельно — какую часть этой работы забирает наш сервис «+Альянс Поток» и с какого тарифа.
Что такое аудит-лог Яндекс 360
Аудит-лог Яндекс 360 — это метод API, который по запросу отдаёт историю событий организации: GET https://cloud-api.yandex.net/v1/auditlog/organizations/{org_id}/events.
Приложению для этого метода нужно разрешение ya360_security:read_auditlog. Организация должна быть на тарифе с аудит-логами: сейчас это «Основной», «Продвинутый», «Корпоративный + Безопасность» и «Корпоративный Максимум». Остальные тарифы, например «Минимальный», в этот перечень не входят. С проверки тарифа и начните: от него зависит, будете вы опрашивать аудит-лог или сверять список сотрудников.
С чего начать в кабинете, включая аудит-логи, — в статье про админку Яндекс 360.
Сколько типов событий там на самом деле
Метод аудит-логов отдаёт 109 типов событий. Они разложены по девяти группам.
| Группа событий | Сколько типов | Про что события |
|---|---|---|
| Авторизация сотрудников | 6 | вход через браузер, по OAuth-токену, по паролю приложения; выход на всех устройствах; смена пароля |
| Учётные записи сотрудников | 10 | создание, удаление, блокировка, разблокировка, изменение данных, смена пароля администратором, алиасы, приглашения |
| Организация | 6 | смена владельца, изменение данных и настроек единого входа (SSO), домены |
| Группы и подразделения | 10 | создание, изменение и удаление групп и подразделений, добавление в них и удаление из них |
| Групповые политики | 7 | создание и изменение политик, добавление в них сотрудников, групп, подразделений и ресурсов |
| Ресурсы организации | 16 | общие и делегированные ящики, общие диски, офисы, переговорки, внешние контакты |
| Телемост | 17 | конференции и трансляции, уровни доступа, участники, комната ожидания |
| Мессенджер | 15 | чаты и их участники, файлы, удаление сообщений, звонки, скачивание архива данных |
| Диск | 22 | папки и файлы, просмотр и скачивание, публичные ссылки и права доступа, корзина, общие папки |
Для кадровых задач администратору нужны события двух групп: учётных записей и подразделений. Вот они, с названиями из перечня Яндекса:
| Тип события | Что означает |
|---|---|
ya360_b2bplatform_user_created |
Создание пользователя |
ya360_b2bplatform_user_dismissed |
Удаление пользователя |
ya360_b2bplatform_user_blocked |
Блокировка пользователя |
ya360_b2bplatform_user_unblocked |
Разблокировка пользователя |
ya360_b2bplatform_user_updated |
Изменение данных пользователя |
ya360_b2bplatform_user_password_updated |
Смена пароля пользователя администратором |
ya360_b2bplatform_department_member_created |
Добавление в подразделение |
ya360_b2bplatform_department_member_deleted |
Удаление из подразделения |
Событий Почты среди 109 типов нет: они остались в прежнем методе AuditLogService_Mail. Весь раздел AuditLogService Яндекс помечает как устаревший и не поддерживаемый. Первая версия этой статьи разбирала именно его — 12 событий Почты, 14 событий Диска и ни одного кадрового. Если вы искали события сотрудников там, берите метод аудит-логов.
Подписаться на событие тоже не получится
Вебхуков, подписки на события и push-уведомлений в публичном API 360 нет. Метод аудит-логов отдаёт события только в ответ на запрос. Отобрать нужное помогают фильтры: по времени, типам событий, сотрудникам, IP-адресу и источнику действия.
Такова норма платформы, и знать её лучше на этапе проектирования. API 360 работает по модели «запрос — ответ»: внешняя система спрашивает, платформа отвечает.
«Записано в аудит-логе» ещё не значит «вы об этом узнали». Между событием и вашей реакцией должен стоять тот, кто регулярно спрашивает, — свой скрипт или готовый сервис.
Как узнать о событии вовремя
У метода аудит-логов два обязательных параметра: ended_at — конец периода и count — сколько событий отдать на одной странице, от 1 до 100. Начало периода задаёт параметр started_at. Нужные события перечисляются в параметре types через запятую, например ya360_b2bplatform_user_created,ya360_b2bplatform_user_dismissed. Навигация курсорная: в ответе приходит iteration_key, по нему запрашивается следующая страница.
Из параметров метода аудит-логов складывается рабочая схема опроса. Это мой вывод из их состава, а не рекомендация Яндекса.
- По расписанию запрашивайте аудит-лог с фильтром
typesпо кадровым событиям. - Запоминайте время последнего обработанного события: следующий запрос начинайте с этой отметки.
- Не обрабатывайте одно событие дважды.
Где хранить отметки и как отсекать повторы в своём опросе аудит-лога, вы решаете сами.
Если тариф аудит-логи не поддерживает, остаётся путь без журнала. Получайте список сотрудников методом GET https://cloud-api.yandex.net/v1/directory/organizations/{org_id}/users с параметрами limit и offset. Поле updated_at — «дата и время изменения данных сотрудника» — сверяйте со снимком прошлого опроса. Прежний метод UserService_List тоже помечен как устаревший.
Ещё три детали пригодятся тому, кто пишет такой опрос сам.
Числа запросов в секунду среди ограничений API 360 нет. Ограничений там два: запросы выполняются только от имени администратора организации, и одним пользователем через API можно управлять не более чем 500 организациями. Поэтому частоту опроса вы подбираете сами.
Кодов ответа у метода UserService_Create пять: 400 Bad Request («Некорректный запрос»), 401 Unauthorized, 403 Forbidden, 404 Not Found, 500 Internal Server Error. Кода 409 Conflict среди них нет, а описание кода 400 общее и проверку уникальности логина не раскрывает. Как платформа ответит на попытку создать сотрудника с уже занятым nickname, по этому перечню не понять. А это ровно тот случай, который возникает при повторном прогоне провижининга. Поэтому сначала смотрите по списку сотрудников, свободен ли логин, и только потом отправляйте запрос.
В методе UserService_Update изменяемое поле статуса — isEnabled: true — активен, false — заблокирован. Поле isDismissed («Статус сотрудника: true — уволенный, false — действующий») в теле запроса отсутствует, оно приходит только в ответе. Прочитать статус «уволен» через API можно, записать его — нет. Приход и уход сотрудника как процесс целиком разобраны в статье об онбординге и оффбординге.
Слева — модель платформы: внешняя система сама по расписанию запрашивает аудит-лог и отбирает события сотрудников с последней отметки. Справа — «+Альянс Поток»: кадровое событие срабатывает как триггер, дальше условия, действия и запись в журнале запусков. Кадровые триггеры «+Альянс Потока» доступны с тарифа «Бизнес».
Как эту задачу закрывает «+Альянс Поток»
«+Альянс Поток» — российский веб-сервис компании «+Альянс» для автоматизации рутинных операций в организации на базе Яндекс 360. Опрос аудит-лога он берёт на себя: проверяет новые события Яндекс 360 каждые 10 секунд. От действия в Яндекс 360 до запуска потока обычно проходит от нескольких секунд до пары минут. Свой скрипт с расписанием, отметками и отсечкой повторов писать не нужно.
В визуальном редакторе администратор собирает поток: событие, условия, действия. Дальше сервис сам отслеживает события организации и выполняет настроенные потоки. «+Альянс Поток» поставляется как SaaS. Данные обрабатываются на территории РФ и хранятся только в нашей базе PostgreSQL; на внешние сервисы автоматизации ничего не передаётся.
В каталоге «+Альянс Потока» 18 типов триггеров: 15 событий Яндекс 360 и три собственных способа запуска — по расписанию, входящим вебхуком и из другого потока. Семь триггеров из 18 — кадровые. Каждый из семи стоит на своём событии аудит-лога:
| Триггер в палитре «+Альянс Поток» | Событие в аудит-логе Яндекс 360 |
|---|---|
| Новый сотрудник | ya360_b2bplatform_user_created |
| Увольнение (удаление учётной записи из Яндекс 360) | ya360_b2bplatform_user_dismissed |
| Блокировка в Яндекс 360 | ya360_b2bplatform_user_blocked |
| Разблокировка в Яндекс 360 | ya360_b2bplatform_user_unblocked |
| Изменение профиля в Я360 | ya360_b2bplatform_user_updated |
| Добавлен в отдел | ya360_b2bplatform_department_member_created |
| Удалён из отдела | ya360_b2bplatform_department_member_deleted |
Кадровым событие делает «+Альянс Поток». Яндекс фиксирует действие с учётной записью: создание, удаление, блокировку, перевод между подразделениями. Сервис трактует это действие как приём, увольнение или перевод, отсекает повторы и при необходимости дополняет данными из кадровой системы, например из 1С.
Условия аудит-лога действуют и для кадровых триггеров «+Альянс Потока»: нужны разрешение ya360_security:read_auditlog для приложения и тариф Яндекс 360, где есть аудит-логи. Без аудит-логов — например, на «Минимальном» — поток запускается только вручную, по расписанию или входящим вебхуком. Нужен и подходящий тариф самого «+Альянс Потока»: кадровые триггеры работают с тарифа «Бизнес», на «Старте» таких триггеров нет.
Действий в каталоге «+Альянс Потока» 18, в пяти группах:
- коммуникации: письмо по SMTP, уведомление в Яндекс Мессенджер, событие в Яндекс Календаре;
- Яндекс Диск: загрузить файл, опубликовать, закрыть публичный доступ — по умолчанию на Диске владельца организации, а если в пути указан сотрудник, то на его Диске и от его имени;
- управление сотрудниками: создать, обновить, заблокировать, удалить, отозвать сессии и токены, перевести в отдел, добавить в группу;
- интеграции: задача в Яндекс Трекере, форма в Яндекс Формах, исходящий HTTP-вебхук;
- резервное копирование: запустить бэкап пользователя, добавить пользователя в политику бэкапа.
Связка кадрового триггера с действием и даёт то, о чём просит администратор: система сама узнаёт, что человек пришёл, и сама реагирует. Учётная запись появилась — новичку ушло письмо, он попал в нужную группу, в Трекере встала задача. Скрипта между аудит-логом и действием нет.
Онбординг и оффбординг: где триггер работает, а где нет
Онбординг в «+Альянс Потоке» запускается двумя способами: по триггеру «Новый сотрудник», когда в Яндекс 360 создана учётная запись, либо входящим вебхуком из 1С при создании приказа о трудоустройстве. Триггер «Новый сотрудник» работает с тарифа «Бизнес», вебхук есть и на «Старте».
С увольнением иначе. Триггер «Увольнение» срабатывает на удаление учётной записи, а бэкап должен снять данные до удаления. Поэтому сценарий увольнения с полным резервным копированием запускайте вручную или тем же входящим вебхуком из 1С — по приказу на увольнение. На триггере «Увольнение» такой сценарий не стройте.
Под увольнение в «+Альянс Потоке» есть готовый шаблон «Увольнение сотрудника». Шагов в нём четыре: согласование → бэкап сотрудника → произвольное действие клиента → удаление из тенанта. Третий шаг в шаблоне — исходящий вебхук, например под задачу в Трекере для HR. Согласование блокирующее: пока согласующие не приняли решение, бэкап не запускается. Согласующему уходит персональная одноразовая ссылка по e-mail или в Яндекс Мессенджер. Кворум настраивается: есть режимы «Нужны все» и «Достаточно любого». В узле удаления пользователь подставляется выражением {backup.uid} — шаг удаления опирается на результат шага бэкапа.
Порядок «сначала бэкап, потом удаление» в шаблоне «Увольнение сотрудника» задан расстановкой узлов: бэкап стоит раньше удаления. Тогда в «+Альянс Потоке» работает гейтинг бэкапа: необратимые действия, которые идут после узла бэкапа, включая удаление, не выполняются, пока резервное копирование не завершилось успешно. Собираете увольнение с нуля — поставьте бэкап перед удалением сами: без него удаление копию ждать не будет. Рядом работают и другие гарантии: валидация графа — невалидный поток не запустится; повторы с экспоненциальной задержкой при временных сбоях; перезапуск с точки сбоя; лимит одновременных запусков на организацию — по умолчанию 5, зависит от тарифа.
Настройка шаблона сводится к двум вещам: подставить свои адреса согласующих и свои файлы согласования — с локального компьютера или с Яндекс Диска.
Что видно после запуска
Журнал запусков «+Альянс Потока» показывает статус, поток, триггер и шаги с длительностью. Если в потоке есть бэкап, видны и логи копирования: имя копии, когда она началась и закончилась, счётчики «выполнено / пропущено / ошибок». По согласованию в записи остаётся факт пройденной ветки; файл-основание в истории не показывается.
Выгрузки журнала запусков наружу в продукте нет. Нужна отметка о запуске в другой системе — добавьте в поток свой шаг: письмо или исходящий вебхук.
Лимиты тарифов
У «+Альянс Потока» три тарифа. Они различаются числом активных потоков, администраторов и подключённых организаций, минимальным интервалом расписания, лимитом вызовов в час и набором триггеров.
| Параметр | Старт | Бизнес | Корпоративный |
|---|---|---|---|
| Активных потоков | 5 | 25 | ∞ (fair use) |
| Администраторов | 2 | 10 | ∞ |
| Подключённых организаций | 1 | 1 | 3 |
| Минимальный интервал запуска по расписанию | 15 минут | 5 минут | 1 минута |
| Лимит вызовов веб-хука | 60/час на поток | 600/час на поток | 6 000/час на поток |
Набор триггеров на тарифе «Старт» у «+Альянс Потока» такой: ручной запуск, расписание, вебхуки и Яндекс Формы. Запуск по Яндекс Форме работает через вебхук самой формы. Кадровых триггеров по событиям Яндекс 360 на «Старте» нет: все триггеры — с тарифа «Бизнес».
На «Старте» сценарий приёма в «+Альянс Потоке» запускайте вручную или вебхуком из кадровой системы. Хотите, чтобы поток запускался от события в Яндекс 360, — берите «Бизнес».
Параллельно «+Альянс Поток» выполняет по умолчанию до 5 запусков одной организации. Предел зависит от тарифа.
Статус в реестре российского ПО: «+Альянс Поток» в реестр не внесён. Из продуктов компании в реестре «Мигратор T2T» (запись № 28672 от 09.07.2025) и «+Альянс Бэкап Яндекс 360» (запись № 35522 от 05.10.2026).
Что с этим делать на своём тенанте
- Проверьте, входят ли аудит-логи в тариф вашей организации. Тарифов с аудит-логами в Яндекс 360 четыре, «Минимальный» — пример тарифа без них. Без аудит-логов метод событий недоступен.
- Откройте перечень типов событий и выпишите те, что реально нужны вашим процессам: приём, увольнение, блокировка, перевод между отделами. Перечень меняется без объявления версий, поэтому возвращайтесь к нему перед каждым новым сценарием.
- Решите, кто в вашей схеме опрашивает аудит-лог. Либо вы пишете собственный опрос с хранением отметок и отсечкой повторов, либо берёте готовый каталог триггеров. «+Альянс Поток» можно попробовать бесплатно: пробный период — 30 дней, без банковской карты. Для кадровых триггеров нужен тариф не ниже «Бизнеса».
- Для сценария увольнения заранее заложите ручной запуск или запуск из кадровой системы: бэкап должен успеть до удаления учётной записи.
FAQ
Есть ли в Яндекс 360 веб-хуки на события?
В публичном API Яндекс 360 нет ни вебхуков, ни push-уведомлений, ни подписки на события. Аудит-лог отдаёт события только по запросу, поэтому узнавать о них вовремя приходится опросом по расписанию.
Сколько типов событий в аудит-логе Яндекс 360?
В аудит-логе Яндекс 360 девять групп событий и 109 типов — от авторизации и учётных записей сотрудников до Телемоста, Мессенджера и Диска. Прежний раздел AuditLogService с 12 событиями Почты и 14 событиями Диска помечен как устаревший.
Можно ли узнать из аудит-лога, что сотрудника создали или уволили?
Да. В аудит-логе Яндекс 360 есть ya360_b2bplatform_user_created (создание пользователя), ya360_b2bplatform_user_dismissed (удаление), ya360_b2bplatform_user_blocked (блокировка) и события подразделений. Но сам аудит-лог о них не сообщает: чтобы узнавать вовремя, его нужно регулярно опрашивать.
Как тогда отслеживать кадровые изменения через API?
Опрашивайте метод аудит-логов Яндекс 360 по расписанию: фильтр types по кадровым событиям, курсор iteration_key, отметка времени последнего обработанного события. На тарифе без аудит-логов сверяйте список сотрудников по полю updated_at со снимком прошлого опроса. Рекомендованного паттерна синхронизации Яндекс не публикует, поэтому частоту и логику сравнения вы выбираете сами.
Какие лимиты запросов у API Яндекс 360?
Числового лимита запросов среди ограничений API Яндекс 360 нет. Правил два: запросы к API идут от имени администратора организации, а один пользователь управляет через API максимум 500 организациями. На одной странице аудит-лога — не больше 100 событий.
Можно ли выставить сотруднику статус «уволен» через API?
Нет. Запросом UserService_Update статус сотрудника меняется через поле isEnabled: активен или заблокирован. Поле isDismissed приходит только в ответе, записать его нельзя.
Чем «+Альянс Поток» помогает администратору Яндекс 360 в этой задаче?
Аудит-лог Яндекс 360 за администратора опрашивает сам «+Альянс Поток», каждые 10 секунд. Для этого аудит-логи должны входить в тариф организации, а входят они не в каждый тариф Яндекс 360: «Минимальный», например, без аудит-логов. В каталоге сервиса 18 типов триггеров, семь из них кадровые: «Новый сотрудник», «Увольнение», «Блокировка», «Разблокировка», «Изменение профиля», «Добавлен в отдел», «Удалён из отдела». Кадровые триггеры есть в тарифе «Бизнес» и выше; на «Старте» поток запускают вручную, по расписанию, вебхуком или по Яндекс Форме. Действий 18, включая семь операций управления сотрудниками и два действия резервного копирования. Кадровое событие запускает поток. Если в потоке перед необратимым действием поставлен узел бэкапа, это действие выполняется только после успешного копирования.
Чем это решается. «+Альянс Поток» — это сервис автоматизации рутинных операций в Яндекс 360 от компании «+Альянс»: приём и увольнение сотрудников, доступы, почта и файлы. Правила и сценарии собираются на визуальной доске без программирования, поэтому появление новой учётной записи превращается в наблюдаемое событие с уведомлением, а не в запись, которую нужно искать в аудит-логе задним числом.
Александр Жогов, основатель и руководитель компании «+Альянс».
