Автоматическая смена статуса Microsoft Teams через Power Automate
В этой статье
- Установить статус
- Установить статус Microsoft Teams через Power Automate
- Установить сообщение статуса (заметку)
- Создать собственный коннектор статуса Microsoft Teams

Введение
Возможность автоматически менять статус в Microsoft Teams помогает разбивать рабочий день и не сидеть постоянно за ПК при удалённой работе. Вы всегда можете вручную сменить статус в приложении, но автоматизация через Power Automate позволяет делать это без открытия Teams.
Power Automate — инструмент для Microsoft 365, который экономит время, автоматизируя рутинные задачи и рабочие процессы. Даже если вы никогда ранее не создавали потоков (flows), есть множество шаблонов и готовых решений. В этом руководстве показан способ, основанный на материале нескольких экспертов, с пояснениями и предупреждениями.
Важное предупреждение
Этот метод использует неофициальные конечные точки (endpoints) Microsoft Teams и описан как undocumented — он может работать не всегда и не предназначен для критичных (production) сценариев. Есть ограничения на количество запросов в день и возможны ошибки редиректа (Status 301) в зависимости от региона/тенанта. Держите ожидания в пределах: тестируйте и используйте на свой страх и риск.
Ключевые URL, упоминаемые в исходных руководствах:
https://presence.teams.microsoft.com/v1/me/forceavailability
В США или при использовании американского тенанта могут потребоваться альтернативные домены, например https://noamdf.presence.teams.microsoft.com или https://presence.gcc.teams.microsoft.com, чтобы избежать ошибки 301.
Установить статус — обзор метода
Идея проста: в Power Automate создаётся поток, который отправляет HTTP-запрос к службе наличия (presence) Teams через действие «Отправить HTTP-запрос в SharePoint» (Send an HTTP request to SharePoint). В теле запроса указываются поля availability и activity.
Краткая методология:
- Создаёте новый поток в Power Automate.
- В качестве шага выбираете Send an HTTP request to SharePoint и настраиваете метод PUT с URL /v1/me/forceavailability.
- Указываете content-type: application/json и тело с нужными значениями availability/activity.
- Сохраняете и тестируете поток.
Пошаговая инструкция: создать поток и отправить запрос
- В Power Automate откройте «Мои потоки» (Мои потоки).
- Нажмите «Новый поток».
- Выберите тип потока: «Автоматизированный облачный поток», «Мгновенный облачный поток» или «Планируемый облачный поток». Для примера мы используем «Мгновенный облачный поток».

- Задайте имя потока и в разделе «Выберите, как запускать этот поток» выберите «Вручную запустить поток». Нажмите «Создать».

- После создания потока нажмите «Следующий шаг».

- В строке поиска найдите «SharePoint» и выберите действие «Отправить HTTP-запрос в SharePoint» (Send an HTTP request to SharePoint).

Настройка запроса для смены статуса
- В настройках действия укажите:
- Dataset / Адрес: https://presence.teams.microsoft.com
- Method / Метод: PUT
- Uri: /v1/me/forceavailability
- Headers / Заголовки: content-type: application/json
- Body / Тело: JSON с полями availability и activity
Пример настройки показан на скриншоте:

В поле body можно использовать одно из значений availability: “Available”, “Busy”, “BeRightBack”, “DoNotDisturb”, “Away”. Я не смог заставить работать варианты offline/offwork — они не срабатывали при моих тестах.
- Сохраните поток.
- Нажмите «Тест» для запуска проверки. Power Automate требует теста при первой настройке потока.

- Выберите способ тестирования: вручную (Manually) или автоматически (Automatically). Для первого запуска выберите «Вручную».

- Возможно, потребуется повторная авторизация — подтвердите доступ к учётной записи Microsoft, если Power Automate запросит разрешения.

- Нажмите «Запустить поток» (Run flow).

После запуска вы увидите зелёную галочку и ссылку на страницу запусков потока. Проверьте в Teams — изменился ли статус.
Установить сообщение статуса (заметку)
Чтобы обновлять заметку статуса (status message), создайте другой поток, почти идентичный предыдущему, но с URI /v1/me/publishnote и телом, содержащим поле message.
Пример визуального представления шага в Power Automate:

