Power Automate + Adaptive Cards + Microsoft Teams

Dzisiaj Audrie Gordon Senior Program Manager dla obszaru Power Automate zorganizowała webinar, podczas którego opowiedziała o nadchodzących zmianach dla integracji pomiędzy Power Automate i Microsoft Teams gdy mówimy o wysyłaniu i obsłudze Adaptive Cards.

Funkcjonalności, które pokazała, były naprawdę długo oczekiwane i pozwolą wypełnić braki w funkcjonalnościach procesów biznesowych realizowanych z użyciem Adaptive Cards i podejścia no-code.

Ważne! Funkcjonalności zapowiedziane i opisane w tym poście będą dostępne na początku lutego, jako funkcjonalności eksperymentalne/ preview.

Czego nam brakowało?

Wyobraź sobie, że chcesz opublikować Adaptive Card z Power Automate, której chcesz użyć do zarejestrowania odpowiedzi uczestnika kanału w Teams. Np. by poprosić ich o zapisanie się na konferencję. Lub w odpowiedzi na wiadomość z innego systemu. Lub by przypisać niestandardowe zadanie, nie wygenerowane przez Approvals w Flow.

Aż do dziś jedyną akcją, jaką można było obsłużyć z poziomu Adaptive Cards w Teams była „GET”. Wszystkie żądania „POST” nigdy nie trafiały z powrotem do Flow, który akcję wygenerował. Zamiast tego, pokazywany był błąd o treści: „Unable to reach app. Please try again.

Jednak bez względu na to, ile razy użytkownik próbował ponownie, nic się nie zmieniało. Sytuacja była spowodowana architekturą – karty adaptacyjne nie posiadają żadnej konfiguracji umożliwiającej projektantowi zdefiniowanie docelowego adresu URL, do którego należy wysłać dane z formularza. Dzieje się tak, ponieważ dane są przesyłane z powrotem do aplikacji, która je wygenerowała (host), w przypadku Microsoft Teams jest to Flow Bot. Po wysłaniu danych to ta aplikacja jest odpowiedzialna za ich obsługę i uruchamianie rzeczywistych działań. Jeśli napisałbyś własnego bota, który będzie publikować Adaptive Cards w Teams, możesz dowolnie zaprogramować, w jaki sposób będzie on wykonywać takie działania. W przypadku Flow Bot nie było dotąd sposobu, aby przesłać taką odpowiedź z powrotem do Power Automate. Aż do dzisiaj!

Czym jest nowa funkcjonalność?

Tym! Obejrzyj screencast:

Nowa funkcjonalność pozwala wysłać niestandardową kartę z Power Automate do Microsoft Teams, a następnie przełączyć Flow na oczekiwanie, aż do czasu otrzymania odpowiedzi z tej karty.

Aby wypróbować nową funkcję, wystarczy otworzyć designer Power Automate, a następnie dodać nową akcję z grupy Microsoft Teams:

  • Post an Adaptive Card as the Flow bot to a Teams user and wait for a response
  • Post an Adaptive Card as the Flow bot to a Teams channel and wait for a response
New actions in Power Automate to post Adaptive Card to Teams and wait for response

