Уведомления Teams с помощью Adaptive Cards в Power Automate
Как Power Automate публикует интерактивные Adaptive Cards через коннектор Teams, обрабатывает ответы и где проходят границы возможностей.
Когда в Power Automate запускается поток, простого текстового сообщения в Teams часто недостаточно. Шаг согласования, голосование в команде или отклик на заказ требуют не просто информации, а возможности отреагировать прямо в чате. Именно для этого нужны Adaptive Cards: интерактивные карточки, которые Power Automate публикует прямо в чат или канал через коннектор Microsoft Teams, и ответа на которые поток затем ожидает.
В этой статье показано, какие действия предлагает коннектор Teams для Adaptive Cards, как создать первую интерактивную карточку и какие ограничения нужно учитывать при проектировании согласно официальной документации Microsoft. Так ты с самого начала контролируешь, как твоя цифровая сотрудница общается с твоей командой, вместо того чтобы искать решение в документации уже после первой ошибки.
Чем Adaptive Cards отличаются от обычного сообщения Teams
Согласно документации Microsoft по адаптивным карточкам для Teams Adaptive Cards — это платформонезависимый способ передачи и отображения информационных блоков без необходимости настраивать CSS или HTML. Ты описываешь карточку в формате JSON, а Teams автоматически преобразует это описание при отображении в нативный интерфейс, соответствующий конкретному хосту.
Решающее отличие от обычного сообщения в чате заключается в интерактивности: Adaptive Card может содержать текстовые поля, списки выбора и кнопки, с помощью которых получатели отвечают прямо в чате. Power Automate получает этот ответ и продолжает поток с введёнными данными без отдельной формы или дополнительного приложения.
Обзор действий в коннекторе Microsoft Teams
Согласно документации, коннектор Teams различает карточки для отдельных пользователей и карточки для целых каналов, а в каждом случае — вариант с функцией ожидания и без неё:
- Опубликовать собственную адаптивную карточку от имени Flow-бота пользователю: карточка появляется в чате и в ленте действий получателя, при этом ему не нужно быть участником определённого экземпляра Teams. Здесь работают только кнопки URL, они просто перенаправляют на адрес, настроенный в потоке.
- Опубликовать адаптивную карточку от имени Flow-бота пользователю Teams и дождаться ответа: поток приостанавливается, пока человек не отреагирует на карточку, а затем возвращает ровно один ответ на получателя и карточку в виде динамического содержимого.
- Опубликовать собственную адаптивную карточку от имени Flow-бота в канале: как и выше, только карточка появляется в канале команды, доступ к которому нужен тебе самому.
- Опубликовать адаптивную карточку от имени Flow-бота в канале Teams и дождаться ответа: поток ждёт, пока кто-либо из участников канала не ответит, а затем обрабатывает его ввод.
Для проактивных сообщений от агента Copilot Studio, согласно документации о проактивных сообщениях Teams дополнительно доступны действия Post adaptive card in a chat or channel и Post adaptive card and wait for a response. Здесь в качестве Post as ты выбираешь Microsoft Copilot Studio agent и указываешь получателя, а также нужного агента.
Создание первой интерактивной Adaptive Card
Прежде чем начать, согласно документации, в Microsoft Teams должно быть установлено приложение Workflows, иначе выполнение потока завершится с понятным сообщением об ошибке. Вот как создать первую карточку:
1. Войди в Power Automate и создай мгновенный облачный поток с триггером «Запустить поток вручную».
2. Добавь в качестве нового шага действие «Опубликовать адаптивную карточку в канале Teams и дождаться ответа» и выбери команду и канал.
3. Вставь в поле «Сообщение» JSON-код своей карточки. Для начала достаточно структуры с заголовком, основным текстом, элементом Input.ChoiceSet для вариантов выбора и кнопкой Action.Submit в конце.
4. Введи в поле «Сообщение об обновлении» текст, который карточка должна показать после ответа. Без этого карточка просто сбрасывается после каждой отправки, что, согласно документации, провоцирует ненужные повторные отправки.
5. Обработай ответ на следующем шаге, например через письмо, содержащее выбранное значение из динамического содержимого действия ожидания ответа.
Когда ты запускаешь поток, по метке ожидания в журнале выполнения видно, что Power Automate действительно ждёт ответа. Только после отправки получателем поток продолжается с введёнными значениями, как подробно описано в руководстве по созданию первой адаптивной карточки.
Дальнейшая обработка ответа в потоке
Внутри Adaptive Card с ожиданием ответа каждый элемент ввода возвращает своё значение через ID, заданный в JSON, например `acPollChoices` для списка выбора в примере из документации. Этот ID ты найдёшь на следующем шаге в виде динамического содержимого и сможешь использовать его напрямую в письмах, элементах списка или дальнейших условиях.
Если вместо этого ты используешь проактивную карточку через агента Copilot Studio, ответ, согласно документации, возвращает переменную `submitActionId`, значение которой соответствует названию выбранного действия. Для обоих вариантов верно: дополнительные детали, такие как ID пользователя, ответившего на карточку, доступны как динамическое содержимое только после действия ожидания ответа, а для полных данных профиля дополнительно нужен коннектор пользователей Office 365.
Известные ограничения, которые стоит знать
В документации перечислено несколько моментов, которые на практике часто вызывают путаницу:
- Без действия ожидания ответа собрать данные из карточки нельзя, любая кнопка, кроме Action.OpenUrl, тогда возвращает ошибку.
- Каждую карточку с ожиданием ответа можно отправить только один раз, все последующие отправки молча игнорируются.
- После отправки карточка показывает исключительно текст из поля «Сообщение об обновлении», в остальном она остаётся без изменений и провоцирует повторную, бесполезную отправку.
- Adaptive Cards с функцией шаблонизации из общей спецификации Adaptive Cards не поддерживаются Power Automate.
- В среде Министерства обороны США адаптивные карточки, как правило, недоступны, но это касается лишь очень узкого круга пользователей.
Типичные источники ошибок при работе с адаптивными карточками
Помимо структурных ограничений, Microsoft в собственных советах по устранению неполадок называет прежде всего три повторяющихся типа ошибок:
- Отсутствует приложение Workflows: если приложение Workflows не установлено в Teams, выполнение потока завершается ошибкой. Приложение нужно настроить в соответствующем экземпляре Teams ещё до первого тестового запуска.
- Некорректно отформатированный JSON-код: обычно причина в фигурных кавычках вместо прямых или в отсутствующих кавычках вокруг текстовых значений. Тест в конструкторе Adaptive Cards надёжно выявляет такие ошибки ещё до того, как ты вставишь карточку в Power Automate.
- Недействительные URL изображений: Adaptive Cards не поддерживают встроенные файлы изображений, каждое изображение нужно подключать через общедоступный URL. В случае сомнений проверь URL прямо в браузере, прежде чем вносить его в карточку.
Кто разберёт эти три пункта перед запуском в продакшн, избавит себя от большинства сообщений об ошибках, которые на практике проявляются только после первого рабочего запуска. Тем, кто использует Power Automate как цифровую сотрудницу и ценит аккуратно выстроенные, не требующие постоянного обслуживания уведомления Teams, консалтинг NordFlux по Power Automate предлагает поддержку в создании Adaptive Cards и связанной с ними обработке ошибок.
Часто задаваемые вопросы
Можно ли использовать Adaptive Card без действия ожидания ответа для ввода данных?
Нет. Согласно документации, карточки без этого действия возвращают ошибку для всех кнопок, кроме Action.OpenUrl, поэтому данные из полей ввода можно получить только с одним из двух вариантов ожидания ответа.
Сколько раз можно ответить на одну и ту же Adaptive Card?
Только один раз. После первой отправки поток продолжается, каждая последующая отправка той же карточки, согласно документации, игнорируется, без повторного отклика.
Почему моя карточка после ответа по-прежнему выглядит точно так же?
Потому что поле «Сообщение об обновлении» не было заполнено. Без этого карточка просто сбрасывается после каждой отправки, что легко провоцирует получателей на бессмысленную повторную отправку.
Работают ли Adaptive Cards с функциями шаблонизации в Power Automate?
Нет, в документации прямо указано, что функция шаблонизации из общей спецификации Adaptive Cards не поддерживается Power Automate. Вместо этого создавай карточку с полностью заполненным JSON без шаблонов-заполнителей.
Нужно ли писать JSON-код вручную, чтобы оформить карточку?
Не обязательно. Конструктор Adaptive Cards предлагает визуальный интерфейс перетаскивания, из которого ты копируешь готовый JSON-код прямо в поле сообщения действия Power Automate.
NordFlux UG (haftungsbeschränkt)
NordFlux создаёт цифровых сотрудников для организаций: автоматизации и КИ-агентов, которые берут на себя повторяющуюся работу. Вы сохраняете контроль.
Конкретные вопросы по автоматизации или КИ?
В рамках бесплатного первичного анализа мы напрямую обсудим Ваш случай. Без обязательств.