Готовые JSON-фрагменты для вставки
Ниже приведены два фрагмента JSON, которые можно вставить через «Новый шаг > Мой буфер обмена» (New step > My clipboard) в Power Automate. Вставка — прямая: откройте редактор действия и вставьте JSON.
- Установить статус Microsoft Teams как Away
{"id":"6e453f83-f22d-4715-bdb6-5cbe7b44b6fa","brandColor":"#036C70","connectionReferences":{"shared_sharepointonline":{"connection":{"id":"/providers/Microsoft.PowerApps/apis/shared_sharepointonline/connections/5d9bafd92370456789caa39b6c3f2277"}}},"connectorDisplayName":"SharePoint","icon":"https://connectoricons-prod.azureedge.net/releases/v1.0.1554/1.0.1554.2707/sharepointonline/icon.png","isTrigger":false,"operationName":"Set_Microsoft_Teams_status_to_Away","operationDefinition":{"type":"OpenApiConnection","inputs":{"host":{"connectionName":"shared_sharepointonline","operationId":"HttpRequest","apiId":"/providers/Microsoft.PowerApps/apis/shared_sharepointonline"},"parameters":{"dataset":"https://presence.teams.microsoft.com","parameters/method":"PUT","parameters/uri":"/v1/me/forceavailability","parameters/headers":{"content-type":"application/json"},"parameters/body":"{\n\n\"availability\": “Offline”, \n\"activity\": “OffWork”\n\n}"},"authentication":{"type":"Raw","value":"@json(decodeBase64(triggerOutputs().headers['X-MS-APIM-Tokens']))['$ConnectionKey']"}},"runAfter":{},"metadata":{"operationMetadataId":"e3433a3c-7e7c-40d5-b804-696b2b1d0398"}}}- Обновить заметку статуса
{"id":"638a81c6-7d9b-481a-8875-97a08dcf18b7","brandColor":"#036C70","connectionReferences":{"shared_sharepointonline":{"connection":{"id":"/providers/Microsoft.PowerApps/apis/shared_sharepointonline/connections/5d9bafd92370456789caa39b6c3f2277"}}},"connectorDisplayName":"SharePoint","icon":"https://connectoricons-prod.azureedge.net/releases/v1.0.1554/1.0.1554.2707/sharepointonline/icon.png","isTrigger":false,"operationName":"Set_Microsoft_Teams_status_message_note_","operationDefinition":{"type":"OpenApiConnection","inputs":{"host":{"connectionName":"shared_sharepointonline","operationId":"HttpRequest","apiId":"/providers/Microsoft.PowerApps/apis/shared_sharepointonline"},"parameters":{"dataset":"https://presence.teams.microsoft.com","parameters/method":"PUT","parameters/uri":"/v1/me/publishnote","parameters/headers":{"content-type":"application/json"},"parameters/body":"{\n\n\"message\": \"I am away from my desk. I went to grab lunch\"\n\n}\n "},"authentication":{"type":"Raw","value":"@json(decodeBase64(triggerOutputs().headers['X-MS-APIM-Tokens']))['$ConnectionKey']"}},"runAfter":{},"metadata":{"operationMetadataId":"05f65dba-6bef-458a-81ac-b4fc08c290db"}}}Примечание: в некоторых JSON-фрагментах в исходных примерах встречаются типографские кавычки; при вставке убедитесь, что кавычки — прямые (“), чтобы JSON корректно парсился.