Uwaga! Aktualnie Microsoft Teams nadal działa z wersją 1.0 Adaptive Cards. Jeśli nie chcesz stracić żadnych funkcjonalności zaprojektowanej karty, trzymaj się tych dostępnych dla wersji 1.0 (https://github.com/microsoft/AdaptiveCards/releases/tag/v1.0)

Jeśli chcesz spróbować już teraz niektórych z funkcji dostępnych w wersjach 1.1 i 1.2 przełącz swój Teams (wersja desktop lub web) w tryb „Developer Preview”:
https://docs.microsoft.com/en-us/microsoftteams/platform/resources/dev-preview/developer-preview-intro

Ogólna dostępność (GA) Teamsów ze wsparciem dla najnowszego SDK Adaptive Cards jest planowana na następny okres (kilka miesięcy), jednak niektóre funkcje, jak np. elementy Media nie będą wówczas jeszcze wspierane.

Ok, aby stworzyć nową kartę aktualnie musisz użyć https://adaptivecards.io/designer:

Po zakończeniu projektowania możesz przełączyć interfejs w „Tryb podglądu” (Preview mode), a następnie nacisnąć przycisk „Submit”, aby sprawdzić, jaka jest struktura danych, które zostaną odesłane z powrotem do Power Automate. Ważne jest zdefiniowanie wartości „Id”, ponieważ będą to nazwy parametrów dostępnych dla innych akcji w przepływie:

Po zakończeniu projektowania skopiuj JSON i wklej go w swojej akcji + skonfiguruj tę akcję – zdecyduj, do którego kanału wyśle kartę oraz ustaw inne opcje:

New action in Power Automate to post Adaptive Card to Microsoft Teams and wait for response
  1. Wybierz Team
  2. Wybierz Kanał
  3. Wklej kod JSON prawidłowej Adaptive Card
  4. Komunikat potwierdzenia, który zostanie użyty do zastąpienia części „Body” w treści Adaptive Card, gdy użytkownik prześle formularz z karty. Ta konfiguracja jest opcjonalna.
  5. Opcja używana do określenia, czy komunikat potwierdzenia ma zastąpić część karty czy nie. Domyślnie ustawione na „No”.

Uwaga! Obecnie nie ma możliwości przesłania danych z karty do określonego, docelowego adresu URL. Można je tylko przesłać z powrotem do flow, który kartę wygenerował. Tym samym istnieje możliwość zarejestrowania TYLKO POJEDYNCZEJ odpowiedzi z każdej karty.

Co istotne, w najbliższej przyszłości designer zostanie zintegrowany i osadzony wewnątrz konfiguracji akcji:

Adaptive Cards designer inside Power Automate action's configuration
T

Kliknięcie przycisku otworzy kartę z designerem Adaptive Cards (interfejs może ulec zmianie):

Adaptive Cards designer displayed as a blade inside Power Automate

I to tyle!

Teraz jesteś gotowy, aby to przetestować samodzielnine. Po prostu zapisz swój przepływ z nowymi akcjiami i uruchom go. Zauważ, że gdy przepływ się uruchomi, po wysłaniu karty do Teams zacznie czekać na odpowiedź. Jest to identyczne zachowanie jak w przypadku wysłania zadania zatwierdzania.

Ważne! Power Automate czeka na odpowiedź nie dłużej niż 30 dni. Po tym czasie akcja zakończy się timeout-em, a przepływ nie powiedzie się.

Teraz przejdź do Microsoft Teams, aby znaleźć wygenerowaną kartę. Następnie wypełnij ją danymi i kliknij przycisk Prześlij. Możesz teraz zauważyć, że twój Power Automate został wznowiony, a dane z karty są dostępne dla kolejnych działań w Twoim przepływie. W zależności od tego, jak skonfigurowałeś akcję – treść karty zostanie zastąpiona komunikatem potwierdzającym lub pozostanie widoczna dla innych użytkowników.

Roadmap

W najbliższej przyszłości Microsoft doda do omawianej integracji następujące funkcjonalności:

  1. Wbudowany projektant kart adaptacyjnych. Jego interfejs powinien jednak być dużo prostszy niż dostępny na oficjalnej stronie.
  2. Gotowe do użycia szablony Power Automate, dedykowane do wysyłania i odbierania odpowiedzi z kart.
  3. Gotowe do użycia szablony kart adaptacyjnych
  4. Gotowe do użycia części kodu do użycia w „body” kart adaptacyjnych, takie jak powtarzalna tabela.

Jeśli masz jakiekolwiek pytania, po prostu zostaw mi komentarz, albo prześlij wiadomość korzystając z formularza kontaktowego.