Если у вас остались вопросы или вы хотите поделиться улучшением потока — свяжитесь с автором руководства через Twitter.
Когда этот метод НЕ подойдёт (примеры отказа)
- Корпоративные политики безопасности блокируют вызовы внешних endpoint-ов или требуются специальные разрешения; запросы будут возвращать ошибки авторизации.
- Для критичных процессов, где требуется 100% SLA, метод не подходит — он неофициален и нестабилен.
- Если ваш тенант размещён в специализированной облачной зоне (GCC, DoD и т. п.), могут требоваться другие домены presence.* или доступ может быть ограничен.
- Ограничения на количество вызовов API в день — вы можете достичь лимита при частых автоматических сменах.
Альтернативные подходы
- Официальный Graph API: Microsoft Graph постепенно расширяет возможности для присутствия (presence), и в будущем официальные методы будут предпочтительнее.
- Использовать заранее утверждённые коннекторы Power Platform, если в вашей организации есть готовые решения.
- Локальные скрипты и интеграции с расписанием (например, с использованием Teams PowerShell), если требуется централизованное управление и массовые изменения.
Ментальные модели и эвристики
- Разделяйте: статус (availability) — это краткое состояние; сообщение статуса (note) — объяснение.
- Тестируйте для одного пользователя до массового развёртывания.
- Ограничьте частоту смены статуса: обновляйте его реже (например, максимум несколько раз в день), чтобы не попасть под лимиты.
Чек-лист для внедрения (роль: администратор)
- Проверить, разрешены ли HTTP-запросы к presence.teams.microsoft.com для вашего тенанта.
- Создать тестовую учётную запись и проверить изменение статуса вручную.
- Настроить поток в Power Automate и прогнать несколько тестов.
- Настроить логирование и уведомления о сбоях потока.
- Уведомить команду о новой автоматизации и инструкциях по отключению/переопределению статуса.
Критерии приёмки
- Поток успешно выполняется и возвращает 2xx код ответа минимум в 3 из 5 запусков.
- Статус в Microsoft Teams изменяется на ожидаемое значение в пользовательском интерфейсе.
- Логи содержат запись о успешном выполнении и времени запуска.
- В случае ошибки поток отправляет уведомление ответственному администратору.
Безопасность и приватность
- Не храните в потоках секреты в открытом виде. Используйте управляемые подключения и встроенные механизмы аутентификации Power Automate.
- Убедитесь, что доступ к редактированию потоков ограничен — только доверенные администраторы.
- Проверьте соответствие требованиям вашей организации и регуляторов (GDPR и локальные правила), если вы отправляете персональные данные в тексте сообщения статуса.
Мини‑методология: быстрый план внедрения
- Создать тестовый поток и протестировать вручную.
- Подготовить инструкции для конечных пользователей (как запускать/останавливать).
- Настроить мониторинг (уведомления о падениях).
- Документировать допустимые значения availability/activity.
- При успешном тестировании — предложить решение командам, желающим автоматизировать смену статуса.
Советы по отладке
- Если запрос возвращает 301, проверьте домен: попробуйте noamdf.presence.teams.microsoft.com или presence.gcc.teams.microsoft.com в зависимости от региона.
- Убедитесь, что заголовок Content-Type указан точно как application/json.
- Проверьте, нет ли в теле JSON типографских кавычек; используйте прямые “ для корректного парсинга.
- Смотрите логи выполнения потока в Power Automate: там есть подробная информация о кодах ответа и теле ответа.
Факто-бокс
- Статусы availability: Available, Busy, BeRightBack, DoNotDisturb, Away.
- Неофициальный endpoint: /v1/me/forceavailability.
- Заметка статуса: /v1/me/publishnote.
- Ограничение частоты: варьируется по тенанту и политике Microsoft; тестируйте аккуратно.
Примеры использования (кейсы)
- Автоматическая смена статуса на «Обед» в рабочее время по расписанию.
- Установка статуса «Не беспокоить» при участии в длительной конференции (связанное с календарём).
- Показ текущей песни Spotify в статусе (через кастомный коннектор Spotify + Power Automate).
Совместимость и миграция
- В организациях с централизованным управлением Teams/365 администраторы могут ограничить вызовы API; перед массовым запуском согласуйте с ИТ-безопасностью.
- Если Microsoft выпустит официальный Graph API для управления статусом с поддержкой production, планируйте миграцию от неофициальных вызовов к официальным методам.
Итог и рекомендации
Этот подход даёт гибкость и возможность автоматизировать простые сценарии смены статуса и заметок в Teams. Однако он использует неофициальные конечные точки и может быть нестабилен. Рекомендуется использовать такой процесс только в тестовых или персональных сценариях, а для корпоративных решений ожидать официальной поддержки через Microsoft Graph или согласовывать схему с ИТ-отделом.
Важно: перед внедрением убедитесь, что вы понимаете ограничения учётной записи и соблюдаете корпоративные политики безопасности.
Ключевые рекомендации:
- Тестируйте на отдельной учётной записи.
- Минимизируйте частоту обновлений, чтобы не достигать лимитов.
- Документируйте и ограничивайте права на создание/редактирование потоков.
Спасибо за внимание. Если хотите, могу подготовить готовый playbook для деплоя этой автоматизации в вашей организации или помочь откорректировать JSON-фрагменты под ваш тенант.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента